ERC-20
Overview
Max Total Supply
4,000,000,000,000 QNTM
Holders
736
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,607,291,438.493361296551630149 QNTMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Quantum
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-31 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.6.12; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } interface IERC20 { //Return total supply function totalSupply() external view returns (uint256); //Return amount of tokens owned by 'account' function balanceOf(address account) external view returns (uint256); //Moves 'amount' tokens from the caller's account to 'recipient' function transfer(address recipient, uint256 amount) external returns (bool); //Returns a boolean value indicating whether the operation succeeded. //Returns the remaining number of tokens that 'spender' will be allowed to spend function allowance(address owner, address spender) external view returns (uint256); //Sets 'amount' as the allowance of 'spender' over the caller's tokens function approve(address spender, uint256 amount) external returns (bool); //Moves 'ammount' of tokens from 'spender' to 'recipient'. Then deducts from callers allowance. 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 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"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly 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); //Initializes the contract setting the deployer as the initial owner. constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } //Returns the address of the current owner. function owner() public view returns (address) { return _owner; } //Throws if called by any account other than the owner. modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * Leaves the contract without owner. It will not be possible to call * 'onlyOwner' functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } //Transfers ownership of the contract to a new account ('newOwner'), Can only be called by the current owner. function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); 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 mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Quantum is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; mapping (address => bool) private _isBlackListedBot; address[] private _blackListedBots; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 4000000000000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private constant _name = 'Quantum'; string private constant _symbol = 'QNTM'; uint8 private constant _decimals = 18; uint256 private _marketingFee = 5; uint256 private _devFee = 2; uint256 private _useCaseFee = 2; uint256 private _useCaseFee2 = 2; uint256 private _useCaseFee3 = 1; uint256 private _taxFee = _useCaseFee + _useCaseFee2 + _useCaseFee3; uint256 private _teamFee = _marketingFee + _devFee; uint256 private _totalFee = _marketingFee + _devFee + _useCaseFee + _useCaseFee2 + _useCaseFee3; uint256 private _previousTaxFee = _taxFee; uint256 private _previousTeamFee = _teamFee; uint256 private _previousMarketingFee; uint256 private _previousDevFee; uint256 private _previousUseCase; uint256 private _previousUseCase2; uint256 private _previousUseCase3; address payable public _marketingWalletAddress; address payable public _devWalletAddress; address payable public _useCaseWallet; address payable public _useCaseWallet2; address payable public _useCaseWallet3; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwap = false; bool public swapEnabled = true; bool public tradingActive = true; uint256 private _maxTxAmount = 30000000000 * 10**18; uint256 private constant _numOfTokensToExchangeForTeam = 5357142 * 10**18; uint256 private _maxWalletSize = 4000000000000 * 10**18; event botAddedToBlacklist(address account); event botRemovedFromBlacklist(address account); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (address payable UseCaseWallet3) public { _marketingWalletAddress = 0x8d4dF17D8ffB71ADD7d347de9f1a3950aaC42A38; _devWalletAddress = 0xeDf1db5459Ad8c94e4e9C3552da55c8062939B13; _useCaseWallet = 0x415f59DE964952de86074046370EAA4fb5b0F901; _useCaseWallet2 = 0xDEA167FCecbFA4dfD2B9D9125B6aBcD5a7237ECB; _useCaseWallet3 = UseCaseWallet3; _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; // Exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure 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 isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function setExcludeFromFee(address account, bool excluded) external onlyOwner() { _isExcludedFromFee[account] = excluded; } 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 addBotToBlacklist (address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We cannot blacklist UniSwap router'); require (!_isBlackListedBot[account], 'Account is already blacklisted'); _isBlackListedBot[account] = true; _blackListedBots.push(account); } function removeBotFromBlacklist(address account) external onlyOwner() { require (_isBlackListedBot[account], 'Account is not blacklisted'); for (uint256 i = 0; i < _blackListedBots.length; i++) { if (_blackListedBots[i] == account) { _blackListedBots[i] = _blackListedBots[_blackListedBots.length - 1]; _isBlackListedBot[account] = false; _blackListedBots.pop(); break; } } } function excludeAccount(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is not 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 removeAllFee() private { if(_taxFee == 0 && _teamFee == 0) return; _previousTaxFee = _taxFee; _previousTeamFee = _teamFee; _previousMarketingFee = _marketingFee; _previousDevFee = _devFee; _previousUseCase = _useCaseFee; _previousUseCase2 = _useCaseFee2; _previousUseCase3 = _useCaseFee3; _marketingFee = 0; _devFee = 0; _useCaseFee = 0; _useCaseFee2 = 0; _useCaseFee3 = 0; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _teamFee = _previousTeamFee; _marketingFee = _previousMarketingFee; _devFee = _previousDevFee; _useCaseFee = _previousUseCase; _useCaseFee2 = _previousUseCase2; _useCaseFee3 = _previousUseCase3; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } 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 sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!_isBlackListedBot[sender], "You are blacklisted"); require(!_isBlackListedBot[msg.sender], "You are blacklisted"); require(!_isBlackListedBot[tx.origin], "You are blacklisted"); require(tradingActive || (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]), "Trading is currently not active"); if(sender != owner() && recipient != owner()) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if(sender != owner() && recipient != owner() && recipient != uniswapV2Pair && recipient != address(0xdead)) { uint256 tokenBalanceRecipient = balanceOf(recipient); require(tokenBalanceRecipient + amount <= _maxWalletSize, "Recipient exceeds max wallet size."); } // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap? // also, don't get caught in a circular team event. // also, don't swap if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForTeam; if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) { // Swap tokens for ETH and send to resepctive wallets swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToTeam(address(this).balance); } } //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } //transfer amount, it will take tax and team fee _tokenTransfer(sender,recipient,amount,takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{ // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function sendETHToTeam(uint256 amount) private { _marketingWalletAddress.transfer(amount.div(_totalFee).mul(_marketingFee)); _devWalletAddress.transfer(amount.div(_totalFee).mul(_devFee)); _useCaseWallet.transfer(amount.div(_totalFee).mul(_useCaseFee)); _useCaseWallet2.transfer(amount.div(_totalFee).mul(_useCaseFee2)); _useCaseWallet3.transfer(amount.div(_totalFee).mul(_useCaseFee3)); } function manualSwap() external onlyOwner() { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualSend() external onlyOwner() { uint256 contractETHBalance = address(this).balance; sendETHToTeam(contractETHBalance); } function setSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if(!takeFee) removeAllFee(); 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]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if(!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _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 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _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 tTeam) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _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 tTeam) = _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); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); if(_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(teamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } 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 _getTaxFee() public view returns(uint256) { return _taxFee; } function _getTeamFee() public view returns (uint256) { return _teamFee; } function _getMarketingFee() public view returns (uint256) { return _marketingFee; } function _getDevFee() public view returns (uint256) { return _devFee; } function _geUseCaseFee() public view returns (uint256) { return _useCaseFee; } function _getUseCaseFee2() public view returns (uint256) { return _useCaseFee2; } function _getUseCaseFee3() public view returns (uint256) { return _useCaseFee3; } function _getETHBalance() public view returns(uint256 balance) { return address(this).balance; } function _getMaxTxAmount() public view returns (uint256) { return _maxTxAmount; } function _getMaxWalletSize () public view returns (uint256) { return _maxWalletSize; } function _setMarketingFee(uint256 marketingFee) external onlyOwner() { require(marketingFee >= 1 && marketingFee <= 6, 'marketingFee should be in 1 - 6'); _marketingFee = marketingFee; } function _setDevFee(uint256 devFee) external onlyOwner() { require(devFee >= 1 && devFee <= 6, 'devFee should be in 1 - 6'); _devFee = devFee; } function _setUseCaseFee(uint256 useCaseFee) external onlyOwner() { require(useCaseFee >= 1 && useCaseFee <= 6, 'useCaseFee should be in 1 - 6'); _useCaseFee = useCaseFee; } function _setUseCaseFee2(uint256 useCaseFee2) external onlyOwner() { require(useCaseFee2 >= 1 && useCaseFee2 <= 6, 'useCaseFee2 should be in 1 - 6'); _useCaseFee2 = useCaseFee2; } function _setUseCaseFee3(uint256 useCaseFee3) external onlyOwner() { require(useCaseFee3 >= 1 && useCaseFee3 <= 6, 'useCaseFee3 should be in 1 - 6'); _useCaseFee3 = useCaseFee3; } function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function _setMaxWalletSize (uint256 maxWalletSize) external onlyOwner() { _maxWalletSize = maxWalletSize; } function _setUseCaseWallet3(address payable UseCaseWallet3) external onlyOwner() { _useCaseWallet3 = UseCaseWallet3; } // Enable Trading function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // Disable Trading function disableTrading() external onlyOwner { tradingActive = false; swapEnabled = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"UseCaseWallet3","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"botAddedToBlacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"botRemovedFromBlacklist","type":"event"},{"inputs":[],"name":"_devWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_geUseCaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getETHBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getUseCaseFee2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getUseCaseFee3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"_setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"_setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"_setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"useCaseFee","type":"uint256"}],"name":"_setUseCaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"useCaseFee2","type":"uint256"}],"name":"_setUseCaseFee2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"useCaseFee3","type":"uint256"}],"name":"_setUseCaseFee3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"UseCaseWallet3","type":"address"}],"name":"_setUseCaseWallet3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_useCaseWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useCaseWallet2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useCaseWallet3","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBotToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"disableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBotFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"tradingActive","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526c327cb2734119d3b7a9000000006000190619600b556005600d8190556002600e819055600f8190556010556001601155601281905560076013819055600c6014556015919091556016556020805460ff60b01b1961ffff60a01b19909116600160a81b1716600160b01b1790556b60ef6b1aba6f0723300000006021556c327cb2734119d3b7a900000000602255348015620000a057600080fd5b5060405162003ca038038062003ca083398181016040526020811015620000c657600080fd5b50516000620000d46200043e565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b0319908116738d4df17d8ffb71add7d347de9f1a3950aac42a3817909155601d8054821673edf1db5459ad8c94e4e9c3552da55c8062939b13179055601e8054821673415f59de964952de86074046370eaa4fb5b0f901179055601f8054821673dea167fcecbfa4dfd2b9d9125b6abcd5a7237ecb179055602080546001600160a01b0384169216919091179055600b5460036000620001c86200043e565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023f57600080fd5b505afa15801562000254573d6000803e3d6000fd5b505050506040513d60208110156200026b57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015620002bc57600080fd5b505afa158015620002d1573d6000803e3d6000fd5b505050506040513d6020811015620002e857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200033b57600080fd5b505af115801562000350573d6000803e3d6000fd5b505050506040513d60208110156200036757600080fd5b50516001600160601b0319606091821b811660a0529082901b166080526001600660006200039462000442565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252902080549091166001179055620003de6200043e565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c327cb2734119d3b7a9000000006040518082815260200191505060405180910390a3505062000451565b3390565b6000546001600160a01b031690565b60805160601c60a05160601c61380c62000494600039806111d652806125d752806126da525080610c7752806129ef5280612aa75280612ace525061380c6000f3fe6080604052600436106103845760003560e01c80638da5cb5b116101d1578063cba0e99611610102578063e200d04e116100a0578063f42938901161006f578063f429389014610bb8578063f7a9159114610bcd578063f815a84214610be2578063f84354f114610bf75761038b565b8063e200d04e14610b28578063ea6096e914610b3d578063f2cc0c1814610b52578063f2fde38b14610b855761038b565b8063dd62ed3e116100dc578063dd62ed3e14610a97578063df84653e14610ad2578063e01af92c14610ae7578063e1cee22114610b135761038b565b8063cba0e99614610a10578063ccd3457114610a43578063ceab3f2114610a6d5761038b565b8063a9059cbb1161016f578063b425bac311610149578063b425bac3146109bc578063bbc0c742146109d1578063c3babef7146109e6578063c7c2713c146109fb5761038b565b8063a9059cbb14610915578063af9549e01461094e578063b030b34a146109895761038b565b80639e6c7529116101ab5780639e6c752914610873578063a457c2d71461089d578063a52fe9bb146108d6578063a5e8c954146109005761038b565b80638da5cb5b146108165780638f80153b1461082b57806395d89b411461085e5761038b565b8063313ce567116102b65780635342acb41161025457806370a082311161022357806370a082311461078f578063715018a6146107c2578063807f9b52146107d75780638a8c523c146108015761038b565b80635342acb41461070857806359f1707d1461073b578063602bc62b146107655780636ddd17131461077a5761038b565b80634144d9e4116102905780634144d9e4146106975780634549b039146106ac57806349bd5a5e146106de57806351bc3c85146106f35761038b565b8063313ce5671461060957806339509351146106345780633bd5d1731461066d5761038b565b80631bbae6e01161032357806323b872dd116102fd57806323b872dd14610572578063273b97fc146105b55780632d838119146105ca5780632fbff030146105f45761038b565b80631bbae6e0146105005780631d7ef8791461052a5780631db1de411461055d5761038b565b806313114a9d1161035f57806313114a9d1461048e5780631694505e146104a357806317700f01146104d457806318160ddd146104eb5761038b565b80627a4f6b1461039057806306fdde03146103b7578063095ea7b3146104415761038b565b3661038b57005b600080fd5b34801561039c57600080fd5b506103a5610c2a565b60408051918252519081900360200190f35b3480156103c357600080fd5b506103cc610c30565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104065781810151838201526020016103ee565b50505050905090810190601f1680156104335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610c51565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506103a5610c6f565b3480156104af57600080fd5b506104b8610c75565b604080516001600160a01b039092168252519081900360200190f35b3480156104e057600080fd5b506104e9610c99565b005b3480156104f757600080fd5b506103a5610d01565b34801561050c57600080fd5b506104e96004803603602081101561052357600080fd5b5035610d12565b34801561053657600080fd5b506104e96004803603602081101561054d57600080fd5b50356001600160a01b0316610d6f565b34801561056957600080fd5b506104b8610ef7565b34801561057e57600080fd5b5061047a6004803603606081101561059557600080fd5b506001600160a01b03813581169160208101359091169060400135610f06565b3480156105c157600080fd5b506103a5610f8d565b3480156105d657600080fd5b506103a5600480360360208110156105ed57600080fd5b5035610f93565b34801561060057600080fd5b506103a5610ff5565b34801561061557600080fd5b5061061e610ffb565b6040805160ff9092168252519081900360200190f35b34801561064057600080fd5b5061047a6004803603604081101561065757600080fd5b506001600160a01b038135169060200135611000565b34801561067957600080fd5b506104e96004803603602081101561069057600080fd5b503561104e565b3480156106a357600080fd5b506104b8611128565b3480156106b857600080fd5b506103a5600480360360408110156106cf57600080fd5b50803590602001351515611137565b3480156106ea57600080fd5b506104b86111d4565b3480156106ff57600080fd5b506104e96111f8565b34801561071457600080fd5b5061047a6004803603602081101561072b57600080fd5b50356001600160a01b0316611269565b34801561074757600080fd5b506104e96004803603602081101561075e57600080fd5b5035611287565b34801561077157600080fd5b506103a5611347565b34801561078657600080fd5b5061047a61134d565b34801561079b57600080fd5b506103a5600480360360208110156107b257600080fd5b50356001600160a01b031661135d565b3480156107ce57600080fd5b506104e96113bf565b3480156107e357600080fd5b506104e9600480360360208110156107fa57600080fd5b5035611461565b34801561080d57600080fd5b506104e9611521565b34801561082257600080fd5b506104b861159d565b34801561083757600080fd5b506104e96004803603602081101561084e57600080fd5b50356001600160a01b03166115ac565b34801561086a57600080fd5b506103cc611626565b34801561087f57600080fd5b506104e96004803603602081101561089657600080fd5b5035611644565b3480156108a957600080fd5b5061047a600480360360408110156108c057600080fd5b506001600160a01b0381351690602001356116a1565b3480156108e257600080fd5b506104e9600480360360208110156108f957600080fd5b5035611709565b34801561090c57600080fd5b506103a56117c9565b34801561092157600080fd5b5061047a6004803603604081101561093857600080fd5b506001600160a01b0381351690602001356117cf565b34801561095a57600080fd5b506104e96004803603604081101561097157600080fd5b506001600160a01b03813516906020013515156117e3565b34801561099557600080fd5b506104e9600480360360208110156109ac57600080fd5b50356001600160a01b0316611866565b3480156109c857600080fd5b506104b8611a1e565b3480156109dd57600080fd5b5061047a611a2d565b3480156109f257600080fd5b506103a5611a3d565b348015610a0757600080fd5b506104b8611a43565b348015610a1c57600080fd5b5061047a60048036036020811015610a3357600080fd5b50356001600160a01b0316611a52565b348015610a4f57600080fd5b506104e960048036036020811015610a6657600080fd5b5035611a70565b348015610a7957600080fd5b506104e960048036036020811015610a9057600080fd5b5035611b30565b348015610aa357600080fd5b506103a560048036036040811015610aba57600080fd5b506001600160a01b0381358116916020013516611bf0565b348015610ade57600080fd5b506103a5611c1b565b348015610af357600080fd5b506104e960048036036020811015610b0a57600080fd5b50351515611c21565b348015610b1f57600080fd5b506103a5611c97565b348015610b3457600080fd5b506103a5611c9d565b348015610b4957600080fd5b506104b8611ca3565b348015610b5e57600080fd5b506104e960048036036020811015610b7557600080fd5b50356001600160a01b0316611cb2565b348015610b9157600080fd5b506104e960048036036020811015610ba857600080fd5b50356001600160a01b0316611e94565b348015610bc457600080fd5b506104e9611f8c565b348015610bd957600080fd5b506103a5611fee565b348015610bee57600080fd5b506103a5611ff4565b348015610c0357600080fd5b506104e960048036036020811015610c1a57600080fd5b50356001600160a01b0316611ff8565b600d5490565b6040805180820190915260078152665175616e74756d60c81b602082015290565b6000610c65610c5e61218e565b8484612192565b5060015b92915050565b600c5490565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ca161218e565b6000546001600160a01b03908116911614610cf1576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6020805461ffff60a81b19169055565b6c327cb2734119d3b7a90000000090565b610d1a61218e565b6000546001600160a01b03908116911614610d6a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602155565b610d7761218e565b6000546001600160a01b03908116911614610dc7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610e235760405162461bcd60e51b81526004018080602001828103825260228152602001806136886022913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090205460ff1615610e91576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b6001600160a01b03166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6020546001600160a01b031681565b6000610f1384848461227e565b610f8384610f1f61218e565b610f7e856040518060600160405280602881526020016136aa602891396001600160a01b038a16600090815260056020526040812090610f5d61218e565b6001600160a01b03168152602081019190915260400160002054919061278e565b612192565b5060019392505050565b600e5490565b6000600b54821115610fd65760405162461bcd60e51b815260040180806020018281038252602a8152602001806135ab602a913960400191505060405180910390fd5b6000610fe0612825565b9050610fec8382612848565b9150505b919050565b60125490565b601290565b6000610c6561100d61218e565b84610f7e856005600061101e61218e565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612891565b600061105861218e565b6001600160a01b03811660009081526007602052604090205490915060ff16156110b35760405162461bcd60e51b815260040180806020018281038252602c815260200180613786602c913960400191505060405180910390fd5b60006110be836128eb565b505050506001600160a01b0384166000908152600360205260409020549192506110ea91905082612948565b6001600160a01b038316600090815260036020526040902055600b546111109082612948565b600b55600c546111209084612891565b600c55505050565b601c546001600160a01b031681565b60006c327cb2734119d3b7a90000000083111561119b576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b816111ba5760006111ab846128eb565b50939550610c69945050505050565b60006111c5846128eb565b50929550610c69945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61120061218e565b6000546001600160a01b03908116911614611250576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600061125b3061135d565b90506112668161298a565b50565b6001600160a01b031660009081526006602052604090205460ff1690565b61128f61218e565b6000546001600160a01b039081169116146112df576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600181101580156112f1575060068111155b611342576040805162461bcd60e51b815260206004820152601960248201527f6465764665652073686f756c6420626520696e2031202d203600000000000000604482015290519081900360640190fd5b600e55565b60025490565b602054600160a81b900460ff1681565b6001600160a01b03811660009081526007602052604081205460ff161561139d57506001600160a01b038116600090815260046020526040902054610ff0565b6001600160a01b038216600090815260036020526040902054610c6990610f93565b6113c761218e565b6000546001600160a01b03908116911614611417576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61146961218e565b6000546001600160a01b039081169116146114b9576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600181101580156114cb575060068111155b61151c576040805162461bcd60e51b815260206004820152601d60248201527f757365436173654665652073686f756c6420626520696e2031202d2036000000604482015290519081900360640190fd5b600f55565b61152961218e565b6000546001600160a01b03908116911614611579576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6020805460ff60a81b1960ff60b01b19909116600160b01b1716600160a81b179055565b6000546001600160a01b031690565b6115b461218e565b6000546001600160a01b03908116911614611604576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602080546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082019091526004815263514e544d60e01b602082015290565b61164c61218e565b6000546001600160a01b0390811691161461169c576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602255565b6000610c656116ae61218e565b84610f7e856040518060600160405280602581526020016137b260259139600560006116d861218e565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061278e565b61171161218e565b6000546001600160a01b03908116911614611761576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611773575060068111155b6117c4576040805162461bcd60e51b815260206004820152601f60248201527f6d61726b6574696e674665652073686f756c6420626520696e2031202d203600604482015290519081900360640190fd5b600d55565b60135490565b6000610c656117dc61218e565b848461227e565b6117eb61218e565b6000546001600160a01b0390811691161461183b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61186e61218e565b6000546001600160a01b039081169116146118be576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff1661192b576040805162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000604482015290519081900360640190fd5b60005b600a54811015611a1a57816001600160a01b0316600a828154811061194f57fe5b6000918252602090912001546001600160a01b03161415611a1257600a8054600019810190811061197c57fe5b600091825260209091200154600a80546001600160a01b0390921691839081106119a257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600990915260409020805460ff19169055600a8054806119eb57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a1a565b60010161192e565b5050565b601d546001600160a01b031681565b602054600160b01b900460ff1681565b60115490565b601e546001600160a01b031681565b6001600160a01b031660009081526007602052604090205460ff1690565b611a7861218e565b6000546001600160a01b03908116911614611ac8576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611ada575060068111155b611b2b576040805162461bcd60e51b815260206004820152601e60248201527f75736543617365466565332073686f756c6420626520696e2031202d20360000604482015290519081900360640190fd5b601155565b611b3861218e565b6000546001600160a01b03908116911614611b88576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611b9a575060068111155b611beb576040805162461bcd60e51b815260206004820152601e60248201527f75736543617365466565322073686f756c6420626520696e2031202d20360000604482015290519081900360640190fd5b601055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600f5490565b611c2961218e565b6000546001600160a01b03908116911614611c79576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60208054911515600160a81b0260ff60a81b19909216919091179055565b60225490565b60105490565b601f546001600160a01b031681565b611cba61218e565b6000546001600160a01b03908116911614611d0a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415611d665760405162461bcd60e51b81526004018080602001828103825260228152602001806137646022913960400191505060405180910390fd5b6001600160a01b03811660009081526007602052604090205460ff1615611dd4576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205415611e2e576001600160a01b038116600090815260036020526040902054611e1490610f93565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b611e9c61218e565b6000546001600160a01b03908116911614611eec576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b038116611f315760405162461bcd60e51b81526004018080602001828103825260268152602001806135d56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b611f9461218e565b6000546001600160a01b03908116911614611fe4576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b4761126681612bc3565b60215490565b4790565b61200061218e565b6000546001600160a01b03908116911614612050576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff166120bd576040805162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015290519081900360640190fd5b60005b600854811015611a1a57816001600160a01b0316600882815481106120e157fe5b6000918252602090912001546001600160a01b031614156121865760088054600019810190811061210e57fe5b600091825260209091200154600880546001600160a01b03909216918390811061213457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff1916905560088054806119eb57fe5b6001016120c0565b3390565b6001600160a01b0383166121d75760405162461bcd60e51b81526004018080602001828103825260248152602001806137406024913960400191505060405180910390fd5b6001600160a01b03821661221c5760405162461bcd60e51b81526004018080602001828103825260228152602001806135fb6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166122c35760405162461bcd60e51b815260040180806020018281038252602581526020018061371b6025913960400191505060405180910390fd5b6001600160a01b0382166123085760405162461bcd60e51b81526004018080602001828103825260238152602001806135886023913960400191505060405180910390fd5b600081116123475760405162461bcd60e51b81526004018080602001828103825260298152602001806136f26029913960400191505060405180910390fd5b6001600160a01b03831660009081526009602052604090205460ff16156123ab576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b3360009081526009602052604090205460ff1615612406576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b3260009081526009602052604090205460ff1615612461576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b602054600160b01b900460ff16806124b357506001600160a01b03831660009081526006602052604090205460ff16806124b357506001600160a01b03821660009081526006602052604090205460ff165b612504576040805162461bcd60e51b815260206004820152601f60248201527f54726164696e672069732063757272656e746c79206e6f742061637469766500604482015290519081900360640190fd5b61250c61159d565b6001600160a01b0316836001600160a01b031614158015612546575061253061159d565b6001600160a01b0316826001600160a01b031614155b1561258c5760215481111561258c5760405162461bcd60e51b815260040180806020018281038252602881526020018061363f6028913960400191505060405180910390fd5b61259461159d565b6001600160a01b0316836001600160a01b0316141580156125ce57506125b861159d565b6001600160a01b0316826001600160a01b031614155b801561260c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561262357506001600160a01b03821661dead14155b1561267a5760006126338361135d565b905060225482820111156126785760405162461bcd60e51b815260040180806020018281038252602281526020018061361d6022913960400191505060405180910390fd5b505b60006126853061135d565b9050602154811061269557506021545b6020546a046e6b3feead3a7398000082101590600160a01b900460ff161580156126c85750602054600160a81b900460ff165b80156126d15750805b801561270f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b1561272f5761271d8261298a565b47801561272d5761272d47612bc3565b505b6001600160a01b03851660009081526006602052604090205460019060ff168061277157506001600160a01b03851660009081526006602052604090205460ff165b1561277a575060005b61278686868684612d5d565b505050505050565b6000818484111561281d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127e25781810151838201526020016127ca565b50505050905090810190601f16801561280f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000612832612ed1565b90925090506128418282612848565b9250505090565b600061288a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613060565b9392505050565b60008282018381101561288a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006129088a6012546013546130c5565b9250925092506000612918612825565b9050600080600061292b8e87878761311a565b919e509c509a509598509396509194505050505091939550919395565b600061288a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061278e565b6020805460ff60a01b1916600160a01b1781556040805160028082526060808301845293919290918301908036833701905050905030816000815181106129cd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a4657600080fd5b505afa158015612a5a573d6000803e3d6000fd5b505050506040513d6020811015612a7057600080fd5b5051815182906001908110612a8157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612acc307f000000000000000000000000000000000000000000000000000000000000000084612192565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612b71578181015183820152602001612b59565b505050509050019650505050505050600060405180830381600087803b158015612b9a57600080fd5b505af1158015612bae573d6000803e3d6000fd5b50506020805460ff60a01b1916905550505050565b601c54600d546014546001600160a01b03909216916108fc91612bf191612beb908690612848565b9061316a565b6040518115909202916000818181858888f19350505050158015612c19573d6000803e3d6000fd5b50601d54600e546014546001600160a01b03909216916108fc91612c4291612beb908690612848565b6040518115909202916000818181858888f19350505050158015612c6a573d6000803e3d6000fd5b50601e54600f546014546001600160a01b03909216916108fc91612c9391612beb908690612848565b6040518115909202916000818181858888f19350505050158015612cbb573d6000803e3d6000fd5b50601f546010546014546001600160a01b03909216916108fc91612ce491612beb908690612848565b6040518115909202916000818181858888f19350505050158015612d0c573d6000803e3d6000fd5b506020546011546014546001600160a01b03909216916108fc91612d3591612beb908690612848565b6040518115909202916000818181858888f19350505050158015611a1a573d6000803e3d6000fd5b80612d6a57612d6a6131c3565b6001600160a01b03841660009081526007602052604090205460ff168015612dab57506001600160a01b03831660009081526007602052604090205460ff16155b15612dc057612dbb84848461322a565b612ebe565b6001600160a01b03841660009081526007602052604090205460ff16158015612e0157506001600160a01b03831660009081526007602052604090205460ff165b15612e1157612dbb84848461334e565b6001600160a01b03841660009081526007602052604090205460ff16158015612e5357506001600160a01b03831660009081526007602052604090205460ff16155b15612e6357612dbb8484846133f7565b6001600160a01b03841660009081526007602052604090205460ff168015612ea357506001600160a01b03831660009081526007602052604090205460ff165b15612eb357612dbb84848461343b565b612ebe8484846133f7565b80612ecb57612ecb6134ae565b50505050565b600b5460009081906c327cb2734119d3b7a900000000825b60085481101561301857826003600060088481548110612f0557fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612f6a5750816004600060088481548110612f4357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612f8c57600b546c327cb2734119d3b7a9000000009450945050505061305c565b612fcc6003600060088481548110612fa057fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612948565b925061300e6004600060088481548110612fe257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612948565b9150600101612ee9565b50600b54613033906c327cb2734119d3b7a900000000612848565b82101561305657600b546c327cb2734119d3b7a90000000093509350505061305c565b90925090505b9091565b600081836130af5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156127e25781810151838201526020016127ca565b5060008385816130bb57fe5b0495945050505050565b60008080806130df60646130d9898961316a565b90612848565b905060006130f260646130d98a8961316a565b9050600061310a826131048b86612948565b90612948565b9992985090965090945050505050565b6000808080613129888661316a565b90506000613137888761316a565b90506000613145888861316a565b90506000613157826131048686612948565b939b939a50919850919650505050505050565b60008261317957506000610c69565b8282028284828161318657fe5b041461288a5760405162461bcd60e51b81526004018080602001828103825260218152602001806136676021913960400191505060405180910390fd5b6012541580156131d35750601354155b156131dd57613228565b6012805460155560138054601655600d8054601755600e8054601855600f805460195560108054601a5560118054601b55600094859055928490559083905582905581905591829055555b565b60008060008060008061323c876128eb565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061326e9088612948565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461329d9087612948565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546132cc9086612891565b6001600160a01b0389166000908152600360205260409020556132ee816134da565b6132f88483613563565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600080600080600080613360876128eb565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506133929087612948565b6001600160a01b03808b16600090815260036020908152604080832094909455918b168152600490915220546133c89084612891565b6001600160a01b0389166000908152600460209081526040808320939093556003905220546132cc9086612891565b600080600080600080613409876128eb565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061329d9087612948565b60008060008060008061344d876128eb565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061347f9088612948565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546133929087612948565b601554601255601654601355601754600d55601854600e55601954600f55601a54601055601b54601155565b60006134e4612825565b905060006134f2838361316a565b3060009081526003602052604090205490915061350f9082612891565b3060009081526003602090815260408083209390935560079052205460ff161561355e573060009081526004602052604090205461354d9084612891565b306000908152600460205260409020555b505050565b600b546135709083612948565b600b55600c546135809082612891565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526563697069656e742065786365656473206d61782077616c6c65742073697a652e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7757652063616e6e6f7420626c61636b6c69737420556e695377617020726f7574657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207ea14559c785ac1bf0b94f9d1af18bdec73894fdded25bf2101260284848f11a64736f6c634300060c0033000000000000000000000000a66a7aad027734effbd69ad43e4bc913cd3a8012
Deployed Bytecode
0x6080604052600436106103845760003560e01c80638da5cb5b116101d1578063cba0e99611610102578063e200d04e116100a0578063f42938901161006f578063f429389014610bb8578063f7a9159114610bcd578063f815a84214610be2578063f84354f114610bf75761038b565b8063e200d04e14610b28578063ea6096e914610b3d578063f2cc0c1814610b52578063f2fde38b14610b855761038b565b8063dd62ed3e116100dc578063dd62ed3e14610a97578063df84653e14610ad2578063e01af92c14610ae7578063e1cee22114610b135761038b565b8063cba0e99614610a10578063ccd3457114610a43578063ceab3f2114610a6d5761038b565b8063a9059cbb1161016f578063b425bac311610149578063b425bac3146109bc578063bbc0c742146109d1578063c3babef7146109e6578063c7c2713c146109fb5761038b565b8063a9059cbb14610915578063af9549e01461094e578063b030b34a146109895761038b565b80639e6c7529116101ab5780639e6c752914610873578063a457c2d71461089d578063a52fe9bb146108d6578063a5e8c954146109005761038b565b80638da5cb5b146108165780638f80153b1461082b57806395d89b411461085e5761038b565b8063313ce567116102b65780635342acb41161025457806370a082311161022357806370a082311461078f578063715018a6146107c2578063807f9b52146107d75780638a8c523c146108015761038b565b80635342acb41461070857806359f1707d1461073b578063602bc62b146107655780636ddd17131461077a5761038b565b80634144d9e4116102905780634144d9e4146106975780634549b039146106ac57806349bd5a5e146106de57806351bc3c85146106f35761038b565b8063313ce5671461060957806339509351146106345780633bd5d1731461066d5761038b565b80631bbae6e01161032357806323b872dd116102fd57806323b872dd14610572578063273b97fc146105b55780632d838119146105ca5780632fbff030146105f45761038b565b80631bbae6e0146105005780631d7ef8791461052a5780631db1de411461055d5761038b565b806313114a9d1161035f57806313114a9d1461048e5780631694505e146104a357806317700f01146104d457806318160ddd146104eb5761038b565b80627a4f6b1461039057806306fdde03146103b7578063095ea7b3146104415761038b565b3661038b57005b600080fd5b34801561039c57600080fd5b506103a5610c2a565b60408051918252519081900360200190f35b3480156103c357600080fd5b506103cc610c30565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104065781810151838201526020016103ee565b50505050905090810190601f1680156104335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610c51565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506103a5610c6f565b3480156104af57600080fd5b506104b8610c75565b604080516001600160a01b039092168252519081900360200190f35b3480156104e057600080fd5b506104e9610c99565b005b3480156104f757600080fd5b506103a5610d01565b34801561050c57600080fd5b506104e96004803603602081101561052357600080fd5b5035610d12565b34801561053657600080fd5b506104e96004803603602081101561054d57600080fd5b50356001600160a01b0316610d6f565b34801561056957600080fd5b506104b8610ef7565b34801561057e57600080fd5b5061047a6004803603606081101561059557600080fd5b506001600160a01b03813581169160208101359091169060400135610f06565b3480156105c157600080fd5b506103a5610f8d565b3480156105d657600080fd5b506103a5600480360360208110156105ed57600080fd5b5035610f93565b34801561060057600080fd5b506103a5610ff5565b34801561061557600080fd5b5061061e610ffb565b6040805160ff9092168252519081900360200190f35b34801561064057600080fd5b5061047a6004803603604081101561065757600080fd5b506001600160a01b038135169060200135611000565b34801561067957600080fd5b506104e96004803603602081101561069057600080fd5b503561104e565b3480156106a357600080fd5b506104b8611128565b3480156106b857600080fd5b506103a5600480360360408110156106cf57600080fd5b50803590602001351515611137565b3480156106ea57600080fd5b506104b86111d4565b3480156106ff57600080fd5b506104e96111f8565b34801561071457600080fd5b5061047a6004803603602081101561072b57600080fd5b50356001600160a01b0316611269565b34801561074757600080fd5b506104e96004803603602081101561075e57600080fd5b5035611287565b34801561077157600080fd5b506103a5611347565b34801561078657600080fd5b5061047a61134d565b34801561079b57600080fd5b506103a5600480360360208110156107b257600080fd5b50356001600160a01b031661135d565b3480156107ce57600080fd5b506104e96113bf565b3480156107e357600080fd5b506104e9600480360360208110156107fa57600080fd5b5035611461565b34801561080d57600080fd5b506104e9611521565b34801561082257600080fd5b506104b861159d565b34801561083757600080fd5b506104e96004803603602081101561084e57600080fd5b50356001600160a01b03166115ac565b34801561086a57600080fd5b506103cc611626565b34801561087f57600080fd5b506104e96004803603602081101561089657600080fd5b5035611644565b3480156108a957600080fd5b5061047a600480360360408110156108c057600080fd5b506001600160a01b0381351690602001356116a1565b3480156108e257600080fd5b506104e9600480360360208110156108f957600080fd5b5035611709565b34801561090c57600080fd5b506103a56117c9565b34801561092157600080fd5b5061047a6004803603604081101561093857600080fd5b506001600160a01b0381351690602001356117cf565b34801561095a57600080fd5b506104e96004803603604081101561097157600080fd5b506001600160a01b03813516906020013515156117e3565b34801561099557600080fd5b506104e9600480360360208110156109ac57600080fd5b50356001600160a01b0316611866565b3480156109c857600080fd5b506104b8611a1e565b3480156109dd57600080fd5b5061047a611a2d565b3480156109f257600080fd5b506103a5611a3d565b348015610a0757600080fd5b506104b8611a43565b348015610a1c57600080fd5b5061047a60048036036020811015610a3357600080fd5b50356001600160a01b0316611a52565b348015610a4f57600080fd5b506104e960048036036020811015610a6657600080fd5b5035611a70565b348015610a7957600080fd5b506104e960048036036020811015610a9057600080fd5b5035611b30565b348015610aa357600080fd5b506103a560048036036040811015610aba57600080fd5b506001600160a01b0381358116916020013516611bf0565b348015610ade57600080fd5b506103a5611c1b565b348015610af357600080fd5b506104e960048036036020811015610b0a57600080fd5b50351515611c21565b348015610b1f57600080fd5b506103a5611c97565b348015610b3457600080fd5b506103a5611c9d565b348015610b4957600080fd5b506104b8611ca3565b348015610b5e57600080fd5b506104e960048036036020811015610b7557600080fd5b50356001600160a01b0316611cb2565b348015610b9157600080fd5b506104e960048036036020811015610ba857600080fd5b50356001600160a01b0316611e94565b348015610bc457600080fd5b506104e9611f8c565b348015610bd957600080fd5b506103a5611fee565b348015610bee57600080fd5b506103a5611ff4565b348015610c0357600080fd5b506104e960048036036020811015610c1a57600080fd5b50356001600160a01b0316611ff8565b600d5490565b6040805180820190915260078152665175616e74756d60c81b602082015290565b6000610c65610c5e61218e565b8484612192565b5060015b92915050565b600c5490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b610ca161218e565b6000546001600160a01b03908116911614610cf1576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6020805461ffff60a81b19169055565b6c327cb2734119d3b7a90000000090565b610d1a61218e565b6000546001600160a01b03908116911614610d6a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602155565b610d7761218e565b6000546001600160a01b03908116911614610dc7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610e235760405162461bcd60e51b81526004018080602001828103825260228152602001806136886022913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090205460ff1615610e91576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b6001600160a01b03166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6020546001600160a01b031681565b6000610f1384848461227e565b610f8384610f1f61218e565b610f7e856040518060600160405280602881526020016136aa602891396001600160a01b038a16600090815260056020526040812090610f5d61218e565b6001600160a01b03168152602081019190915260400160002054919061278e565b612192565b5060019392505050565b600e5490565b6000600b54821115610fd65760405162461bcd60e51b815260040180806020018281038252602a8152602001806135ab602a913960400191505060405180910390fd5b6000610fe0612825565b9050610fec8382612848565b9150505b919050565b60125490565b601290565b6000610c6561100d61218e565b84610f7e856005600061101e61218e565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612891565b600061105861218e565b6001600160a01b03811660009081526007602052604090205490915060ff16156110b35760405162461bcd60e51b815260040180806020018281038252602c815260200180613786602c913960400191505060405180910390fd5b60006110be836128eb565b505050506001600160a01b0384166000908152600360205260409020549192506110ea91905082612948565b6001600160a01b038316600090815260036020526040902055600b546111109082612948565b600b55600c546111209084612891565b600c55505050565b601c546001600160a01b031681565b60006c327cb2734119d3b7a90000000083111561119b576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b816111ba5760006111ab846128eb565b50939550610c69945050505050565b60006111c5846128eb565b50929550610c69945050505050565b7f00000000000000000000000026747f77e0ea14972941681df7756800d4743fed81565b61120061218e565b6000546001600160a01b03908116911614611250576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600061125b3061135d565b90506112668161298a565b50565b6001600160a01b031660009081526006602052604090205460ff1690565b61128f61218e565b6000546001600160a01b039081169116146112df576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600181101580156112f1575060068111155b611342576040805162461bcd60e51b815260206004820152601960248201527f6465764665652073686f756c6420626520696e2031202d203600000000000000604482015290519081900360640190fd5b600e55565b60025490565b602054600160a81b900460ff1681565b6001600160a01b03811660009081526007602052604081205460ff161561139d57506001600160a01b038116600090815260046020526040902054610ff0565b6001600160a01b038216600090815260036020526040902054610c6990610f93565b6113c761218e565b6000546001600160a01b03908116911614611417576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61146961218e565b6000546001600160a01b039081169116146114b9576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b600181101580156114cb575060068111155b61151c576040805162461bcd60e51b815260206004820152601d60248201527f757365436173654665652073686f756c6420626520696e2031202d2036000000604482015290519081900360640190fd5b600f55565b61152961218e565b6000546001600160a01b03908116911614611579576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6020805460ff60a81b1960ff60b01b19909116600160b01b1716600160a81b179055565b6000546001600160a01b031690565b6115b461218e565b6000546001600160a01b03908116911614611604576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602080546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082019091526004815263514e544d60e01b602082015290565b61164c61218e565b6000546001600160a01b0390811691161461169c576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b602255565b6000610c656116ae61218e565b84610f7e856040518060600160405280602581526020016137b260259139600560006116d861218e565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061278e565b61171161218e565b6000546001600160a01b03908116911614611761576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611773575060068111155b6117c4576040805162461bcd60e51b815260206004820152601f60248201527f6d61726b6574696e674665652073686f756c6420626520696e2031202d203600604482015290519081900360640190fd5b600d55565b60135490565b6000610c656117dc61218e565b848461227e565b6117eb61218e565b6000546001600160a01b0390811691161461183b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61186e61218e565b6000546001600160a01b039081169116146118be576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff1661192b576040805162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000604482015290519081900360640190fd5b60005b600a54811015611a1a57816001600160a01b0316600a828154811061194f57fe5b6000918252602090912001546001600160a01b03161415611a1257600a8054600019810190811061197c57fe5b600091825260209091200154600a80546001600160a01b0390921691839081106119a257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600990915260409020805460ff19169055600a8054806119eb57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a1a565b60010161192e565b5050565b601d546001600160a01b031681565b602054600160b01b900460ff1681565b60115490565b601e546001600160a01b031681565b6001600160a01b031660009081526007602052604090205460ff1690565b611a7861218e565b6000546001600160a01b03908116911614611ac8576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611ada575060068111155b611b2b576040805162461bcd60e51b815260206004820152601e60248201527f75736543617365466565332073686f756c6420626520696e2031202d20360000604482015290519081900360640190fd5b601155565b611b3861218e565b6000546001600160a01b03908116911614611b88576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60018110158015611b9a575060068111155b611beb576040805162461bcd60e51b815260206004820152601e60248201527f75736543617365466565322073686f756c6420626520696e2031202d20360000604482015290519081900360640190fd5b601055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600f5490565b611c2961218e565b6000546001600160a01b03908116911614611c79576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b60208054911515600160a81b0260ff60a81b19909216919091179055565b60225490565b60105490565b601f546001600160a01b031681565b611cba61218e565b6000546001600160a01b03908116911614611d0a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415611d665760405162461bcd60e51b81526004018080602001828103825260228152602001806137646022913960400191505060405180910390fd5b6001600160a01b03811660009081526007602052604090205460ff1615611dd4576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205415611e2e576001600160a01b038116600090815260036020526040902054611e1490610f93565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b611e9c61218e565b6000546001600160a01b03908116911614611eec576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b038116611f315760405162461bcd60e51b81526004018080602001828103825260268152602001806135d56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b611f9461218e565b6000546001600160a01b03908116911614611fe4576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b4761126681612bc3565b60215490565b4790565b61200061218e565b6000546001600160a01b03908116911614612050576040805162461bcd60e51b815260206004820181905260248201526000805160206136d2833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff166120bd576040805162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015290519081900360640190fd5b60005b600854811015611a1a57816001600160a01b0316600882815481106120e157fe5b6000918252602090912001546001600160a01b031614156121865760088054600019810190811061210e57fe5b600091825260209091200154600880546001600160a01b03909216918390811061213457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff1916905560088054806119eb57fe5b6001016120c0565b3390565b6001600160a01b0383166121d75760405162461bcd60e51b81526004018080602001828103825260248152602001806137406024913960400191505060405180910390fd5b6001600160a01b03821661221c5760405162461bcd60e51b81526004018080602001828103825260228152602001806135fb6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166122c35760405162461bcd60e51b815260040180806020018281038252602581526020018061371b6025913960400191505060405180910390fd5b6001600160a01b0382166123085760405162461bcd60e51b81526004018080602001828103825260238152602001806135886023913960400191505060405180910390fd5b600081116123475760405162461bcd60e51b81526004018080602001828103825260298152602001806136f26029913960400191505060405180910390fd5b6001600160a01b03831660009081526009602052604090205460ff16156123ab576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b3360009081526009602052604090205460ff1615612406576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b3260009081526009602052604090205460ff1615612461576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b602054600160b01b900460ff16806124b357506001600160a01b03831660009081526006602052604090205460ff16806124b357506001600160a01b03821660009081526006602052604090205460ff165b612504576040805162461bcd60e51b815260206004820152601f60248201527f54726164696e672069732063757272656e746c79206e6f742061637469766500604482015290519081900360640190fd5b61250c61159d565b6001600160a01b0316836001600160a01b031614158015612546575061253061159d565b6001600160a01b0316826001600160a01b031614155b1561258c5760215481111561258c5760405162461bcd60e51b815260040180806020018281038252602881526020018061363f6028913960400191505060405180910390fd5b61259461159d565b6001600160a01b0316836001600160a01b0316141580156125ce57506125b861159d565b6001600160a01b0316826001600160a01b031614155b801561260c57507f00000000000000000000000026747f77e0ea14972941681df7756800d4743fed6001600160a01b0316826001600160a01b031614155b801561262357506001600160a01b03821661dead14155b1561267a5760006126338361135d565b905060225482820111156126785760405162461bcd60e51b815260040180806020018281038252602281526020018061361d6022913960400191505060405180910390fd5b505b60006126853061135d565b9050602154811061269557506021545b6020546a046e6b3feead3a7398000082101590600160a01b900460ff161580156126c85750602054600160a81b900460ff165b80156126d15750805b801561270f57507f00000000000000000000000026747f77e0ea14972941681df7756800d4743fed6001600160a01b0316856001600160a01b031614155b1561272f5761271d8261298a565b47801561272d5761272d47612bc3565b505b6001600160a01b03851660009081526006602052604090205460019060ff168061277157506001600160a01b03851660009081526006602052604090205460ff165b1561277a575060005b61278686868684612d5d565b505050505050565b6000818484111561281d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127e25781810151838201526020016127ca565b50505050905090810190601f16801561280f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000612832612ed1565b90925090506128418282612848565b9250505090565b600061288a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613060565b9392505050565b60008282018381101561288a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006129088a6012546013546130c5565b9250925092506000612918612825565b9050600080600061292b8e87878761311a565b919e509c509a509598509396509194505050505091939550919395565b600061288a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061278e565b6020805460ff60a01b1916600160a01b1781556040805160028082526060808301845293919290918301908036833701905050905030816000815181106129cd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a4657600080fd5b505afa158015612a5a573d6000803e3d6000fd5b505050506040513d6020811015612a7057600080fd5b5051815182906001908110612a8157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612acc307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612192565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612b71578181015183820152602001612b59565b505050509050019650505050505050600060405180830381600087803b158015612b9a57600080fd5b505af1158015612bae573d6000803e3d6000fd5b50506020805460ff60a01b1916905550505050565b601c54600d546014546001600160a01b03909216916108fc91612bf191612beb908690612848565b9061316a565b6040518115909202916000818181858888f19350505050158015612c19573d6000803e3d6000fd5b50601d54600e546014546001600160a01b03909216916108fc91612c4291612beb908690612848565b6040518115909202916000818181858888f19350505050158015612c6a573d6000803e3d6000fd5b50601e54600f546014546001600160a01b03909216916108fc91612c9391612beb908690612848565b6040518115909202916000818181858888f19350505050158015612cbb573d6000803e3d6000fd5b50601f546010546014546001600160a01b03909216916108fc91612ce491612beb908690612848565b6040518115909202916000818181858888f19350505050158015612d0c573d6000803e3d6000fd5b506020546011546014546001600160a01b03909216916108fc91612d3591612beb908690612848565b6040518115909202916000818181858888f19350505050158015611a1a573d6000803e3d6000fd5b80612d6a57612d6a6131c3565b6001600160a01b03841660009081526007602052604090205460ff168015612dab57506001600160a01b03831660009081526007602052604090205460ff16155b15612dc057612dbb84848461322a565b612ebe565b6001600160a01b03841660009081526007602052604090205460ff16158015612e0157506001600160a01b03831660009081526007602052604090205460ff165b15612e1157612dbb84848461334e565b6001600160a01b03841660009081526007602052604090205460ff16158015612e5357506001600160a01b03831660009081526007602052604090205460ff16155b15612e6357612dbb8484846133f7565b6001600160a01b03841660009081526007602052604090205460ff168015612ea357506001600160a01b03831660009081526007602052604090205460ff165b15612eb357612dbb84848461343b565b612ebe8484846133f7565b80612ecb57612ecb6134ae565b50505050565b600b5460009081906c327cb2734119d3b7a900000000825b60085481101561301857826003600060088481548110612f0557fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612f6a5750816004600060088481548110612f4357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612f8c57600b546c327cb2734119d3b7a9000000009450945050505061305c565b612fcc6003600060088481548110612fa057fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612948565b925061300e6004600060088481548110612fe257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612948565b9150600101612ee9565b50600b54613033906c327cb2734119d3b7a900000000612848565b82101561305657600b546c327cb2734119d3b7a90000000093509350505061305c565b90925090505b9091565b600081836130af5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156127e25781810151838201526020016127ca565b5060008385816130bb57fe5b0495945050505050565b60008080806130df60646130d9898961316a565b90612848565b905060006130f260646130d98a8961316a565b9050600061310a826131048b86612948565b90612948565b9992985090965090945050505050565b6000808080613129888661316a565b90506000613137888761316a565b90506000613145888861316a565b90506000613157826131048686612948565b939b939a50919850919650505050505050565b60008261317957506000610c69565b8282028284828161318657fe5b041461288a5760405162461bcd60e51b81526004018080602001828103825260218152602001806136676021913960400191505060405180910390fd5b6012541580156131d35750601354155b156131dd57613228565b6012805460155560138054601655600d8054601755600e8054601855600f805460195560108054601a5560118054601b55600094859055928490559083905582905581905591829055555b565b60008060008060008061323c876128eb565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061326e9088612948565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461329d9087612948565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546132cc9086612891565b6001600160a01b0389166000908152600360205260409020556132ee816134da565b6132f88483613563565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600080600080600080613360876128eb565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506133929087612948565b6001600160a01b03808b16600090815260036020908152604080832094909455918b168152600490915220546133c89084612891565b6001600160a01b0389166000908152600460209081526040808320939093556003905220546132cc9086612891565b600080600080600080613409876128eb565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061329d9087612948565b60008060008060008061344d876128eb565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061347f9088612948565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546133929087612948565b601554601255601654601355601754600d55601854600e55601954600f55601a54601055601b54601155565b60006134e4612825565b905060006134f2838361316a565b3060009081526003602052604090205490915061350f9082612891565b3060009081526003602090815260408083209390935560079052205460ff161561355e573060009081526004602052604090205461354d9084612891565b306000908152600460205260409020555b505050565b600b546135709083612948565b600b55600c546135809082612891565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526563697069656e742065786365656473206d61782077616c6c65742073697a652e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7757652063616e6e6f7420626c61636b6c69737420556e695377617020726f7574657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207ea14559c785ac1bf0b94f9d1af18bdec73894fdded25bf2101260284848f11a64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a66a7aad027734effbd69ad43e4bc913cd3a8012
-----Decoded View---------------
Arg [0] : UseCaseWallet3 (address): 0xA66a7aaD027734EFfBd69Ad43e4Bc913Cd3A8012
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a66a7aad027734effbd69ad43e4bc913cd3a8012
Deployed Bytecode Sourcemap
17362:24217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38807:105;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21189:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22193:173;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22193:173:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;23541:95;;;;;;;;;;;;;:::i;19383:51::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19383:51:0;;;;;;;;;;;;;;41445:127;;;;;;;;;;;;;:::i;:::-;;21502:103;;;;;;;;;;;;;:::i;40831:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40831:120:0;;:::i;24830:368::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24830:368:0;-1:-1:-1;;;;;24830:368:0;;:::i;19319:38::-;;;;;;;;;;;;;:::i;22378:329::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22378:329:0;;;;;;;;;;;;;;;;;:::i;38924:93::-;;;;;;;;;;;;;:::i;24549:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24549:269:0;;:::i;38596:92::-;;;;;;;;;;;;;:::i;21399:91::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22719:230;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22719:230:0;;;;;;;;:::i;23648:405::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23648:405:0;;:::i;19114:46::-;;;;;;;;;;;;;:::i;24065:472::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24065:472:0;;;;;;;;;:::i;19445:38::-;;;;;;;;;;;;;:::i;32098:168::-;;;;;;;;;;;;;:::i;27787:131::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27787:131:0;-1:-1:-1;;;;;27787:131:0;;:::i;39969:179::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39969:179:0;;:::i;8552:98::-;;;;;;;;;;;;;:::i;19526:30::-;;;;;;;;;;;;;:::i;21617:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21617:210:0;-1:-1:-1;;;;;21617:210:0;;:::i;7989:160::-;;;;;;;;;;;;;:::i;40160:207::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40160:207:0;;:::i;41281:124::-;;;;;;;;;;;;;:::i;7322:87::-;;;;;;;;;;;;;:::i;41102:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41102:140:0;-1:-1:-1;;;;;41102:140:0;;:::i;21292:95::-;;;;;;;;;;;;;:::i;40963:127::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40963:127:0;;:::i;22961:281::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22961:281:0;;;;;;;;:::i;39736:221::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39736:221:0;;:::i;38700:95::-;;;;;;;;;;;;;:::i;21839:179::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21839:179:0;;;;;;;;:::i;23384:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23384:145:0;;;;;;;;;;:::i;25210:541::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25210:541:0;-1:-1:-1;;;;;25210:541:0;;:::i;19171:40::-;;;;;;;;;;;;;:::i;19567:32::-;;;;;;;;;;;;;:::i;39256:103::-;;;;;;;;;;;;;:::i;19222:37::-;;;;;;;;;;;;;:::i;23254:118::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23254:118:0;-1:-1:-1;;;;;23254:118:0;;:::i;40605:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40605:214:0;;:::i;40379:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40379:214:0;;:::i;22030:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22030:151:0;;;;;;;;;;:::i;39029:100::-;;;;;;;;;;;;;:::i;32458:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32458:106:0;;;;:::i;39616:108::-;;;;;;;;;;;;;:::i;39141:103::-;;;;;;;;;;;;;:::i;19270:38::-;;;;;;;;;;;;;:::i;25763:475::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25763:475:0;-1:-1:-1;;;;;25763:475:0;;:::i;8280:260::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8280:260:0;-1:-1:-1;;;;;8280:260:0;;:::i;32278:168::-;;;;;;;;;;;;;:::i;39501:103::-;;;;;;;;;;;;;:::i;39371:118::-;;;;;;;;;;;;;:::i;26250:518::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26250:518:0;-1:-1:-1;;;;;26250:518:0;;:::i;38807:105::-;38887:13;;38807:105;:::o;21189:91::-;21263:5;;;;;;;;;;;;-1:-1:-1;;;21263:5:0;;;;21189:91;:::o;22193:173::-;22268:4;22289:39;22298:12;:10;:12::i;:::-;22312:7;22321:6;22289:8;:39::i;:::-;-1:-1:-1;22350:4:0;22193:173;;;;;:::o;23541:95::-;23614:10;;23541:95;:::o;19383:51::-;;;:::o;41445:127::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;41505:13:::1;:21:::0;;-1:-1:-1;;;;41541:19:0;;;41445:127::o;21502:103::-;18041:22;21502:103;:::o;40831:120::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;40913:12:::1;:26:::0;40831:120::o;24830:368::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;24929:42:::1;-1:-1:-1::0;;;;;24918:53:0;::::1;;;24910:100;;;;-1:-1:-1::0;;;24910:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;25034:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;25033:27;25024:71;;;::::0;;-1:-1:-1;;;25024:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;25109:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;25109:33:0::1;25138:4;25109:33:::0;;::::1;::::0;;;25156:16:::1;:30:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;25156:30:0::1;::::0;;::::1;::::0;;24830:368::o;19319:38::-;;;-1:-1:-1;;;;;19319:38:0;;:::o;22378:329::-;22476:4;22497:36;22507:6;22515:9;22526:6;22497:9;:36::i;:::-;22548:121;22557:6;22565:12;:10;:12::i;:::-;22579:89;22617:6;22579:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22579:19:0;;;;;;:11;:19;;;;;;22599:12;:10;:12::i;:::-;-1:-1:-1;;;;;22579:33:0;;;;;;;;;;;;-1:-1:-1;22579:33:0;;;:89;:37;:89::i;:::-;22548:8;:121::i;:::-;-1:-1:-1;22691:4:0;22378:329;;;;;:::o;38924:93::-;38998:7;;38924:93;:::o;24549:269::-;24615:7;24658;;24647;:18;;24639:73;;;;-1:-1:-1;;;24639:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24727:19;24750:10;:8;:10::i;:::-;24727:33;-1:-1:-1;24782:24:0;:7;24727:33;24782:11;:24::i;:::-;24775:31;;;24549:269;;;;:::o;38596:92::-;38669:7;;38596:92;:::o;21399:91::-;18311:2;21399:91;:::o;22719:230::-;22807:4;22828:83;22837:12;:10;:12::i;:::-;22851:7;22860:50;22899:10;22860:11;:25;22872:12;:10;:12::i;:::-;-1:-1:-1;;;;;22860:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;22860:25:0;;;:34;;;;;;;;;;;:38;:50::i;23648:405::-;23704:14;23721:12;:10;:12::i;:::-;-1:-1:-1;;;;;23757:19:0;;;;;;:11;:19;;;;;;23704:29;;-1:-1:-1;23757:19:0;;23756:20;23748:77;;;;-1:-1:-1;;;23748:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23841:15;23865:19;23876:7;23865:10;:19::i;:::-;-1:-1:-1;;;;;;;;;23917:15:0;;;;;;:7;:15;;;;;;23840:44;;-1:-1:-1;23917:28:0;;:15;-1:-1:-1;23840:44:0;23917:19;:28::i;:::-;-1:-1:-1;;;;;23899:15:0;;;;;;:7;:15;;;;;:46;23970:7;;:20;;23982:7;23970:11;:20::i;:::-;23960:7;:30;24018:10;;:23;;24033:7;24018:14;:23::i;:::-;24005:10;:36;-1:-1:-1;;;23648:405:0:o;19114:46::-;;;-1:-1:-1;;;;;19114:46:0;;:::o;24065:472::-;24155:7;18041:22;24187:7;:18;;24179:62;;;;;-1:-1:-1;;;24179:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24261:17;24256:270;;24300:15;24324:19;24335:7;24324:10;:19::i;:::-;-1:-1:-1;24299:44:0;;-1:-1:-1;24362:14:0;;-1:-1:-1;;;;;24362:14:0;24256:270;24419:23;24450:19;24461:7;24450:10;:19::i;:::-;-1:-1:-1;24417:52:0;;-1:-1:-1;24488:22:0;;-1:-1:-1;;;;;24488:22:0;19445:38;;;:::o;32098:168::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;32156:23:::1;32182:24;32200:4;32182:9;:24::i;:::-;32156:50;;32221:33;32238:15;32221:16;:33::i;:::-;7604:1;32098:168::o:0;27787:131::-;-1:-1:-1;;;;;27879:27:0;27851:4;27879:27;;;:18;:27;;;;;;;;;27787:131::o;39969:179::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;40059:1:::1;40049:6;:11;;:26;;;;;40074:1;40064:6;:11;;40049:26;40041:64;;;::::0;;-1:-1:-1;;;40041:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;40120:7;:16:::0;39969:179::o;8552:98::-;8629:9;;8552:98;:::o;19526:30::-;;;-1:-1:-1;;;19526:30:0;;;;;:::o;21617:210::-;-1:-1:-1;;;;;21711:20:0;;21683:7;21711:20;;;:11;:20;;;;;;;;21707:49;;;-1:-1:-1;;;;;;21740:16:0;;;;;;:7;:16;;;;;;21733:23;;21707:49;-1:-1:-1;;;;;21798:16:0;;;;;;:7;:16;;;;;;21778:37;;:19;:37::i;7989:160::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;8100:1:::1;8084:6:::0;;8063:40:::1;::::0;-1:-1:-1;;;;;8084:6:0;;::::1;::::0;8063:40:::1;::::0;8100:1;;8063:40:::1;8135:1;8118:19:::0;;-1:-1:-1;;;;;;8118:19:0::1;::::0;;7989:160::o;40160:207::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;40262:1:::1;40248:10;:15;;:34;;;;;40281:1;40267:10;:15;;40248:34;40240:76;;;::::0;;-1:-1:-1;;;40240:76:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;40331:11;:24:::0;40160:207::o;41281:124::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;41340:13:::1;:20:::0;;-1:-1:-1;;;;;;;;41340:20:0;;::::1;-1:-1:-1::0;;;41340:20:0::1;41375:18;-1:-1:-1::0;;;41375:18:0::1;::::0;;41281:124::o;7322:87::-;7360:7;7391:6;-1:-1:-1;;;;;7391:6:0;7322:87;:::o;41102:140::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;41198:15:::1;:32:::0;;-1:-1:-1;;;;;;41198:32:0::1;-1:-1:-1::0;;;;;41198:32:0;;;::::1;::::0;;;::::1;::::0;;41102:140::o;21292:95::-;21368:7;;;;;;;;;;;;-1:-1:-1;;;21368:7:0;;;;21292:95;:::o;40963:127::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;41048:14:::1;:30:::0;40963:127::o;22961:281::-;23054:4;23075:129;23084:12;:10;:12::i;:::-;23098:7;23107:96;23146:15;23107:96;;;;;;;;;;;;;;;;;:11;:25;23119:12;:10;:12::i;:::-;-1:-1:-1;;;;;23107:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;23107:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;39736:221::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;39844:1:::1;39828:12;:17;;:38;;;;;39865:1;39849:12;:17;;39828:38;39820:82;;;::::0;;-1:-1:-1;;;39820:82:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;39917:13;:28:::0;39736:221::o;38700:95::-;38775:8;;38700:95;:::o;21839:179::-;21917:4;21938:42;21948:12;:10;:12::i;:::-;21962:9;21973:6;21938:9;:42::i;23384:145::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23479:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;23479:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23384:145::o;25210:541::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25302:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;25293:66;;;::::0;;-1:-1:-1;;;25293:66:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25377:9;25372:369;25396:16;:23:::0;25392:27;::::1;25372:369;;;25473:7;-1:-1:-1::0;;;;;25450:30:0::1;:16;25467:1;25450:19;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;25450:19:0::1;:30;25446:281;;;25528:16;25545:23:::0;;-1:-1:-1;;25545:27:0;;;25528:45;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;25506:16:::1;:19:::0;;-1:-1:-1;;;;;25528:45:0;;::::1;::::0;25523:1;;25506:19;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:67:::0;;-1:-1:-1;;;;;;25506:67:0::1;-1:-1:-1::0;;;;;25506:67:0;;::::1;;::::0;;25597:26;;::::1;::::0;;:17:::1;:26:::0;;;;;;:34;;-1:-1:-1;;25597:34:0::1;::::0;;25655:16:::1;:22:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;25655:22:0;;;;;-1:-1:-1;;;;;;25655:22:0::1;::::0;;;;;25701:5:::1;;25446:281;25421:3;;25372:369;;;;25210:541:::0;:::o;19171:40::-;;;-1:-1:-1;;;;;19171:40:0;;:::o;19567:32::-;;;-1:-1:-1;;;19567:32:0;;;;;:::o;39256:103::-;39335:12;;39256:103;:::o;19222:37::-;;;-1:-1:-1;;;;;19222:37:0;;:::o;23254:118::-;-1:-1:-1;;;;;23340:20:0;23312:4;23340:20;;;:11;:20;;;;;;;;;23254:118::o;40605:214::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;40710:1:::1;40695:11;:16;;:36;;;;;40730:1;40715:11;:16;;40695:36;40687:79;;;::::0;;-1:-1:-1;;;40687:79:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;40781:12;:26:::0;40605:214::o;40379:::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;40484:1:::1;40469:11;:16;;:36;;;;;40504:1;40489:11;:16;;40469:36;40461:79;;;::::0;;-1:-1:-1;;;40461:79:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;40555:12;:26:::0;40379:214::o;22030:151::-;-1:-1:-1;;;;;22142:18:0;;;22111:7;22142:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;22030:151::o;39029:100::-;39106:11;;39029:100;:::o;32458:106::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;32531:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;32531:21:0::1;-1:-1:-1::0;;;;32531:21:0;;::::1;::::0;;;::::1;::::0;;32458:106::o;39616:108::-;39698:14;;39616:108;:::o;39141:103::-;39220:12;;39141:103;:::o;19270:38::-;;;-1:-1:-1;;;;;19270:38:0;;:::o;25763:475::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;25859:42:::1;-1:-1:-1::0;;;;;25848:53:0;::::1;;;25840:100;;;;-1:-1:-1::0;;;25840:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;25964:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;25963:21;25955:61;;;::::0;;-1:-1:-1;;;25955:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;26034:16:0;::::1;26053:1;26034:16:::0;;;:7:::1;:16;::::0;;;;;:20;26031:116:::1;;-1:-1:-1::0;;;;;26114:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;26094:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;26075:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;26031:116:::1;-1:-1:-1::0;;;;;26161:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;26161:27:0::1;26184:4;26161:27:::0;;::::1;::::0;;;26203:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;26203:23:0::1;::::0;;::::1;::::0;;25763:475::o;8280:260::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8373:22:0;::::1;8365:73;;;;-1:-1:-1::0;;;8365:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8479:6;::::0;;8458:38:::1;::::0;-1:-1:-1;;;;;8458:38:0;;::::1;::::0;8479:6;::::1;::::0;8458:38:::1;::::0;::::1;8511:6;:17:::0;;-1:-1:-1;;;;;;8511:17:0::1;-1:-1:-1::0;;;;;8511:17:0;;;::::1;::::0;;;::::1;::::0;;8280:260::o;32278:168::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;32365:21:::1;32401:33;32365:21:::0;32401:13:::1;:33::i;39501:103::-:0;39580:12;;39501:103;:::o;39371:118::-;39456:21;39371:118;:::o;26250:518::-;7540:12;:10;:12::i;:::-;7530:6;;-1:-1:-1;;;;;7530:6:0;;;:22;;;7522:67;;;;;-1:-1:-1;;;7522:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7522:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26335:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;26327:56;;;::::0;;-1:-1:-1;;;26327:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;26403:9;26398:359;26422:9;:16:::0;26418:20;::::1;26398:359;;;26484:7;-1:-1:-1::0;;;;;26468:23:0::1;:9;26478:1;26468:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;26468:12:0::1;:23;26464:278;;;26531:9;26541:16:::0;;-1:-1:-1;;26541:20:0;;;26531:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;26516:9:::1;:12:::0;;-1:-1:-1;;;;;26531:31:0;;::::1;::::0;26526:1;;26516:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;26516:46:0::1;-1:-1:-1::0;;;;;26516:46:0;;::::1;;::::0;;26585:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;26628:11:::1;:20:::0;;;;:28;;-1:-1:-1;;26628:28:0::1;::::0;;26679:9:::1;:15:::0;;;::::1;;;26464:278;26440:3;;26398:359;;109:114:::0;201:10;109:114;:::o;27930:357::-;-1:-1:-1;;;;;28027:19:0;;28019:68;;;;-1:-1:-1;;;28019:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28110:21:0;;28102:68;;;;-1:-1:-1;;;28102:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28187:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;28243:32;;;;;;;;;;;;;;;;;27930:357;;;:::o;28299:2644::-;-1:-1:-1;;;;;28400:20:0;;28392:70;;;;-1:-1:-1;;;28392:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28485:23:0;;28477:71;;;;-1:-1:-1;;;28477:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28580:1;28571:6;:10;28563:64;;;;-1:-1:-1;;;28563:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28651:25:0;;;;;;:17;:25;;;;;;;;28650:26;28642:58;;;;;-1:-1:-1;;;28642:58:0;;;;;;;;;;;;-1:-1:-1;;;28642:58:0;;;;;;;;;;;;;;;28742:10;28724:29;;;;:17;:29;;;;;;;;28723:30;28715:62;;;;;-1:-1:-1;;;28715:62:0;;;;;;;;;;;;-1:-1:-1;;;28715:62:0;;;;;;;;;;;;;;;28819:9;28801:28;;;;:17;:28;;;;;;;;28800:29;28792:61;;;;;-1:-1:-1;;;28792:61:0;;;;;;;;;;;;-1:-1:-1;;;28792:61:0;;;;;;;;;;;;;;;28876:13;;-1:-1:-1;;;28876:13:0;;;;;:78;;-1:-1:-1;;;;;;28894:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;28924:29:0;;;;;;:18;:29;;;;;;;;28894:59;28868:122;;;;;-1:-1:-1;;;28868:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;29018:7;:5;:7::i;:::-;-1:-1:-1;;;;;29008:17:0;:6;-1:-1:-1;;;;;29008:17:0;;;:41;;;;;29042:7;:5;:7::i;:::-;-1:-1:-1;;;;;29029:20:0;:9;-1:-1:-1;;;;;29029:20:0;;;29008:41;29005:156;;;29088:12;;29078:6;:22;;29070:75;;;;-1:-1:-1;;;29070:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29188:7;:5;:7::i;:::-;-1:-1:-1;;;;;29178:17:0;:6;-1:-1:-1;;;;;29178:17:0;;;:41;;;;;29212:7;:5;:7::i;:::-;-1:-1:-1;;;;;29199:20:0;:9;-1:-1:-1;;;;;29199:20:0;;;29178:41;:71;;;;;29236:13;-1:-1:-1;;;;;29223:26:0;:9;-1:-1:-1;;;;;29223:26:0;;;29178:71;:103;;;;-1:-1:-1;;;;;;29253:28:0;;29274:6;29253:28;;29178:103;29175:309;;;29302:29;29334:20;29344:9;29334;:20::i;:::-;29302:52;;29415:14;;29405:6;29381:21;:30;:48;;29373:95;;;;-1:-1:-1;;;29373:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29175:309;;29764:28;29795:24;29813:4;29795:9;:24::i;:::-;29764:55;;29863:12;;29839:20;:36;29836:124;;-1:-1:-1;29932:12:0;;29836:124;30076:6;;19731:16;30003:53;;;;-1:-1:-1;;;30076:6:0;;;;30075:7;:22;;;;-1:-1:-1;30086:11:0;;-1:-1:-1;;;30086:11:0;;;;30075:22;:45;;;;;30101:19;30075:45;:72;;;;;30134:13;-1:-1:-1;;;;;30124:23:0;:6;-1:-1:-1;;;;;30124:23:0;;;30075:72;30071:417;;;30239:38;30256:20;30239:16;:38::i;:::-;30327:21;30370:22;;30367:106;;30417:36;30431:21;30417:13;:36::i;:::-;30071:417;;-1:-1:-1;;;;;30696:26:0;;30569:12;30696:26;;;:18;:26;;;;;;30584:4;;30696:26;;;:59;;-1:-1:-1;;;;;;30726:29:0;;;;;;:18;:29;;;;;;;;30696:59;30693:113;;;-1:-1:-1;30785:5:0;30693:113;30884:47;30899:6;30906:9;30916:6;30923:7;30884:14;:47::i;:::-;28299:2644;;;;;;:::o;2016:208::-;2102:7;2142:12;2134:6;;;;2126:29;;;;-1:-1:-1;;;2126:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2182:5:0;;;2016:208::o;37802:175::-;37843:7;37868:15;37885;37904:19;:17;:19::i;:::-;37867:56;;-1:-1:-1;37867:56:0;-1:-1:-1;37945:20:0;37867:56;;37945:11;:20::i;:::-;37938:27;;;;37802:175;:::o;2759:140::-;2817:7;2848:39;2852:1;2855;2848:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2841:46;2759:140;-1:-1:-1;;;2759:140:0:o;1651:197::-;1709:7;1745:5;;;1773:6;;;;1765:46;;;;;-1:-1:-1;;;1765:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;36495:467;36554:7;36563;36572;36581;36590;36599;36620:23;36645:12;36659:13;36676:39;36688:7;36697;;36706:8;;36676:11;:39::i;:::-;36619:96;;;;;;36726:19;36748:10;:8;:10::i;:::-;36726:32;;36770:15;36787:23;36812:12;36828:46;36840:7;36849:4;36855:5;36862:11;36828;:46::i;:::-;36769:105;;-1:-1:-1;36769:105:0;-1:-1:-1;36769:105:0;-1:-1:-1;36925:15:0;;-1:-1:-1;36942:4:0;;-1:-1:-1;36948:5:0;;-1:-1:-1;;;;;36495:467:0;;;;;;;:::o;1860:144::-;1918:7;1949:43;1953:1;1956;1949:43;;;;;;;;;;;;;;;;;:3;:43::i;30955:656::-;19974:6;:13;;-1:-1:-1;;;;19974:13:0;-1:-1:-1;;;19974:13:0;;;31124:16:::1;::::0;;31138:1:::1;31124:16:::0;;;31100:21:::1;31124:16:::0;;::::1;::::0;;31100:21;31124:16;;31138:1;;31124:16;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;31124:16:0::1;31100:40;;31173:4;31155;31160:1;31155:7;;;;;;;;;;;;;:23;-1:-1:-1::0;;;;;31155:23:0::1;;;-1:-1:-1::0;;;;;31155:23:0::1;;;::::0;::::1;31203:15;-1:-1:-1::0;;;;;31203:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;31203:22:0;31193:7;;:4;;31198:1:::1;::::0;31193:7;::::1;;;;;;;;;;:32;-1:-1:-1::0;;;;;31193:32:0::1;;;-1:-1:-1::0;;;;;31193:32:0::1;;;::::0;::::1;31242:62;31259:4;31274:15;31292:11;31242:8;:62::i;:::-;31351:15;-1:-1:-1::0;;;;;31351:66:0::1;;31436:11;31466:1;31514:4;31545;31569:15;31351:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31351:248:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;20018:6:0;:14;;-1:-1:-1;;;;20018:14:0;;;-1:-1:-1;;;;30955:656:0:o;31623:463::-;31685:23;;31744:13;;31729:9;;-1:-1:-1;;;;;31685:23:0;;;;:74;;31718:40;;:21;;:6;;:10;:21::i;:::-;:25;;:40::i;:::-;31685:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31774:17:0;;31827:7;;31812:9;;-1:-1:-1;;;;;31774:17:0;;;;:62;;31801:34;;:21;;:6;;:10;:21::i;:34::-;31774:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31851:14:0;;31901:11;;31886:9;;-1:-1:-1;;;;;31851:14:0;;;;:63;;31875:38;;:21;;:6;;:10;:21::i;:38::-;31851:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31929:15:0;;31980:12;;31965:9;;-1:-1:-1;;;;;31929:15:0;;;;:65;;31954:39;;:21;;:6;;:10;:21::i;:39::-;31929:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32009:15:0;;32060:12;;32045:9;;-1:-1:-1;;;;;32009:15:0;;;;:65;;32034:39;;:21;;:6;;:10;:21::i;:39::-;32009:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32576:883;32692:7;32688:44;;32718:14;:12;:14::i;:::-;-1:-1:-1;;;;;32753:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;32777:22:0;;;;;;:11;:22;;;;;;;;32776:23;32753:46;32749:637;;;32820:48;32842:6;32850:9;32861:6;32820:21;:48::i;:::-;32749:637;;;-1:-1:-1;;;;;32895:19:0;;;;;;:11;:19;;;;;;;;32894:20;:46;;;;-1:-1:-1;;;;;;32918:22:0;;;;;;:11;:22;;;;;;;;32894:46;32890:496;;;32961:46;32981:6;32989:9;33000:6;32961:19;:46::i;32890:496::-;-1:-1:-1;;;;;33034:19:0;;;;;;:11;:19;;;;;;;;33033:20;:47;;;;-1:-1:-1;;;;;;33058:22:0;;;;;;:11;:22;;;;;;;;33057:23;33033:47;33029:357;;;33101:44;33119:6;33127:9;33138:6;33101:17;:44::i;33029:357::-;-1:-1:-1;;;;;33171:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;33194:22:0;;;;;;:11;:22;;;;;;;;33171:45;33167:219;;;33237:48;33259:6;33267:9;33278:6;33237:21;:48::i;33167:219::-;33326:44;33344:6;33352:9;33363:6;33326:17;:44::i;:::-;33406:7;33402:45;;33432:15;:13;:15::i;:::-;32576:883;;;;:::o;37989:595::-;38090:7;;38039;;;;18041:22;38039:7;38152:305;38176:9;:16;38172:20;;38152:305;;;38246:7;38222;:21;38230:9;38240:1;38230:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;38230:12:0;38222:21;;;;;;;;;;;;;:31;;:66;;;38281:7;38257;:21;38265:9;38275:1;38265:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;38265:12:0;38257:21;;;;;;;;;;;;;:31;38222:66;38218:97;;;38298:7;;18041:22;38290:25;;;;;;;;;38218:97;38344:34;38356:7;:21;38364:9;38374:1;38364:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;38364:12:0;38356:21;;;;;;;;;;;;;38344:7;;:11;:34::i;:::-;38334:44;;38407:34;38419:7;:21;38427:9;38437:1;38427:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;38427:12:0;38419:21;;;;;;;;;;;;;38407:7;;:11;:34::i;:::-;38397:44;-1:-1:-1;38194:3:0;;38152:305;;;-1:-1:-1;38485:7:0;;:20;;18041:22;38485:11;:20::i;:::-;38475:7;:30;38471:61;;;38515:7;;18041:22;38507:25;;;;;;;;38471:61;38555:7;;-1:-1:-1;38564:7:0;-1:-1:-1;37989:595:0;;;:::o;2911:298::-;2997:7;3036:12;3029:5;3021:28;;;;-1:-1:-1;;;3021:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3064:9;3080:1;3076;:5;;;;;;;2911:298;-1:-1:-1;;;;;2911:298:0:o;36974:371::-;37067:7;;;;37124:28;37148:3;37124:19;:7;37136:6;37124:11;:19::i;:::-;:23;;:28::i;:::-;37109:43;-1:-1:-1;37167:13:0;37183:29;37208:3;37183:20;:7;37195;37183:11;:20::i;:29::-;37167:45;-1:-1:-1;37227:23:0;37253:28;37167:45;37253:17;:7;37265:4;37253:11;:17::i;:::-;:21;;:28::i;:::-;37227:54;37321:4;;-1:-1:-1;37327:5:0;;-1:-1:-1;36974:371:0;;-1:-1:-1;;;;;36974:371:0:o;37357:433::-;37467:7;;;;37527:24;:7;37539:11;37527;:24::i;:::-;37509:42;-1:-1:-1;37566:12:0;37581:21;:4;37590:11;37581:8;:21::i;:::-;37566:36;-1:-1:-1;37617:13:0;37633:22;:5;37643:11;37633:9;:22::i;:::-;37617:38;-1:-1:-1;37670:23:0;37696:28;37617:38;37696:17;:7;37708:4;37696:11;:17::i;:28::-;37747:7;;;;-1:-1:-1;37773:4:0;;-1:-1:-1;37357:433:0;;-1:-1:-1;;;;;;;37357:433:0:o;2236:511::-;2294:7;2555:6;2551:55;;-1:-1:-1;2589:1:0;2582:8;;2551:55;2634:5;;;2638:1;2634;:5;:1;2662:5;;;;;:10;2654:56;;;;-1:-1:-1;;;2654:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26780:623;26830:7;;:12;:29;;;;-1:-1:-1;26846:8:0;;:13;26830:29;26827:41;;;26861:7;;26827:41;26902:7;;;26884:15;:25;26943:8;;;26924:16;:27;26992:13;;;26968:21;:37;27038:7;;;27020:15;:25;27079:11;;;27060:16;:30;27125:12;;;27105:17;:32;27172:12;;;27152:17;:32;-1:-1:-1;27201:17:0;;;;27233:11;;;;27259:15;;;;27289:16;;;27320;;;27353:11;;;;27379:12;26780:623;:::o;34602:580::-;34709:15;34726:23;34751:12;34765:23;34790:12;34804:13;34821:19;34832:7;34821:10;:19::i;:::-;-1:-1:-1;;;;;34873:15:0;;;;;;:7;:15;;;;;;34708:132;;-1:-1:-1;34708:132:0;;-1:-1:-1;34708:132:0;;-1:-1:-1;34708:132:0;-1:-1:-1;34708:132:0;-1:-1:-1;34708:132:0;-1:-1:-1;34873:28:0;;34893:7;34873:19;:28::i;:::-;-1:-1:-1;;;;;34855:15:0;;;;;;:7;:15;;;;;;;;:46;;;;34934:7;:15;;;;:28;;34954:7;34934:19;:28::i;:::-;-1:-1:-1;;;;;34916:15:0;;;;;;;:7;:15;;;;;;:46;;;;34998:18;;;;;;;:39;;35021:15;34998:22;:39::i;:::-;-1:-1:-1;;;;;34977:18:0;;;;;;:7;:18;;;;;:60;35052:16;35062:5;35052:9;:16::i;:::-;35083:23;35095:4;35101;35083:11;:23::i;:::-;35143:9;-1:-1:-1;;;;;35126:44:0;35135:6;-1:-1:-1;;;;;35126:44:0;;35154:15;35126:44;;;;;;;;;;;;;;;;;;34602:580;;;;;;;;;:::o;33998:592::-;34103:15;34120:23;34145:12;34159:23;34184:12;34198:13;34215:19;34226:7;34215:10;:19::i;:::-;-1:-1:-1;;;;;34267:15:0;;;;;;:7;:15;;;;;;34102:132;;-1:-1:-1;34102:132:0;;-1:-1:-1;34102:132:0;;-1:-1:-1;34102:132:0;-1:-1:-1;34102:132:0;-1:-1:-1;34102:132:0;-1:-1:-1;34267:28:0;;34102:132;34267:19;:28::i;:::-;-1:-1:-1;;;;;34249:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;34331:18;;;;;:7;:18;;;;;:39;;34354:15;34331:22;:39::i;:::-;-1:-1:-1;;;;;34310:18:0;;;;;;:7;:18;;;;;;;;:60;;;;34406:7;:18;;;;:39;;34429:15;34406:22;:39::i;33471:515::-;33574:15;33591:23;33616:12;33630:23;33655:12;33669:13;33686:19;33697:7;33686:10;:19::i;:::-;-1:-1:-1;;;;;33738:15:0;;;;;;:7;:15;;;;;;33573:132;;-1:-1:-1;33573:132:0;;-1:-1:-1;33573:132:0;;-1:-1:-1;33573:132:0;-1:-1:-1;33573:132:0;-1:-1:-1;33573:132:0;-1:-1:-1;33738:28:0;;33573:132;33738:19;:28::i;35194:655::-;35301:15;35318:23;35343:12;35357:23;35382:12;35396:13;35413:19;35424:7;35413:10;:19::i;:::-;-1:-1:-1;;;;;35465:15:0;;;;;;:7;:15;;;;;;35300:132;;-1:-1:-1;35300:132:0;;-1:-1:-1;35300:132:0;;-1:-1:-1;35300:132:0;-1:-1:-1;35300:132:0;-1:-1:-1;35300:132:0;-1:-1:-1;35465:28:0;;35485:7;35465:19;:28::i;:::-;-1:-1:-1;;;;;35447:15:0;;;;;;:7;:15;;;;;;;;:46;;;;35526:7;:15;;;;:28;;35546:7;35526:19;:28::i;27415:360::-;27473:15;;27463:7;:25;27514:16;;27503:8;:27;27563:21;;27547:13;:37;27609:15;;27599:7;:25;27653:16;;27639:11;:30;27699:17;;27684:12;:32;27746:17;;27731:12;:32;27415:360::o;35861:349::-;35918:19;35941:10;:8;:10::i;:::-;35918:33;-1:-1:-1;35966:13:0;35982:22;:5;35918:33;35982:9;:22::i;:::-;36060:4;36044:22;;;;:7;:22;;;;;;35966:38;;-1:-1:-1;36044:33:0;;35966:38;36044:26;:33::i;:::-;36035:4;36019:22;;;;:7;:22;;;;;;;;:58;;;;36095:11;:26;;;;;;36092:106;;;36181:4;36165:22;;;;:7;:22;;;;;;:33;;36192:5;36165:26;:33::i;:::-;36156:4;36140:22;;;;:7;:22;;;;;:58;36092:106;35861:349;;;:::o;36222:159::-;36304:7;;:17;;36316:4;36304:11;:17::i;:::-;36294:7;:27;36349:10;;:20;;36364:4;36349:14;:20::i;:::-;36336:10;:33;-1:-1:-1;;36222:159:0:o
Swarm Source
ipfs://7ea14559c785ac1bf0b94f9d1af18bdec73894fdded25bf2101260284848f11a
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.