ERC-20
Overview
Max Total Supply
50,000 RIN
Holders
72
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RIN
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-11 */ pragma solidity ^0.8.12; // SPDX-License-Identifier: Unlicensed library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev 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 { _setOwner(address(0)); } /** * @dev 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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } abstract contract ERC20Interface { function balanceOf(address whom) public view virtual returns (uint256); } contract RIN is IERC20, Ownable { using SafeMath for uint256; string constant _name = "Refugees In Need"; string constant _symbol = "RIN"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //address routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; uint256 _totalSupply = 50000 * (10**_decimals); uint256 public biggestBuy = 0; uint256 public lastRingChange = 0; uint256 public resetPeriod = 30 minutes; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => uint256) public _lastRingTimer; mapping(address => uint256) public _payOut; mapping(address => bool) public previousRingHolder; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) private _isBlackedlisted; uint256 private constant MAX = ~uint256(0); uint256 public liquidityFee = 6; uint256 public marketingFee = 6; uint256 public ringFee = 4; uint256 private totalFee = 16; uint256 private totalFeeIfSelling = 0; address public autoLiquidityReceiver; address public marketingWallet; address public Ring; address public _payOutAddress; bool public _isLaunched = false; uint256 _launchTime; IDEXRouter public router; address public pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount = _totalSupply / 100; uint256 public _maxWalletAmount = _totalSupply / 100; uint256 public swapThreshold = _totalSupply / 100; uint256 public timeToWait = 6; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event AutoLiquify(uint256 amountETH, uint256 amountToken); event NewRing(address ring, uint256 buyAmount); event RingPayout(address ring, uint256 amountETH); event RingSold(address ring, uint256 amountETH); constructor() { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = MAX; isFeeExempt[DEAD] = true; isTxLimitExempt[DEAD] = true; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; autoLiquidityReceiver = msg.sender; marketingWallet = msg.sender; Ring = msg.sender; totalFee = liquidityFee.add(marketingFee).add(ringFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function getOwner() external view override returns (address) { return owner(); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function removeLiquidty() public onlyOwner(){ swapAndLiquifyEnabled=false; _maxTxAmount=MAX; _maxWalletAmount=MAX; marketingFee=0; ringFee=0; liquidityFee=0; } function setFees( uint256 newLiquidityFee, uint256 newMarketingFee, uint256 newringFee ) external onlyOwner { require( newLiquidityFee >= 0 && newLiquidityFee <= 10, "Invalid fee" ); require( newMarketingFee >= 0 && newMarketingFee <= 10, "Invalid fee" ); require( newringFee >= 0 && newringFee <= 10, "Invalid fee" ); liquidityFee = newLiquidityFee; marketingFee = newMarketingFee; ringFee = newringFee; totalFee = liquidityFee.add(marketingFee).add(ringFee); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, MAX); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setSwapThreshold(uint256 threshold) external onlyOwner { swapThreshold = threshold; } function setFeeReceivers( address newLiquidityReceiver, address newMarketingWallet ) external onlyOwner { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; } function setResetPeriodInSeconds(uint256 newResetPeriod) external onlyOwner { resetPeriod = newResetPeriod; } function _reset() internal { Ring = marketingWallet; biggestBuy = 0; lastRingChange = block.timestamp; } function epochReset() external view returns (uint256) { return lastRingChange + resetPeriod; } function enableHappyHour() public onlyOwner() { liquidityFee = 1; marketingFee = 1; ringFee = 8; totalFee = liquidityFee.add(marketingFee).add(ringFee); } function setDefaultTaxes() public onlyOwner() { liquidityFee = 2; marketingFee = 4; ringFee = 4; totalFee = liquidityFee.add(marketingFee).add(ringFee); } function vamos() external onlyOwner { require (_isLaunched == false, "Already launched"); _isLaunched = true; _launchTime = block.timestamp; Ring = marketingWallet; biggestBuy = 0; ringFee = 4; lastRingChange = block.timestamp; } function setMaxWalletSize(uint256 amount) external onlyOwner { require(amount>=_totalSupply / 50, "Max wallet size is too low"); _maxWalletAmount = amount; } function setMaxTransactionSize(uint256 amount) external onlyOwner { require(amount>=_totalSupply /10, "Max wallet size is too low"); _maxTxAmount = amount; } function addBlacklist(address addr) external onlyOwner { require(block.timestamp < _launchTime + 45 minutes); _isBlackedlisted[addr]=true; } function removedBlacklist(address addr) external onlyOwner { _isBlackedlisted[addr]=false; } function isBlacklisted(address account) external view returns (bool) { return _isBlackedlisted[account]; } function autoBlacklist(address addr) private { _isBlackedlisted[addr]=true; } function _checkTxLimit( address sender, address recipient, uint256 amount ) internal { if (block.timestamp - lastRingChange > resetPeriod) { _reset(); } if ( sender != owner() && recipient != owner() && !isTxLimitExempt[recipient] && recipient != ZERO && recipient != DEAD && recipient != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); uint256 contractBalanceRecipient = balanceOf(recipient); require( contractBalanceRecipient + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount" ); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); uint256 usedEth = router.getAmountsIn(amount, path)[0]; if (previousRingHolder[recipient]==true && _lastRingTimer[recipient] + 3 hours < block.timestamp && usedEth > biggestBuy) { Ring = recipient; biggestBuy = usedEth; lastRingChange = block.timestamp; emit NewRing(Ring, biggestBuy); } else if (previousRingHolder[recipient]==false && usedEth > biggestBuy) { Ring = recipient; biggestBuy = usedEth; lastRingChange = block.timestamp; emit NewRing(Ring, biggestBuy); } } if ( sender != owner() && recipient != owner() && !isTxLimitExempt[sender] && sender != pair && recipient != address(this) ) { require(amount <= _maxTxAmount, "MAX TX"); if (Ring == sender) { emit RingSold(Ring, biggestBuy); _reset(); } } } function setSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } _transferFrom(sender, recipient, amount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(_isBlackedlisted[sender]!=true && _isBlackedlisted[recipient]!=true, "Blacklisted"); if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if ( msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBack(); } _checkTxLimit(sender, recipient, amount); require(!isWalletToWallet(sender, recipient), "Don't cheat"); uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; if (_isLaunched !=true && recipient !=pair && sender!=owner() && recipient!=owner()) { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); autoBlacklist(recipient); } else if (sender==owner() || recipient==owner()) { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); } else { _balances[recipient] = _balances[recipient].add(amountReceived); _balances[sender] = _balances[sender].sub(amount); } emit Transfer(msg.sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function isWalletToWallet(address sender, address recipient) internal view returns (bool) { if (isFeeExempt[sender] || isFeeExempt[recipient]) { return false; } if (sender == pair || recipient == pair) { return false; } return true; } function swapBack() internal lockTheSwap { //uint256 tokensToLiquify = _balances[address(this)]; uint256 tokensToLiquify = swapThreshold; uint256 amountToLiquify = tokensToLiquify .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); uint256 amountETHRing = amountETH.mul(ringFee).div(totalETHFee); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); (bool tmpSuccess, ) = payable(marketingWallet).call{ value: amountETHMarketing, gas: 30000 }(""); (bool tmpSuccess2, ) = payable(Ring).call{ value: amountETHRing, gas: 30000 }(""); _payOut[Ring]=amountETHRing; previousRingHolder[Ring]=true; _lastRingTimer[Ring] = block.timestamp; emit RingPayout(Ring, amountETHRing); // only to supress warning msg tmpSuccess = false; tmpSuccess2 = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function recoverLosteth() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } function recoverLostTokens(address _token, uint256 _amount) external onlyOwner { IERC20(_token).transfer(msg.sender, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewRing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Ring","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastRingTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_payOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_payOutAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableHappyHour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochReset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRingChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"previousRingHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLiquidty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removedBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ringFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setDefaultTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newringFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vamos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a620005bf565b6200005e9061c350620005d7565b600481815560006005819055600681815561070860075560108181556011919091556012929092556013919091556014556018805460ff60a01b19169055601b805460ff60a81b1916600160a81b179055620000bd90606490620005f9565b601c556064600454620000d19190620005f9565b601d556064600454620000e59190620005f9565b601e556006601f55348015620000fa57600080fd5b506200010633620003ed565b600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018991906200061c565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001eb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021191906200061c565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028491906200061c565b601b80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601a5488168452825280832060001990556001805488168452600d808452828520805460ff19908116841790915582548a168652600e808652848720805483168517905533808852928652848720805483168517905596865283862080548216841790558186529584528285208054871683179055965490971683529091208054909216909417905560158054821683179055601680548216831790556017805490911690911790556012546011546010546200039493620003809290620014266200043d821b17901c565b6200043d60201b620014261790919060201c565b601381905560145560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000662565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200044c838562000647565b905083811015620004a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000503578160001904821115620004e757620004e7620004ac565b80851615620004f557918102915b93841c9390800290620004c7565b509250929050565b6000826200051c57506001620004a6565b816200052b57506000620004a6565b81600181146200054457600281146200054f576200056f565b6001915050620004a6565b60ff841115620005635762000563620004ac565b50506001821b620004a6565b5060208310610133831016604e8410600b841016171562000594575081810a620004a6565b620005a08383620004c2565b8060001904821115620005b757620005b7620004ac565b029392505050565b6000620005d060ff8416836200050b565b9392505050565b6000816000190483118215151615620005f457620005f4620004ac565b500290565b6000826200061757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200062f57600080fd5b81516001600160a01b0381168114620004a357600080fd5b600082198211156200065d576200065d620004ac565b500190565b612b3980620006726000396000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a37578063f887ea4014610a57578063fe2b6bc614610a77578063fe575a8714610a8c57600080fd5b8063df20fd49146109c2578063ea1644d5146109e2578063eb45e70914610a02578063f2fde38b14610a1757600080fd5b8063cec10c11116100dc578063cec10c1114610926578063dbe1c4d514610946578063dd62ed3e1461095c578063dec2ba0f146109a257600080fd5b8063a9059cbb146108c6578063a9e59da3146108e6578063ca33e64c1461090657600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c0014610839578063a4f87a7a14610859578063a617792814610886578063a8aa1b31146108a657600080fd5b80639e0a7810146107d25780639f2bb2e9146107f35780639f55eb4e1461080957600080fd5b806395d89b41116101ab57806395d89b411461075057806398118cb41461077c5780639cfe42da146107925780639d0014b1146107b257600080fd5b80638da5cb5b146106d65780638eb6889f14610724578063944c1d971461073a57600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068957806387b3be7d146106b6578063893d20e8146106d65780638b42507f146106f457600080fd5b8063715018a61461062657806375f0a8741461063b5780637d1db4a51461067357600080fd5b80636b67c4df116102855780636b67c4df146105a45780636c0a24eb146105ba57806370a08231146105d0578063712a890a1461060657600080fd5b8063571ac8b014610544578063658d4b7f1461056457806366e930b31461058457600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104c857806346cf314f146104f85780634a74bb021461050e5780634fef3a821461052f57600080fd5b8063313ce5671461048257806333596f501461049e5780633e02a988146104b357600080fd5b8063125b94e511610354578063125b94e51461042157806318160ddd1461043857806323b872dd1461044d5780632b112e491461046d57600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152601081526f1499599d59d9595cc8125b881399595960821b60208201525b6040516103a69190612664565b3480156103fd57600080fd5b5061041161040c3660046126ce565b610ac5565b60405190151581526020016103a6565b34801561042d57600080fd5b50610436610b32565b005b34801561044457600080fd5b5060045461039c565b34801561045957600080fd5b506104116104683660046126fa565b610b91565b34801561047957600080fd5b5061039c610c56565b34801561048e57600080fd5b50604051601281526020016103a6565b3480156104aa57600080fd5b50610436610ca8565b3480156104bf57600080fd5b5061039c610d01565b3480156104d457600080fd5b506104116104e336600461273b565b600d6020526000908152604090205460ff1681565b34801561050457600080fd5b5061039c60125481565b34801561051a57600080fd5b50601b5461041190600160a81b900460ff1681565b34801561053b57600080fd5b50610436610d13565b34801561055057600080fd5b5061041161055f36600461273b565b610d5e565b34801561057057600080fd5b5061043661057f366004612766565b610d6c565b34801561059057600080fd5b5061043661059f36600461273b565b610dc1565b3480156105b057600080fd5b5061039c60115481565b3480156105c657600080fd5b5061039c601d5481565b3480156105dc57600080fd5b5061039c6105eb36600461273b565b6001600160a01b031660009081526008602052604090205490565b34801561061257600080fd5b5061043661062136600461279f565b610e0c565b34801561063257600080fd5b50610436610e3b565b34801561064757600080fd5b5060165461065b906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561067f57600080fd5b5061039c601c5481565b34801561069557600080fd5b5061039c6106a436600461273b565b600b6020526000908152604090205481565b3480156106c257600080fd5b5060175461065b906001600160a01b031681565b3480156106e257600080fd5b506000546001600160a01b031661065b565b34801561070057600080fd5b5061041161070f36600461273b565b600e6020526000908152604090205460ff1681565b34801561073057600080fd5b5061039c60055481565b34801561074657600080fd5b5061039c60075481565b34801561075c57600080fd5b506040805180820190915260038152622924a760e91b60208201526103e4565b34801561078857600080fd5b5061039c60105481565b34801561079e57600080fd5b506104366107ad36600461273b565b610e71565b3480156107be57600080fd5b506104366107cd36600461279f565b610ed9565b3480156107de57600080fd5b5060185461041190600160a01b900460ff1681565b3480156107ff57600080fd5b5061039c60065481565b34801561081557600080fd5b5061041161082436600461273b565b600c6020526000908152604090205460ff1681565b34801561084557600080fd5b506104366108543660046127b8565b610f08565b34801561086557600080fd5b5061039c61087436600461273b565b600a6020526000908152604090205481565b34801561089257600080fd5b5060185461065b906001600160a01b031681565b3480156108b257600080fd5b50601b5461065b906001600160a01b031681565b3480156108d257600080fd5b506104116108e13660046126ce565b610f60565b3480156108f257600080fd5b5061043661090136600461279f565b610f6d565b34801561091257600080fd5b5060155461065b906001600160a01b031681565b34801561093257600080fd5b506104366109413660046127e6565b610ffa565b34801561095257600080fd5b5061039c601f5481565b34801561096857600080fd5b5061039c6109773660046127b8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109ae57600080fd5b506104366109bd3660046126ce565b6110ac565b3480156109ce57600080fd5b506104366109dd366004612812565b61114c565b3480156109ee57600080fd5b506104366109fd36600461279f565b611198565b348015610a0e57600080fd5b50610436611225565b348015610a2357600080fd5b50610436610a3236600461273b565b611278565b348015610a4357600080fd5b50610436610a52366004612766565b611310565b348015610a6357600080fd5b50601a5461065b906001600160a01b031681565b348015610a8357600080fd5b50610436611365565b348015610a9857600080fd5b50610411610aa736600461273b565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b209086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b655760405162461bcd60e51b8152600401610b5c90612830565b60405180910390fd5b60026010819055600460118190556012819055610b8c91610b869082611426565b90611426565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c3e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c19918490611485565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c498484846114bf565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ca3906001546001600160a01b0316600090815260086020526040902054610c9d90600454906118ab565b906118ab565b905090565b6000546001600160a01b03163314610cd25760405162461bcd60e51b8152600401610b5c90612830565b60405133904780156108fc02916000818181858888f19350505050158015610cfe573d6000803e3d6000fd5b50565b6000600754600654610ca3919061287b565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b8152600401610b5c90612830565b60016010819055601181905560086012819055610b8c91610b869080611426565b6000610b2c82600019610ac5565b6000546001600160a01b03163314610d965760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610deb5760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e365760405162461bcd60e51b8152600401610b5c90612830565b600755565b6000546001600160a01b03163314610e655760405162461bcd60e51b8152600401610b5c90612830565b610e6f60006118ed565b565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b8152600401610b5c90612830565b601954610eaa90610a8c61287b565b4210610eb557600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f035760405162461bcd60e51b8152600401610b5c90612830565b601e55565b6000546001600160a01b03163314610f325760405162461bcd60e51b8152600401610b5c90612830565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c4f3384846114bf565b6000546001600160a01b03163314610f975760405162461bcd60e51b8152600401610b5c90612830565b600a600454610fa69190612893565b811015610ff55760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5c565b601c55565b6000546001600160a01b031633146110245760405162461bcd60e51b8152600401610b5c90612830565b600a8311156110455760405162461bcd60e51b8152600401610b5c906128b5565b600a8211156110665760405162461bcd60e51b8152600401610b5c906128b5565b600a8111156110875760405162461bcd60e51b8152600401610b5c906128b5565b6010839055601182905560128190556110a481610b868585611426565b601355505050565b6000546001600160a01b031633146110d65760405162461bcd60e51b8152600401610b5c90612830565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611123573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114791906128da565b505050565b6000546001600160a01b031633146111765760405162461bcd60e51b8152600401610b5c90612830565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111c25760405162461bcd60e51b8152600401610b5c90612830565b60326004546111d19190612893565b8110156112205760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5c565b601d55565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610b5c90612830565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b0381166113075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b5c565b610cfe816118ed565b6000546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461138f5760405162461bcd60e51b8152600401610b5c90612830565b601854600160a01b900460ff16156113dc5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b5c565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005556004601255600655565b600080611433838561287b565b905083811015610c4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b5c565b600081848411156114a95760405162461bcd60e51b8152600401610b5c9190612664565b5060006114b684866128f7565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061150b57506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6115455760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b5c565b601b54600160a01b900460ff16156115695761156284848461193d565b9050610c4f565b601b546001600160a01b0316331480159061158e5750601b54600160a01b900460ff16155b80156115a35750601b54600160a81b900460ff165b80156115c05750601e543060009081526008602052604090205410155b156115cd576115cd611a23565b6115d8848484611e64565b6115e284846123fa565b1561161d5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b5c565b6001600160a01b0384166000908152600d602052604081205460ff1615801561165f57506001600160a01b0384166000908152600d602052604090205460ff16155b6116695782611674565b611674858585612485565b601854909150600160a01b900460ff1615156001148015906116a45750601b546001600160a01b03858116911614155b80156116be57506000546001600160a01b03868116911614155b80156116d857506000546001600160a01b03858116911614155b15611756576001600160a01b0384166000908152600860205260409020546117009082611426565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461172f90846118ab565b6001600160a01b03861660009081526008602052604090205561175184610eb5565b611860565b6000546001600160a01b038681169116148061177f57506000546001600160a01b038581169116145b156117f4576001600160a01b0384166000908152600860205260409020546117a79082611426565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117d690846118ab565b6001600160a01b038616600090815260086020526040902055611860565b6001600160a01b0384166000908152600860205260409020546118179082611426565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184690846118ab565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611485565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461198e918490611485565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119bd9083611426565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a119086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a5c91600291611a569182908790612548565b906125c7565b90506000611a6a83836118ab565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aa457611aa4612924565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b21919061293a565b81600181518110611b3457611b34612924565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b7a90859060009086903090429060040161299b565b600060405180830381600087803b158015611b9457600080fd5b505af1158015611ba8573d6000803e3d6000fd5b505060105447925060009150611bcc90611bc39060026125c7565b601354906118ab565b90506000611be982611a566011548661254890919063ffffffff16565b90506000611c0683611a566012548761254890919063ffffffff16565b90506000611c286002611a5686611a566010548a61254890919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c7f576040519150601f19603f3d011682016040523d82523d6000602084013e611c84565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611cdd576040519150601f19603f3d011682016040523d82523d6000602084013e611ce2565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e4a57601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611de8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0d91906129d7565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7490426128f7565b1115611e8257611e82612609565b6000546001600160a01b03848116911614801590611eae57506000546001600160a01b03838116911614155b8015611ed357506001600160a01b0382166000908152600e602052604090205460ff16155b8015611eed57506002546001600160a01b03838116911614155b8015611f0757506001546001600160a01b03838116911614155b8015611f215750601b546001600160a01b03838116911614155b8015611f3657506001600160a01b0382163014155b156122d257601c54811115611f765760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5c565b6001600160a01b038216600090815260086020526040902054601d54611f9c838361287b565b1115611ff65760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b5c565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612060573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612084919061293a565b8160008151811061209757612097612924565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120cb576120cb612924565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca749061210f9087908690600401612a05565b600060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121549190810190612a26565b60008151811061216657612166612924565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121c757506001600160a01b0385166000908152600a602052604090205442906121c590612a3061287b565b105b80156121d4575060055481115b1561223e57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122ce565b6001600160a01b0385166000908152600c602052604090205460ff16158015612268575060055481115b156122ce57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122fe57506000546001600160a01b03838116911614155b801561232357506001600160a01b0383166000908152600e602052604090205460ff16155b801561233d5750601b546001600160a01b03848116911614155b801561235257506001600160a01b0382163014155b1561114757601c548111156123925760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5c565b6017546001600160a01b038481169116141561114757601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a1611147612609565b6001600160a01b0382166000908152600d602052604081205460ff168061243957506001600160a01b0382166000908152600d602052604090205460ff165b1561244657506000610b2c565b601b546001600160a01b038481169116148061246f5750601b546001600160a01b038381169116145b1561247c57506000610b2c565b50600192915050565b601b5460009081906001600160a01b038581169116146124a7576013546124ab565b6014545b905060006124be6064611a568685612548565b306000908152600860205260409020549091506124db9082611426565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061252c9085815260200190565b60405180910390a361253e84826118ab565b9695505050505050565b60008261255757506000610b2c565b60006125638385612ae4565b9050826125708583612893565b14610c4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b5c565b6000610c4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612636565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126575760405162461bcd60e51b8152600401610b5c9190612664565b5060006114b68486612893565b600060208083528351808285015260005b8181101561269157858101830151858201604001528201612675565b818111156126a3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610cfe57600080fd5b600080604083850312156126e157600080fd5b82356126ec816126b9565b946020939093013593505050565b60008060006060848603121561270f57600080fd5b833561271a816126b9565b9250602084013561272a816126b9565b929592945050506040919091013590565b60006020828403121561274d57600080fd5b8135610c4f816126b9565b8015158114610cfe57600080fd5b6000806040838503121561277957600080fd5b8235612784816126b9565b9150602083013561279481612758565b809150509250929050565b6000602082840312156127b157600080fd5b5035919050565b600080604083850312156127cb57600080fd5b82356127d6816126b9565b91506020830135612794816126b9565b6000806000606084860312156127fb57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282557600080fd5b82356126ec81612758565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561288e5761288e612865565b500190565b6000826128b057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128ec57600080fd5b8151610c4f81612758565b60008282101561290957612909612865565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294c57600080fd5b8151610c4f816126b9565b600081518084526020808501945080840160005b838110156129905781516001600160a01b03168752958201959082019060010161296b565b509495945050505050565b85815284602082015260a0604082015260006129ba60a0830186612957565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129ec57600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a1e6040830184612957565b949350505050565b60006020808385031215612a3957600080fd5b825167ffffffffffffffff80821115612a5157600080fd5b818501915085601f830112612a6557600080fd5b815181811115612a7757612a7761290e565b8060051b604051601f19603f83011681018181108582111715612a9c57612a9c61290e565b604052918252848201925083810185019188831115612aba57600080fd5b938501935b82851015612ad857845184529385019392850192612abf565b98975050505050505050565b6000816000190483118215151615612afe57612afe612865565b50029056fea264697066735822122061a16a35e91cd4e0de78d4669cd085940d3cdbfcc53aa9958165c219756533ee64736f6c634300080c0033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a37578063f887ea4014610a57578063fe2b6bc614610a77578063fe575a8714610a8c57600080fd5b8063df20fd49146109c2578063ea1644d5146109e2578063eb45e70914610a02578063f2fde38b14610a1757600080fd5b8063cec10c11116100dc578063cec10c1114610926578063dbe1c4d514610946578063dd62ed3e1461095c578063dec2ba0f146109a257600080fd5b8063a9059cbb146108c6578063a9e59da3146108e6578063ca33e64c1461090657600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c0014610839578063a4f87a7a14610859578063a617792814610886578063a8aa1b31146108a657600080fd5b80639e0a7810146107d25780639f2bb2e9146107f35780639f55eb4e1461080957600080fd5b806395d89b41116101ab57806395d89b411461075057806398118cb41461077c5780639cfe42da146107925780639d0014b1146107b257600080fd5b80638da5cb5b146106d65780638eb6889f14610724578063944c1d971461073a57600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068957806387b3be7d146106b6578063893d20e8146106d65780638b42507f146106f457600080fd5b8063715018a61461062657806375f0a8741461063b5780637d1db4a51461067357600080fd5b80636b67c4df116102855780636b67c4df146105a45780636c0a24eb146105ba57806370a08231146105d0578063712a890a1461060657600080fd5b8063571ac8b014610544578063658d4b7f1461056457806366e930b31461058457600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104c857806346cf314f146104f85780634a74bb021461050e5780634fef3a821461052f57600080fd5b8063313ce5671461048257806333596f501461049e5780633e02a988146104b357600080fd5b8063125b94e511610354578063125b94e51461042157806318160ddd1461043857806323b872dd1461044d5780632b112e491461046d57600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152601081526f1499599d59d9595cc8125b881399595960821b60208201525b6040516103a69190612664565b3480156103fd57600080fd5b5061041161040c3660046126ce565b610ac5565b60405190151581526020016103a6565b34801561042d57600080fd5b50610436610b32565b005b34801561044457600080fd5b5060045461039c565b34801561045957600080fd5b506104116104683660046126fa565b610b91565b34801561047957600080fd5b5061039c610c56565b34801561048e57600080fd5b50604051601281526020016103a6565b3480156104aa57600080fd5b50610436610ca8565b3480156104bf57600080fd5b5061039c610d01565b3480156104d457600080fd5b506104116104e336600461273b565b600d6020526000908152604090205460ff1681565b34801561050457600080fd5b5061039c60125481565b34801561051a57600080fd5b50601b5461041190600160a81b900460ff1681565b34801561053b57600080fd5b50610436610d13565b34801561055057600080fd5b5061041161055f36600461273b565b610d5e565b34801561057057600080fd5b5061043661057f366004612766565b610d6c565b34801561059057600080fd5b5061043661059f36600461273b565b610dc1565b3480156105b057600080fd5b5061039c60115481565b3480156105c657600080fd5b5061039c601d5481565b3480156105dc57600080fd5b5061039c6105eb36600461273b565b6001600160a01b031660009081526008602052604090205490565b34801561061257600080fd5b5061043661062136600461279f565b610e0c565b34801561063257600080fd5b50610436610e3b565b34801561064757600080fd5b5060165461065b906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561067f57600080fd5b5061039c601c5481565b34801561069557600080fd5b5061039c6106a436600461273b565b600b6020526000908152604090205481565b3480156106c257600080fd5b5060175461065b906001600160a01b031681565b3480156106e257600080fd5b506000546001600160a01b031661065b565b34801561070057600080fd5b5061041161070f36600461273b565b600e6020526000908152604090205460ff1681565b34801561073057600080fd5b5061039c60055481565b34801561074657600080fd5b5061039c60075481565b34801561075c57600080fd5b506040805180820190915260038152622924a760e91b60208201526103e4565b34801561078857600080fd5b5061039c60105481565b34801561079e57600080fd5b506104366107ad36600461273b565b610e71565b3480156107be57600080fd5b506104366107cd36600461279f565b610ed9565b3480156107de57600080fd5b5060185461041190600160a01b900460ff1681565b3480156107ff57600080fd5b5061039c60065481565b34801561081557600080fd5b5061041161082436600461273b565b600c6020526000908152604090205460ff1681565b34801561084557600080fd5b506104366108543660046127b8565b610f08565b34801561086557600080fd5b5061039c61087436600461273b565b600a6020526000908152604090205481565b34801561089257600080fd5b5060185461065b906001600160a01b031681565b3480156108b257600080fd5b50601b5461065b906001600160a01b031681565b3480156108d257600080fd5b506104116108e13660046126ce565b610f60565b3480156108f257600080fd5b5061043661090136600461279f565b610f6d565b34801561091257600080fd5b5060155461065b906001600160a01b031681565b34801561093257600080fd5b506104366109413660046127e6565b610ffa565b34801561095257600080fd5b5061039c601f5481565b34801561096857600080fd5b5061039c6109773660046127b8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109ae57600080fd5b506104366109bd3660046126ce565b6110ac565b3480156109ce57600080fd5b506104366109dd366004612812565b61114c565b3480156109ee57600080fd5b506104366109fd36600461279f565b611198565b348015610a0e57600080fd5b50610436611225565b348015610a2357600080fd5b50610436610a3236600461273b565b611278565b348015610a4357600080fd5b50610436610a52366004612766565b611310565b348015610a6357600080fd5b50601a5461065b906001600160a01b031681565b348015610a8357600080fd5b50610436611365565b348015610a9857600080fd5b50610411610aa736600461273b565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b209086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b655760405162461bcd60e51b8152600401610b5c90612830565b60405180910390fd5b60026010819055600460118190556012819055610b8c91610b869082611426565b90611426565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c3e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c19918490611485565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c498484846114bf565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ca3906001546001600160a01b0316600090815260086020526040902054610c9d90600454906118ab565b906118ab565b905090565b6000546001600160a01b03163314610cd25760405162461bcd60e51b8152600401610b5c90612830565b60405133904780156108fc02916000818181858888f19350505050158015610cfe573d6000803e3d6000fd5b50565b6000600754600654610ca3919061287b565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b8152600401610b5c90612830565b60016010819055601181905560086012819055610b8c91610b869080611426565b6000610b2c82600019610ac5565b6000546001600160a01b03163314610d965760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610deb5760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e365760405162461bcd60e51b8152600401610b5c90612830565b600755565b6000546001600160a01b03163314610e655760405162461bcd60e51b8152600401610b5c90612830565b610e6f60006118ed565b565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b8152600401610b5c90612830565b601954610eaa90610a8c61287b565b4210610eb557600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f035760405162461bcd60e51b8152600401610b5c90612830565b601e55565b6000546001600160a01b03163314610f325760405162461bcd60e51b8152600401610b5c90612830565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c4f3384846114bf565b6000546001600160a01b03163314610f975760405162461bcd60e51b8152600401610b5c90612830565b600a600454610fa69190612893565b811015610ff55760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5c565b601c55565b6000546001600160a01b031633146110245760405162461bcd60e51b8152600401610b5c90612830565b600a8311156110455760405162461bcd60e51b8152600401610b5c906128b5565b600a8211156110665760405162461bcd60e51b8152600401610b5c906128b5565b600a8111156110875760405162461bcd60e51b8152600401610b5c906128b5565b6010839055601182905560128190556110a481610b868585611426565b601355505050565b6000546001600160a01b031633146110d65760405162461bcd60e51b8152600401610b5c90612830565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611123573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114791906128da565b505050565b6000546001600160a01b031633146111765760405162461bcd60e51b8152600401610b5c90612830565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111c25760405162461bcd60e51b8152600401610b5c90612830565b60326004546111d19190612893565b8110156112205760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5c565b601d55565b6000546001600160a01b0316331461124f5760405162461bcd60e51b8152600401610b5c90612830565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b0381166113075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b5c565b610cfe816118ed565b6000546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610b5c90612830565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461138f5760405162461bcd60e51b8152600401610b5c90612830565b601854600160a01b900460ff16156113dc5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b5c565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005556004601255600655565b600080611433838561287b565b905083811015610c4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b5c565b600081848411156114a95760405162461bcd60e51b8152600401610b5c9190612664565b5060006114b684866128f7565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061150b57506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6115455760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b5c565b601b54600160a01b900460ff16156115695761156284848461193d565b9050610c4f565b601b546001600160a01b0316331480159061158e5750601b54600160a01b900460ff16155b80156115a35750601b54600160a81b900460ff165b80156115c05750601e543060009081526008602052604090205410155b156115cd576115cd611a23565b6115d8848484611e64565b6115e284846123fa565b1561161d5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b5c565b6001600160a01b0384166000908152600d602052604081205460ff1615801561165f57506001600160a01b0384166000908152600d602052604090205460ff16155b6116695782611674565b611674858585612485565b601854909150600160a01b900460ff1615156001148015906116a45750601b546001600160a01b03858116911614155b80156116be57506000546001600160a01b03868116911614155b80156116d857506000546001600160a01b03858116911614155b15611756576001600160a01b0384166000908152600860205260409020546117009082611426565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461172f90846118ab565b6001600160a01b03861660009081526008602052604090205561175184610eb5565b611860565b6000546001600160a01b038681169116148061177f57506000546001600160a01b038581169116145b156117f4576001600160a01b0384166000908152600860205260409020546117a79082611426565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117d690846118ab565b6001600160a01b038616600090815260086020526040902055611860565b6001600160a01b0384166000908152600860205260409020546118179082611426565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184690846118ab565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611485565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461198e918490611485565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119bd9083611426565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a119086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a5c91600291611a569182908790612548565b906125c7565b90506000611a6a83836118ab565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aa457611aa4612924565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b21919061293a565b81600181518110611b3457611b34612924565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b7a90859060009086903090429060040161299b565b600060405180830381600087803b158015611b9457600080fd5b505af1158015611ba8573d6000803e3d6000fd5b505060105447925060009150611bcc90611bc39060026125c7565b601354906118ab565b90506000611be982611a566011548661254890919063ffffffff16565b90506000611c0683611a566012548761254890919063ffffffff16565b90506000611c286002611a5686611a566010548a61254890919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c7f576040519150601f19603f3d011682016040523d82523d6000602084013e611c84565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611cdd576040519150601f19603f3d011682016040523d82523d6000602084013e611ce2565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e4a57601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611de8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0d91906129d7565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7490426128f7565b1115611e8257611e82612609565b6000546001600160a01b03848116911614801590611eae57506000546001600160a01b03838116911614155b8015611ed357506001600160a01b0382166000908152600e602052604090205460ff16155b8015611eed57506002546001600160a01b03838116911614155b8015611f0757506001546001600160a01b03838116911614155b8015611f215750601b546001600160a01b03838116911614155b8015611f3657506001600160a01b0382163014155b156122d257601c54811115611f765760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5c565b6001600160a01b038216600090815260086020526040902054601d54611f9c838361287b565b1115611ff65760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b5c565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612060573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612084919061293a565b8160008151811061209757612097612924565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120cb576120cb612924565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca749061210f9087908690600401612a05565b600060405180830381865afa15801561212c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121549190810190612a26565b60008151811061216657612166612924565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121c757506001600160a01b0385166000908152600a602052604090205442906121c590612a3061287b565b105b80156121d4575060055481115b1561223e57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122ce565b6001600160a01b0385166000908152600c602052604090205460ff16158015612268575060055481115b156122ce57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122fe57506000546001600160a01b03838116911614155b801561232357506001600160a01b0383166000908152600e602052604090205460ff16155b801561233d5750601b546001600160a01b03848116911614155b801561235257506001600160a01b0382163014155b1561114757601c548111156123925760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5c565b6017546001600160a01b038481169116141561114757601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a1611147612609565b6001600160a01b0382166000908152600d602052604081205460ff168061243957506001600160a01b0382166000908152600d602052604090205460ff165b1561244657506000610b2c565b601b546001600160a01b038481169116148061246f5750601b546001600160a01b038381169116145b1561247c57506000610b2c565b50600192915050565b601b5460009081906001600160a01b038581169116146124a7576013546124ab565b6014545b905060006124be6064611a568685612548565b306000908152600860205260409020549091506124db9082611426565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061252c9085815260200190565b60405180910390a361253e84826118ab565b9695505050505050565b60008261255757506000610b2c565b60006125638385612ae4565b9050826125708583612893565b14610c4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b5c565b6000610c4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612636565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126575760405162461bcd60e51b8152600401610b5c9190612664565b5060006114b68486612893565b600060208083528351808285015260005b8181101561269157858101830151858201604001528201612675565b818111156126a3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610cfe57600080fd5b600080604083850312156126e157600080fd5b82356126ec816126b9565b946020939093013593505050565b60008060006060848603121561270f57600080fd5b833561271a816126b9565b9250602084013561272a816126b9565b929592945050506040919091013590565b60006020828403121561274d57600080fd5b8135610c4f816126b9565b8015158114610cfe57600080fd5b6000806040838503121561277957600080fd5b8235612784816126b9565b9150602083013561279481612758565b809150509250929050565b6000602082840312156127b157600080fd5b5035919050565b600080604083850312156127cb57600080fd5b82356127d6816126b9565b91506020830135612794816126b9565b6000806000606084860312156127fb57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282557600080fd5b82356126ec81612758565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561288e5761288e612865565b500190565b6000826128b057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128ec57600080fd5b8151610c4f81612758565b60008282101561290957612909612865565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294c57600080fd5b8151610c4f816126b9565b600081518084526020808501945080840160005b838110156129905781516001600160a01b03168752958201959082019060010161296b565b509495945050505050565b85815284602082015260a0604082015260006129ba60a0830186612957565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129ec57600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a1e6040830184612957565b949350505050565b60006020808385031215612a3957600080fd5b825167ffffffffffffffff80821115612a5157600080fd5b818501915085601f830112612a6557600080fd5b815181811115612a7757612a7761290e565b8060051b604051601f19603f83011681018181108582111715612a9c57612a9c61290e565b604052918252848201925083810185019188831115612aba57600080fd5b938501935b82851015612ad857845184529385019392850192612abf565b98975050505050505050565b6000816000190483118215151615612afe57612afe612865565b50029056fea264697066735822122061a16a35e91cd4e0de78d4669cd085940d3cdbfcc53aa9958165c219756533ee64736f6c634300080c0033
Deployed Bytecode Sourcemap
6740:16246:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8524:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8524:49:0;;;;;;;;9831:94;;;;;;;;;;-1:-1:-1;9912:5:0;;;;;;;;;;;;-1:-1:-1;;;9912:5:0;;;;9831:94;;;;;;;:::i;11733:248::-;;;;;;;;;;-1:-1:-1;11733:248:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;11733:248:0;1254:187:1;13373:200:0;;;;;;;;;;;;;:::i;:::-;;10243:102;;;;;;;;;;-1:-1:-1;10325:12:0;;10243:102;;17263:423;;;;;;;;;;-1:-1:-1;17263:423:0;;;;;:::i;:::-;;:::i;10353:142::-;;;;;;;;;;;;;:::i;10039:94::-;;;;;;;;;;-1:-1:-1;10039:94:0;;6928:2;2049:36:1;;2037:2;2022:18;10039:94:0;1907:184:1;22695:115:0;;;;;;;;;;;;;:::i;13049:108::-;;;;;;;;;;;;;:::i;7664:43::-;;;;;;;;;;-1:-1:-1;7664:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7953:26;;;;;;;;;;;;;;;;8363:40;;;;;;;;;;-1:-1:-1;8363:40:0;;;;-1:-1:-1;;;8363:40:0;;;;;;13165:200;;;;;;;;;;;;;:::i;11989:108::-;;;;;;;;;;-1:-1:-1;11989:108:0;;;;;:::i;:::-;;:::i;12105:119::-;;;;;;;;;;-1:-1:-1;12105:119:0;;;;;:::i;:::-;;:::i;14439:106::-;;;;;;;;;;-1:-1:-1;14439:106:0;;;;;:::i;:::-;;:::i;7915:31::-;;;;;;;;;;;;;;;;8465:52;;;;;;;;;;;;;;;;10503:119;;;;;;;;;;-1:-1:-1;10503:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10596:18:0;10569:7;10596:18;;;:9;:18;;;;;;;10503:119;12751:146;;;;;;;;;;-1:-1:-1;12751:146:0;;;;;:::i;:::-;;:::i;5993:94::-;;;;;;;;;;;;;:::i;8109:30::-;;;;;;;;;;-1:-1:-1;8109:30:0;;;;-1:-1:-1;;;;;8109:30:0;;;;;;-1:-1:-1;;;;;3207:32:1;;;3189:51;;3177:2;3162:18;8109:30:0;3043:203:1;8410:48:0;;;;;;;;;;;;;;;;7558:42;;;;;;;;;;-1:-1:-1;7558:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;8146:19;;;;;;;;;;-1:-1:-1;8146:19:0;;;;-1:-1:-1;;;;;8146:19:0;;;10141:94;;;;;;;;;;-1:-1:-1;10193:7:0;5415:6;-1:-1:-1;;;;;5415:6:0;10141:94;10353:142;7714:47;;;;;;;;;;-1:-1:-1;7714:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7270:29;;;;;;;;;;;;;;;;7346:39;;;;;;;;;;;;;;;;9933:98;;;;;;;;;;-1:-1:-1;10016:7:0;;;;;;;;;;;;-1:-1:-1;;;10016:7:0;;;;9933:98;;7877:31;;;;;;;;;;;;;;;;14266:165;;;;;;;;;;-1:-1:-1;14266:165:0;;;;;:::i;:::-;;:::i;12390:108::-;;;;;;;;;;-1:-1:-1;12390:108:0;;;;;:::i;:::-;;:::i;8210:31::-;;;;;;;;;;-1:-1:-1;8210:31:0;;;;-1:-1:-1;;;8210:31:0;;;;;;7306:33;;;;;;;;;;;;;;;;7607:50;;;;;;;;;;-1:-1:-1;7607:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12506:237;;;;;;;;;;-1:-1:-1;12506:237:0;;;;;:::i;:::-;;:::i;7502:49::-;;;;;;;;;;-1:-1:-1;7502:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;8172:29;;;;;;;;;;-1:-1:-1;8172:29:0;;;;-1:-1:-1;;;;;8172:29:0;;;8307:19;;;;;;;;;;-1:-1:-1;8307:19:0;;;;-1:-1:-1;;;;;8307:19:0;;;17067:188;;;;;;;;;;-1:-1:-1;17067:188:0;;;;;:::i;:::-;;:::i;14076:182::-;;;;;;;;;;-1:-1:-1;14076:182:0;;;;;:::i;:::-;;:::i;8066:36::-;;;;;;;;;;-1:-1:-1;8066:36:0;;;;-1:-1:-1;;;;;8066:36:0;;;10856:673;;;;;;;;;;-1:-1:-1;10856:673:0;;;;;:::i;:::-;;:::i;8580:29::-;;;;;;;;;;;;;;;;11537:188;;;;;;;;;;-1:-1:-1;11537:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;11689:19:0;;;11657:7;11689:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11537:188;22818:165;;;;;;;;;;-1:-1:-1;22818:165:0;;;;;:::i;:::-;;:::i;16841:218::-;;;;;;;;;;-1:-1:-1;16841:218:0;;;;;:::i;:::-;;:::i;13886:182::-;;;;;;;;;;-1:-1:-1;13886:182:0;;;;;:::i;:::-;;:::i;10630:218::-;;;;;;;;;;;;;:::i;6242:192::-;;;;;;;;;;-1:-1:-1;6242:192:0;;;;;:::i;:::-;;:::i;12232:150::-;;;;;;;;;;-1:-1:-1;12232:150:0;;;;;:::i;:::-;;:::i;8276:24::-;;;;;;;;;;-1:-1:-1;8276:24:0;;;;-1:-1:-1;;;;;8276:24:0;;;13581:297;;;;;;;;;;;;;:::i;14553:120::-;;;;;;;;;;-1:-1:-1;14553:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;14640:25:0;14616:4;14640:25;;;:16;:25;;;;;;;;;14553:120;11733:248;11869:10;11835:4;11857:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11857:32:0;;;;;;;;;;:41;;;11914:37;11835:4;;11857:32;;11914:37;;;;11892:6;160:25:1;;148:2;133:18;;14:177;11914:37:0;;;;;;;;-1:-1:-1;11969:4:0;11733:248;;;;;:::o;13373:200::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;;;;;;;;;13450:1:::1;13435:12;:16:::0;;;13477:1:::1;13462:12;:16:::0;;;13489:7:::1;:11:::0;;;13522:43:::1;::::0;:30:::1;::::0;13477:1;13522:16:::1;:30::i;:::-;:34:::0;::::1;:43::i;:::-;13511:8;:54:::0;13373:200::o;17263:423::-;-1:-1:-1;;;;;17418:19:0;;17397:4;17418:19;;;:11;:19;;;;;;;;17438:10;17418:31;;;;;;;;-1:-1:-1;;17418:38:0;17414:192;;17507:87;;;;;;;;;;;-1:-1:-1;;;17507:87:0;;;;;;;;-1:-1:-1;;;;;17507:19:0;;-1:-1:-1;17507:19:0;;;:11;:19;;;;;17527:10;17507:31;;;;;;;;;;:87;;17561:6;;17507:53;:87::i;:::-;-1:-1:-1;;;;;17473:19:0;;;;;;:11;:19;;;;;;;;17493:10;17473:31;;;;;;;:121;17414:192;17616:40;17630:6;17638:9;17649:6;17616:13;:40::i;:::-;;17674:4;17667:11;;17263:423;;;;;;:::o;10353:142::-;10481:4;;-1:-1:-1;;;;;10481:4:0;10406:7;10596:18;;;:9;:18;;;;;;10433:54;;10460:4;;-1:-1:-1;;;;;10460:4:0;10569:7;10596:18;;;:9;:18;;;;;;10433:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;10426:61;;10353:142;:::o;22695:115::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;22751:51:::1;::::0;22759:10:::1;::::0;22780:21:::1;22751:51:::0;::::1;;;::::0;::::1;::::0;;;22780:21;22759:10;22751:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22695:115::o:0;13049:108::-;13094:7;13138:11;;13121:14;;:28;;;;:::i;13165:200::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13242:1:::1;13227:12;:16:::0;;;13254:12:::1;:16:::0;;;13291:1:::1;13281:7;:11:::0;;;13314:43:::1;::::0;:30:::1;::::0;13242:1;13314:16:::1;:30::i;11989:108::-:0;12044:4;12068:21;12076:7;-1:-1:-1;;12068:7:0;:21::i;12105:119::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12188:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12188:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12105:119::o;14439:106::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14509:22:0::1;14532:5;14509:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;14509:28:0::1;::::0;;14439:106::o;12751:146::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12861:11:::1;:28:::0;12751:146::o;5993:94::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;6058:21:::1;6076:1;6058:9;:21::i;:::-;5993:94::o:0;14266:165::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;14358:11:::1;::::0;:24:::1;::::0;14372:10:::1;14358:24;:::i;:::-;14340:15;:42;14332:51;;;::::0;::::1;;-1:-1:-1::0;;;;;14394:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;14394:27:0::1;14417:4;14394:27;::::0;;14266:165::o;12390:108::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12465:13:::1;:25:::0;12390:108::o;12506:237::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12644:21:::1;:44:::0;;-1:-1:-1;;;;;12644:44:0;;::::1;-1:-1:-1::0;;;;;;12644:44:0;;::::1;;::::0;;;12699:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;12506:237::o;17067:188::-;17174:4;17203:44;17217:10;17229:9;17240:6;17203:13;:44::i;14076:182::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;14183:2:::1;14169:12;;:16;;;;:::i;:::-;14161:6;:24;;14153:63;;;::::0;-1:-1:-1;;;14153:63:0;;5555:2:1;14153:63:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;14153:63:0::1;5353:350:1::0;14153:63:0::1;14227:12;:21:::0;14076:182::o;10856:673::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;11072:2:::1;11053:15;:21;;11007:106;;;;-1:-1:-1::0;;;11007:106:0::1;;;;;;;:::i;:::-;11191:2;11172:15;:21;;11126:106;;;;-1:-1:-1::0;;;11126:106:0::1;;;;;;;:::i;:::-;11300:2;11286:10;:16;;11245:96;;;;-1:-1:-1::0;;;11245:96:0::1;;;;;;;:::i;:::-;11354:12;:30:::0;;;11395:12:::1;:30:::0;;;11436:7:::1;:20:::0;;;11478:43:::1;11446:10:::0;11478:30:::1;11369:15:::0;11410;11478:16:::1;:30::i;:43::-;11467:8;:54:::0;-1:-1:-1;;;10856:673:0:o;22818:165::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;22931:44:::1;::::0;-1:-1:-1;;;22931:44:0;;22955:10:::1;22931:44;::::0;::::1;6222:51:1::0;6289:18;;;6282:34;;;-1:-1:-1;;;;;22931:23:0;::::1;::::0;::::1;::::0;6195:18:1;;22931:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22818:165:::0;;:::o;16841:218::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;16970:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;16970:38:0::1;-1:-1:-1::0;;;;16970:38:0;;::::1;::::0;;;::::1;::::0;;;17019:13:::1;:32:::0;16841:218::o;13886:182::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13989:2:::1;13974:12;;:17;;;;:::i;:::-;13966:6;:25;;13958:64;;;::::0;-1:-1:-1;;;13958:64:0;;5555:2:1;13958:64:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;13958:64:0::1;5353:350:1::0;13958:64:0::1;14033:16;:25:::0;13886:182::o;10630:218::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;10685:21:::1;:27:::0;;-1:-1:-1;;;;10685:27:0::1;::::0;;-1:-1:-1;;10723:12:0::1;:16:::0;;;10750::::1;:20:::0;10707:5:::1;10781:12;:14:::0;;;10806:7:::1;:9:::0;;;10826:12:::1;:14:::0;10630:218::o;6242:192::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6331:22:0;::::1;6323:73;;;::::0;-1:-1:-1;;;6323:73:0;;6779:2:1;6323:73:0::1;::::0;::::1;6761:21:1::0;6818:2;6798:18;;;6791:30;6857:34;6837:18;;;6830:62;-1:-1:-1;;;6908:18:1;;;6901:36;6954:19;;6323:73:0::1;6577:402:1::0;6323:73:0::1;6407:19;6417:8;6407:9;:19::i;12232:150::-:0;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12342:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;12342:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12232:150::o;13581:297::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13637:11:::1;::::0;-1:-1:-1;;;13637:11:0;::::1;;;:20;13628:50;;;::::0;-1:-1:-1;;;13628:50:0;;7186:2:1;13628:50:0::1;::::0;::::1;7168:21:1::0;7225:2;7205:18;;;7198:30;-1:-1:-1;;;7244:18:1;;;7237:46;7300:18;;13628:50:0::1;6984:340:1::0;13628:50:0::1;13689:11;:18:::0;;-1:-1:-1;;;;13689:18:0::1;-1:-1:-1::0;;;13689:18:0::1;::::0;;13732:15:::1;13718:11;:29:::0;;;13765:15:::1;::::0;13758:4:::1;:22:::0;;-1:-1:-1;;;;;;13758:22:0::1;-1:-1:-1::0;;;;;13765:15:0;;::::1;13758:22:::0;;;::::1;::::0;;13689:18;13791:10:::1;:14:::0;13826:1:::1;-1:-1:-1::0;13816:11:0;-1:-1:-1;13838:32:0;13581:297::o;94:179::-;152:7;;184:5;188:1;184;:5;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;-1:-1:-1;;;200:46:0;;7531:2:1;200:46:0;;;7513:21:1;7570:2;7550:18;;;7543:30;7609:29;7589:18;;;7582:57;7656:18;;200:46:0;7329:351:1;425:224:0;545:7;581:12;573:6;;;;565:29;;;;-1:-1:-1;;;565:29:0;;;;;;;;:::i;:::-;-1:-1:-1;605:9:0;617:5;621:1;617;:5;:::i;:::-;605:17;425:224;-1:-1:-1;;;;;425:224:0:o;17694:1687::-;-1:-1:-1;;;;;17845:24:0;;17820:4;17845:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;17879:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;17845:67;17837:91;;;;-1:-1:-1;;;17837:91:0;;8017:2:1;17837:91:0;;;7999:21:1;8056:2;8036:18;;;8029:30;-1:-1:-1;;;8075:18:1;;;8068:41;8126:18;;17837:91:0;7815:335:1;17837:91:0;17943:16;;-1:-1:-1;;;17943:16:0;;;;17939:97;;;17983:41;17998:6;18006:9;18017:6;17983:14;:41::i;:::-;17976:48;;;;17939:97;18078:4;;-1:-1:-1;;;;;18078:4:0;18064:10;:18;;;;:52;;-1:-1:-1;18100:16:0;;-1:-1:-1;;;18100:16:0;;;;18099:17;18064:52;:90;;;;-1:-1:-1;18133:21:0;;-1:-1:-1;;;18133:21:0;;;;18064:90;:148;;;;-1:-1:-1;18199:13:0;;18189:4;18171:24;;;;:9;:24;;;;;;:41;;18064:148;18046:215;;;18239:10;:8;:10::i;:::-;18271:40;18285:6;18293:9;18304:6;18271:13;:40::i;:::-;18331:35;18348:6;18356:9;18331:16;:35::i;:::-;18330:36;18322:60;;;;-1:-1:-1;;;18322:60:0;;8357:2:1;18322:60:0;;;8339:21:1;8396:2;8376:18;;;8369:30;-1:-1:-1;;;8415:18:1;;;8408:41;8466:18;;18322:60:0;8155:335:1;18322:60:0;-1:-1:-1;;;;;18421:19:0;;18395:22;18421:19;;;:11;:19;;;;;;;;18420:20;:47;;;;-1:-1:-1;;;;;;18445:22:0;;;;;;:11;:22;;;;;;;;18444:23;18420:47;:119;;18533:6;18420:119;;;18483:34;18491:6;18499:9;18510:6;18483:7;:34::i;:::-;18556:11;;18395:144;;-1:-1:-1;;;;18556:11:0;;;;:18;;18570:4;18556:18;;;;:38;;-1:-1:-1;18590:4:0;;-1:-1:-1;;;;;18578:16:0;;;18590:4;;18578:16;;18556:38;:57;;;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18598:15:0;;;5415:6;;18598:15;;18556:57;:79;;;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18617:18:0;;;5415:6;;18617:18;;18556:79;18552:737;;;-1:-1:-1;;;;;18685:20:0;;;;;;:9;:20;;;;;;:40;;18710:14;18685:24;:40::i;:::-;-1:-1:-1;;;;;18662:20:0;;;;;;;:9;:20;;;;;;:63;;;;18760:17;;;;;;;:29;;18782:6;18760:21;:29::i;:::-;-1:-1:-1;;;;;18740:17:0;;;;;;:9;:17;;;;;:49;18827:24;18841:9;18827:13;:24::i;:::-;18552:737;;;5388:7;5415:6;-1:-1:-1;;;;;18882:15:0;;;5415:6;;18882:15;;:37;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18901:18:0;;;5415:6;;18901:18;18882:37;18878:411;;;-1:-1:-1;;;;;18969:20:0;;;;;;:9;:20;;;;;;:40;;18994:14;18969:24;:40::i;:::-;-1:-1:-1;;;;;18946:20:0;;;;;;;:9;:20;;;;;;:63;;;;19044:17;;;;;;;:29;;19066:6;19044:21;:29::i;:::-;-1:-1:-1;;;;;19024:17:0;;;;;;:9;:17;;;;;:49;18878:411;;;-1:-1:-1;;;;;19172:20:0;;;;;;:9;:20;;;;;;:40;;19197:14;19172:24;:40::i;:::-;-1:-1:-1;;;;;19149:20:0;;;;;;;:9;:20;;;;;;:63;;;;19248:17;;;;;;;:29;;19270:6;19248:21;:29::i;:::-;-1:-1:-1;;;;;19228:17:0;;;;;;:9;:17;;;;;:49;18878:411;19304:47;;160:25:1;;;-1:-1:-1;;;;;19304:47:0;;;19313:10;;19304:47;;148:2:1;133:18;19304:47:0;;;;;;;-1:-1:-1;19369:4:0;;17694:1687;-1:-1:-1;;;;17694:1687:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;6442:173::-;6498:16;6517:6;;-1:-1:-1;;;;;6534:17:0;;;-1:-1:-1;;;;;;6534:17:0;;;;;;6567:40;;6517:6;;;;;;;6567:40;;6498:16;6567:40;6487:128;6442:173;:::o;19389:401::-;19553:90;;;;;;;;;;;-1:-1:-1;;;19553:90:0;;;;;;;;-1:-1:-1;;;;;19553:17:0;;19516:4;19553:17;;;:9;:17;;;;;;;:90;;19589:6;;19553:21;:90::i;:::-;-1:-1:-1;;;;;19533:17:0;;;;;;;:9;:17;;;;;;:110;;;;19677:20;;;;;;;:32;;19702:6;19677:24;:32::i;:::-;-1:-1:-1;;;;;19654:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19725:35;;;;;;;;;;19753:6;160:25:1;;148:2;133:18;;14:177;19725:35:0;;;;;;;;-1:-1:-1;19778:4:0;19389:401;;;;;:::o;20641:2046::-;8652:16;:23;;-1:-1:-1;;;;8652:23:0;-1:-1:-1;;;8652:23:0;;;20782:13:::1;::::0;20898:8:::1;::::0;20866:12:::1;::::0;8652:23;;20832:96:::1;::::0;20926:1:::1;::::0;20832:75:::1;::::0;;;20782:13;;20832:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;20806:122:::0;-1:-1:-1;20939:20:0::1;20962:36;:15:::0;20806:122;20962:19:::1;:36::i;:::-;21035:16;::::0;;21049:1:::1;21035:16:::0;;;;;::::1;::::0;;20939:59;;-1:-1:-1;21011:21:0::1;::::0;21035:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21035:16:0::1;21011:40;;21080:4;21062;21067:1;21062:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21062:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21106:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;21106:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;21062:7;;21106:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21096:4;21101:1;21096:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21096:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21132:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21132:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;21204:12;;21132:6:::1;::::0;21247:4;;21274::::1;::::0;21294:15:::1;::::0;21132:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;21420:12:0::1;::::0;21353:21:::1;::::0;-1:-1:-1;21333:17:0::1;::::0;-1:-1:-1;21407:33:0::1;::::0;21420:19:::1;::::0;21437:1:::1;21420:16;:19::i;:::-;21407:8;::::0;;:12:::1;:33::i;:::-;21385:55;;21451:26;21480:68;21526:11;21480:27;21494:12;;21480:9;:13;;:27;;;;:::i;:68::-;21451:97;;21559:21;21583:39;21610:11;21583:22;21597:7;;21583:9;:13;;:22;;;;:::i;:39::-;21559:63;;21633:26;21662:93;21753:1;21662:72;21722:11;21662:41;21690:12;;21662:9;:27;;:41;;;;:::i;:93::-;21798:15;::::0;21790:109:::1;::::0;21633:122;;-1:-1:-1;21769:15:0::1;::::0;-1:-1:-1;;;;;21798:15:0;;::::1;::::0;21879:5:::1;::::0;21841:18;;21769:15;21790:109;21769:15;21790:109;21841:18;21798:15;21879:5;21790:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21941:4:0::1;::::0;21933:93:::1;::::0;21768:131;;-1:-1:-1;21911:16:0::1;::::0;-1:-1:-1;;;;;21941:4:0;;::::1;::::0;22006:5:::1;::::0;21973:13;;21911:16;21933:93;21911:16;21933:93;21973:13;21941:4;22006:5;21933:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22047:4:0::1;::::0;;-1:-1:-1;;;;;22047:4:0;;::::1;22039:13;::::0;;;:7:::1;:13;::::0;;;;;;;:27;;;22096:4;;;::::1;22077:24:::0;;:18:::1;:24:::0;;;;;:29;;-1:-1:-1;;22077:29:0::1;22047:4:::0;22077:29:::1;::::0;;22132:4;;;::::1;22117:20:::0;;:14:::1;:20:::0;;;;;;22140:15:::1;22117:38:::0;;22182:4;;22171:31;;22182:4;::::1;6222:51:1::0;;6289:18;;;6282:34;;;21910:116:0;;-1:-1:-1;22171:31:0::1;::::0;6195:18:1;22171:31:0::1;;;;;;;-1:-1:-1::0;22268:5:0::1;::::0;-1:-1:-1;22268:5:0;22320:19;;22316:364:::1;;22356:6;::::0;22530:21:::1;::::0;22356:244:::1;::::0;-1:-1:-1;;;22356:244:0;;22432:4:::1;22356:244;::::0;::::1;10619:34:1::0;10669:18;;;10662:34;;;22356:6:0::1;10712:18:1::0;;;10705:34;;;10755:18;;;10748:34;-1:-1:-1;;;;;22530:21:0;;::::1;10798:19:1::0;;;10791:44;22570:15:0::1;10851:19:1::0;;;10844:35;22356:6:0;::::1;::::0;:22:::1;::::0;22386:18;;10553:19:1;;22356:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;22620:48:0::1;::::0;;11375:25:1;;;11431:2;11416:18;;11409:34;;;22620:48:0::1;::::0;-1:-1:-1;11348:18:1;22620:48:0::1;;;;;;;22316:364;-1:-1:-1::0;;8698:16:0;:24;;-1:-1:-1;;;;8698:24:0;;;-1:-1:-1;;;;;;;;;20641:2046:0:o;14782:2051::-;14949:11;;14932:14;;14914:32;;:15;:32;:::i;:::-;:46;14910:87;;;14977:8;:6;:8::i;:::-;5388:7;5415:6;-1:-1:-1;;;;;15025:17:0;;;5415:6;;15025:17;;;;:54;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;15059:20:0;;;5415:6;;15059:20;;15025:54;:98;;;;-1:-1:-1;;;;;;15097:26:0;;;;;;:15;:26;;;;;;;;15096:27;15025:98;:132;;;;-1:-1:-1;15153:4:0;;-1:-1:-1;;;;;15140:17:0;;;15153:4;;15140:17;;15025:132;:166;;;;-1:-1:-1;15187:4:0;;-1:-1:-1;;;;;15174:17:0;;;15187:4;;15174:17;;15025:166;:200;;;;-1:-1:-1;15221:4:0;;-1:-1:-1;;;;;15208:17:0;;;15221:4;;15208:17;;15025:200;:243;;;;-1:-1:-1;;;;;;15242:26:0;;15263:4;15242:26;;15025:243;15007:1412;;;15313:12;;15303:6;:22;;15295:41;;;;-1:-1:-1;;;15295:41:0;;11656:2:1;15295:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;15295:41:0;11454:329:1;15295:41:0;-1:-1:-1;;;;;10596:18:0;;15351:32;10596:18;;;:9;:18;;;;;;15484:16;;15447:33;15474:6;10596:18;15447:33;:::i;:::-;:53;;15421:150;;;;-1:-1:-1;;;15421:150:0;;11990:2:1;15421:150:0;;;11972:21:1;12029:2;12009:18;;;12002:30;12068:34;12048:18;;;12041:62;-1:-1:-1;;;12119:18:1;;;12112:33;12162:19;;15421:150:0;11788:399:1;15421:150:0;15612:16;;;15626:1;15612:16;;;;;;;;15588:21;;15612:16;;;;;;;;-1:-1:-1;;15653:6:0;;:13;;;-1:-1:-1;;;15653:13:0;;;;15588:40;;-1:-1:-1;;;;;;15653:6:0;;;;:11;;-1:-1:-1;15653:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15643:4;15648:1;15643:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15643:23:0;;;-1:-1:-1;;;;;15643:23:0;;;;;15699:4;15681;15686:1;15681:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15681:23:0;;;:7;;;;;;;;;:23;15737:6;;:33;;-1:-1:-1;;;15737:33:0;;15719:15;;15737:6;;;;;:19;;:33;;15757:6;;15765:4;;15737:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15737:33:0;;;;;;;;;;;;:::i;:::-;15771:1;15737:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15794:29:0;;;;;;:18;:29;;;;;;;;15737:36;;-1:-1:-1;15794:29:0;;:35;;:29;:35;:92;;;;-1:-1:-1;;;;;;15833:25:0;;;;;;:14;:25;;;;;;15871:15;;15833:35;;15861:7;15833:35;:::i;:::-;:53;15794:92;:116;;;;;15900:10;;15890:7;:20;15794:116;15790:618;;;15945:4;:16;;-1:-1:-1;;;;;;15945:16:0;-1:-1:-1;;;;;15945:16:0;;;;;;;;15980:10;:20;;;16036:15;16019:14;:32;16075:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16075:25:0;;6195:18:1;16075:25:0;;;;;;;15790:618;;;-1:-1:-1;;;;;16141:29:0;;;;;;:18;:29;;;;;;;;:36;;;:61;;;16192:10;;16182:7;:20;16141:61;16137:271;;;16237:4;:16;;-1:-1:-1;;;;;;16237:16:0;-1:-1:-1;;;;;16237:16:0;;;;;;;;16272:10;:20;;;16328:15;16311:14;:32;16367:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16367:25:0;;6195:18:1;16367:25:0;;;;;;;16137:271;15280:1139;;;15007:1412;5388:7;5415:6;-1:-1:-1;;;;;16447:17:0;;;5415:6;;16447:17;;;;:54;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;16481:20:0;;;5415:6;;16481:20;;16447:54;:95;;;;-1:-1:-1;;;;;;16519:23:0;;;;;;:15;:23;;;;;;;;16518:24;16447:95;:126;;;;-1:-1:-1;16569:4:0;;-1:-1:-1;;;;;16559:14:0;;;16569:4;;16559:14;;16447:126;:169;;;;-1:-1:-1;;;;;;16590:26:0;;16611:4;16590:26;;16447:169;16429:397;;;16661:12;;16651:6;:22;;16643:41;;;;-1:-1:-1;;;16643:41:0;;11656:2:1;16643:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;16643:41:0;11454:329:1;16643:41:0;16703:4;;-1:-1:-1;;;;;16703:14:0;;;:4;;:14;16699:113;;;16752:4;;16758:10;;16743:26;;;-1:-1:-1;;;;;16752:4:0;;;6222:51:1;;6304:2;6289:18;;6282:34;;;;16743:26:0;;6195:18:1;16743:26:0;;;;;;;16788:8;:6;:8::i;20291:342::-;-1:-1:-1;;;;;20428:19:0;;20402:4;20428:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;20451:22:0;;;;;;:11;:22;;;;;;;;20428:45;20424:90;;;-1:-1:-1;20497:5:0;20490:12;;20424:90;20538:4;;-1:-1:-1;;;;;20528:14:0;;;20538:4;;20528:14;;:35;;-1:-1:-1;20559:4:0;;-1:-1:-1;;;;;20546:17:0;;;20559:4;;20546:17;20528:35;20524:80;;;-1:-1:-1;20587:5:0;20580:12;;20524:80;-1:-1:-1;20621:4:0;20291:342;;;;:::o;19798:485::-;19962:4;;19918:7;;;;-1:-1:-1;;;;;19962:17:0;;;:4;;:17;:74;;20028:8;;19962:74;;;19995:17;;19962:74;19938:98;-1:-1:-1;20047:17:0;20067:34;20097:3;20067:25;:6;19938:98;20067:10;:25::i;:34::-;20157:4;20139:24;;;;:9;:24;;;;;;20047:54;;-1:-1:-1;20139:39:0;;20047:54;20139:28;:39::i;:::-;20130:4;20112:24;;;;:9;:24;;;;;;;:66;;;;20194:42;;-1:-1:-1;;;;;20194:42:0;;;;;;;20226:9;160:25:1;;148:2;133:18;;14:177;20194:42:0;;;;;;;;20254:21;:6;20265:9;20254:10;:21::i;:::-;20247:28;19798:485;-1:-1:-1;;;;;;19798:485:0:o;657:246::-;715:7;739:6;735:47;;-1:-1:-1;769:1:0;762:8;;735:47;792:9;804:5;808:1;804;:5;:::i;:::-;792:17;-1:-1:-1;837:1:0;828:5;832:1;792:17;828:5;:::i;:::-;:10;820:56;;;;-1:-1:-1;;;820:56:0;;14014:2:1;820:56:0;;;13996:21:1;14053:2;14033:18;;;14026:30;14092:34;14072:18;;;14065:62;-1:-1:-1;;;14143:18:1;;;14136:31;14184:19;;820:56:0;13812:397:1;911:132:0;969:7;996:39;1000:1;1003;996:39;;;;;;;;;;;;;;;;;:3;:39::i;12905:136::-;12950:15;;12943:4;:22;;-1:-1:-1;;;;;;12943:22:0;-1:-1:-1;;;;;12950:15:0;;;12943:22;;;;;;12950:15;12976:10;:14;13018:15;13001:14;:32;12905:136::o;1051:223::-;1171:7;1206:12;1199:5;1191:28;;;;-1:-1:-1;;;1191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1230:9:0;1242:5;1246:1;1242;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2348:118::-;2434:5;2427:13;2420:21;2413:5;2410:32;2400:60;;2456:1;2453;2446:12;2471:382;2536:6;2544;2597:2;2585:9;2576:7;2572:23;2568:32;2565:52;;;2613:1;2610;2603:12;2565:52;2652:9;2639:23;2671:31;2696:5;2671:31;:::i;:::-;2721:5;-1:-1:-1;2778:2:1;2763:18;;2750:32;2791:30;2750:32;2791:30;:::i;:::-;2840:7;2830:17;;;2471:382;;;;;:::o;2858:180::-;2917:6;2970:2;2958:9;2949:7;2945:23;2941:32;2938:52;;;2986:1;2983;2976:12;2938:52;-1:-1:-1;3009:23:1;;2858:180;-1:-1:-1;2858:180:1:o;3251:388::-;3319:6;3327;3380:2;3368:9;3359:7;3355:23;3351:32;3348:52;;;3396:1;3393;3386:12;3348:52;3435:9;3422:23;3454:31;3479:5;3454:31;:::i;:::-;3504:5;-1:-1:-1;3561:2:1;3546:18;;3533:32;3574:33;3533:32;3574:33;:::i;3644:316::-;3721:6;3729;3737;3790:2;3778:9;3769:7;3765:23;3761:32;3758:52;;;3806:1;3803;3796:12;3758:52;-1:-1:-1;;3829:23:1;;;3899:2;3884:18;;3871:32;;-1:-1:-1;3950:2:1;3935:18;;;3922:32;;3644:316;-1:-1:-1;3644:316:1:o;3965:309::-;4030:6;4038;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4146:9;4133:23;4165:28;4187:5;4165:28;:::i;4505:356::-;4707:2;4689:21;;;4726:18;;;4719:30;4785:34;4780:2;4765:18;;4758:62;4852:2;4837:18;;4505:356::o;4866:127::-;4927:10;4922:3;4918:20;4915:1;4908:31;4958:4;4955:1;4948:15;4982:4;4979:1;4972:15;4998:128;5038:3;5069:1;5065:6;5062:1;5059:13;5056:39;;;5075:18;;:::i;:::-;-1:-1:-1;5111:9:1;;4998:128::o;5131:217::-;5171:1;5197;5187:132;;5241:10;5236:3;5232:20;5229:1;5222:31;5276:4;5273:1;5266:15;5304:4;5301:1;5294:15;5187:132;-1:-1:-1;5333:9:1;;5131:217::o;5708:335::-;5910:2;5892:21;;;5949:2;5929:18;;;5922:30;-1:-1:-1;;;5983:2:1;5968:18;;5961:41;6034:2;6019:18;;5708:335::o;6327:245::-;6394:6;6447:2;6435:9;6426:7;6422:23;6418:32;6415:52;;;6463:1;6460;6453:12;6415:52;6495:9;6489:16;6514:28;6536:5;6514:28;:::i;7685:125::-;7725:4;7753:1;7750;7747:8;7744:34;;;7758:18;;:::i;:::-;-1:-1:-1;7795:9:1;;7685:125::o;8495:127::-;8556:10;8551:3;8547:20;8544:1;8537:31;8587:4;8584:1;8577:15;8611:4;8608:1;8601:15;8627:127;8688:10;8683:3;8679:20;8676:1;8669:31;8719:4;8716:1;8709:15;8743:4;8740:1;8733:15;8759:251;8829:6;8882:2;8870:9;8861:7;8857:23;8853:32;8850:52;;;8898:1;8895;8888:12;8850:52;8930:9;8924:16;8949:31;8974:5;8949:31;:::i;9015:461::-;9068:3;9106:5;9100:12;9133:6;9128:3;9121:19;9159:4;9188:2;9183:3;9179:12;9172:19;;9225:2;9218:5;9214:14;9246:1;9256:195;9270:6;9267:1;9264:13;9256:195;;;9335:13;;-1:-1:-1;;;;;9331:39:1;9319:52;;9391:12;;;;9426:15;;;;9367:1;9285:9;9256:195;;;-1:-1:-1;9467:3:1;;9015:461;-1:-1:-1;;;;;9015:461:1:o;9481:582::-;9780:6;9769:9;9762:25;9823:6;9818:2;9807:9;9803:18;9796:34;9866:3;9861:2;9850:9;9846:18;9839:31;9743:4;9887:57;9939:3;9928:9;9924:19;9916:6;9887:57;:::i;:::-;-1:-1:-1;;;;;9980:32:1;;;;9975:2;9960:18;;9953:60;-1:-1:-1;10044:3:1;10029:19;10022:35;9879:65;9481:582;-1:-1:-1;;;9481:582:1:o;10890:306::-;10978:6;10986;10994;11047:2;11035:9;11026:7;11022:23;11018:32;11015:52;;;11063:1;11060;11053:12;11015:52;11092:9;11086:16;11076:26;;11142:2;11131:9;11127:18;11121:25;11111:35;;11186:2;11175:9;11171:18;11165:25;11155:35;;10890:306;;;;;:::o;12192:332::-;12399:6;12388:9;12381:25;12442:2;12437;12426:9;12422:18;12415:30;12362:4;12462:56;12514:2;12503:9;12499:18;12491:6;12462:56;:::i;:::-;12454:64;12192:332;-1:-1:-1;;;;12192:332:1:o;12529:1105::-;12624:6;12655:2;12698;12686:9;12677:7;12673:23;12669:32;12666:52;;;12714:1;12711;12704:12;12666:52;12747:9;12741:16;12776:18;12817:2;12809:6;12806:14;12803:34;;;12833:1;12830;12823:12;12803:34;12871:6;12860:9;12856:22;12846:32;;12916:7;12909:4;12905:2;12901:13;12897:27;12887:55;;12938:1;12935;12928:12;12887:55;12967:2;12961:9;12989:2;12985;12982:10;12979:36;;;12995:18;;:::i;:::-;13041:2;13038:1;13034:10;13073:2;13067:9;13136:2;13132:7;13127:2;13123;13119:11;13115:25;13107:6;13103:38;13191:6;13179:10;13176:22;13171:2;13159:10;13156:18;13153:46;13150:72;;;13202:18;;:::i;:::-;13238:2;13231:22;13288:18;;;13322:15;;;;-1:-1:-1;13364:11:1;;;13360:20;;;13392:19;;;13389:39;;;13424:1;13421;13414:12;13389:39;13448:11;;;;13468:135;13484:6;13479:3;13476:15;13468:135;;;13550:10;;13538:23;;13501:12;;;;13581;;;;13468:135;;;13622:6;12529:1105;-1:-1:-1;;;;;;;;12529:1105:1:o;13639:168::-;13679:7;13745:1;13741;13737:6;13733:14;13730:1;13727:21;13722:1;13715:9;13708:17;13704:45;13701:71;;;13752:18;;:::i;:::-;-1:-1:-1;13792:9:1;;13639:168::o
Swarm Source
ipfs://61a16a35e91cd4e0de78d4669cd085940d3cdbfcc53aa9958165c219756533ee
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.