ERC-20
Overview
Max Total Supply
1,000,000,000 $GHIDO
Holders
29
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.192129961 $GHIDOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
$GHIDO
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-25 */ // SPDX-License-Identifier: NOLICENSE pragma solidity ^0.8.10; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } 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); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract $GHIDO is Context, IERC20, Ownable { mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; bool public swapEnabled = true; bool private swapping; IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1e9 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 10_000_000 * 10**_decimals; uint256 public maxSellAmount = 1_000_000_000 * 10**_decimals; uint256 public maxBuyAmount = 1_000_000_000 * 10**_decimals; uint256 public maxWalletBalance = 1_000_000_000 * 10**_decimals; address public marketingAddress = 0x782e6E30C4ec67918072b663e9EE6B6e49Be0F35; address public devAddress = 0x4ED9A7480DFD994dAEcAC2313855A25C9D133Df0; address public rescue; string private constant _name = "Kevin Ghidorah"; string private constant _symbol = "$GHIDO"; struct Taxes { uint256 rfi; uint256 dev; uint256 marketing; uint256 liquidity; } Taxes public taxes = Taxes(0,0,0,0); Taxes public sellTaxes = Taxes(0,0,0,0); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 dev; uint256 liquidity; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rDev; uint256 rLiquidity; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tDev; uint256 tLiquidity; } event FeesChanged(); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor () { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); _rOwned[owner()] = _rTotal; rescue = payable(_msgSender()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingAddress]=true; _isExcludedFromFee[devAddress] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi, bool isSell) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, false, isSell); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, isSell); return s.rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount/currentRate; } function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner { taxes.rfi = _rfi; taxes.marketing = _marketing; taxes.dev = _dev; taxes.liquidity = _liquidity; emit FeesChanged(); } function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner { sellTaxes.rfi = _rfi; sellTaxes.marketing = _marketing; sellTaxes.dev = _dev; sellTaxes.liquidity = _liquidity; emit FeesChanged(); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing +=tMarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tMarketing; } _rOwned[address(this)] +=rMarketing; } function _takeDev(uint256 rDev, uint256 tDev) private { totFeesPaid.dev += tDev; if(_isExcluded[address(this)]) { _tOwned[address(this)]+= tDev; } _rOwned[address(this)] += rDev; } function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rDev, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if(isSell) temp = sellTaxes; else temp = taxes; s.tRfi = tAmount*temp.rfi/100; s.tMarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tDev = tAmount*temp.dev/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tDev-s.tLiquidity; return s; } function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rDev, uint256 rLiquidity) { rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0,0); } rRfi = s.tRfi*currentRate; rMarketing = s.tMarketing*currentRate; rDev = s.tDev*currentRate; rLiquidity = s.tLiquidity*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rDev-rLiquidity; return (rAmount, rTransferAmount, rRfi,rMarketing,rDev,rLiquidity); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_excluded[i]]; tSupply = tSupply-_tOwned[_excluded[i]]; } if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){ if(from == pair){ require(amount <= maxBuyAmount, "You are exceeding maxBuyAmount"); } if(to == pair){ require(amount <= maxSellAmount, "You are exceeding maxSellAmount"); } if(to != pair){ require(balanceOf(to) + amount <= maxWalletBalance, "You are exceeding maxWalletBalance"); } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ swapAndLiquify(swapTokensAtAmount); } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]), to == pair); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); } if(s.rMarketing > 0 || s.tMarketing > 0){ _takeMarketing(s.rMarketing, s.tMarketing); } if(s.rDev > 0 || s.tDev > 0){ _takeDev(s.rDev, s.tDev); } emit Transfer(sender, recipient, s.tTransferAmount); emit Transfer(sender, address(this), s.tLiquidity + s.tDev + s.tMarketing); } function swapAndLiquify(uint256 tokens) private lockTheSwap{ // Split the contract balance into halves uint256 denominator = (sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.dev) * 2; uint256 tokensToAddLiquidityWith = tokens * sellTaxes.liquidity / denominator; uint256 toSwap = tokens - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingAddress).transfer(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devAddress).transfer(devAmt); } } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0), block.timestamp ); } function swapTokensForBNB(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingAddress = newWallet; } function updateDevWallet(address newDevWallet) external onlyOwner{ devAddress = newDevWallet; } function updateMaxWalletBalance(uint256 amount) external onlyOwner{ maxWalletBalance = amount * 10**_decimals; } function updatMaxBuyAmt(uint256 amount) external onlyOwner{ maxBuyAmount = amount * 10**_decimals; } function updatMaxSellAmt(uint256 amount) external onlyOwner{ maxSellAmount = amount * 10**_decimals; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } //Use this in case BNB are sent to the contract by mistake $GHIDO function rescueBNB(uint256 weiAmount) external onlyOwner{ require(msg.sender == rescue, "not $GHIDO"); require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake) // Owner cannot transfer out $GHIDO from this smart contract $GHIDO function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public { require(msg.sender == rescue, "not $GHIDO"); require(_tokenAddr != address(this), "Cannot transfer out $GHIDO!"); IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable{ } }
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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"},{"internalType":"bool","name":"isSell","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxBuyAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxSellAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526007805460ff191660011790556200001f6009600a62000974565b6200002f90633b9aca0062000985565b60098190556200004290600019620009bd565b6200005090600019620009d4565b600a556009600a62000063919062000974565b62000072906298968062000985565b600b55620000836009600a62000974565b6200009390633b9aca0062000985565b600c55620000a46009600a62000974565b620000b490633b9aca0062000985565b600d55620000c56009600a62000974565b620000d590633b9aca0062000985565b600e55600f80546001600160a01b031990811673782e6e30c4ec67918072b663e9ee6b6e49be0f351790915560108054909116734ed9a7480dfd994daecac2313855a25c9d133df017905560408051608080820183526000808352602080840182905283850182905260609384018290526012829055601382905560148290556015829055845192830185528183528201819052928101839052018190526016819055601781905560188190556019553480156200019257600080fd5b506200019e3362000435565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e9190620009ee565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002929190620009ee565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003069190620009ee565b600780546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600880549183166001600160a01b031990921682179055909150620003549062000485565b600a54600160006200036e6000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455601180546001600160a01b0319163317905583548116845260048352818420805460ff1990811660019081179092553086528386208054821683179055600f548316865283862080548216831790556010548316865283862080549091169091179055835460095492519283521692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000a64565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005505760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620004dc565b6001600160a01b03811660009081526001602052604090205415620005ad576001600160a01b038116600090815260016020526040902054620005939062000613565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600a548211156200067c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620004dc565b6000620006886200069d565b905062000696818462000a19565b9392505050565b60008080620006ab620006c3565b9092509050620006bc818362000a19565b9250505090565b600a546009546000918291825b6006548110156200082b57826001600060068481548110620006f657620006f662000a30565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200076557508160026000600684815481106200073e576200073e62000a30565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200077c57600a54600954945094505050509091565b600160006006838154811062000796576200079662000a30565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007c79084620009d4565b92506002600060068381548110620007e357620007e362000a30565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008149083620009d4565b915080620008228162000a46565b915050620006d0565b50600954600a546200083e919062000a19565b8210156200085657600a546009549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008b65781600019048211156200089a576200089a6200085f565b80851615620008a857918102915b93841c93908002906200087a565b509250929050565b600082620008cf575060016200096e565b81620008de575060006200096e565b8160018114620008f75760028114620009025762000922565b60019150506200096e565b60ff8411156200091657620009166200085f565b50506001821b6200096e565b5060208310610133831016604e8410600b841016171562000947575081810a6200096e565b62000953838362000875565b80600019048211156200096a576200096a6200085f565b0290505b92915050565b60006200069660ff841683620008be565b6000816000190483118215151615620009a257620009a26200085f565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620009cf57620009cf620009a7565b500690565b600082821015620009e957620009e96200085f565b500390565b60006020828403121562000a0157600080fd5b81516001600160a01b03811681146200069657600080fd5b60008262000a2b5762000a2b620009a7565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000a5d5762000a5d6200085f565b5060010190565b612c768062000a746000396000f3fe60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f4560514610862578063ea2f0b3714610878578063f2fde38b14610898578063f480fec2146108b8578063f66895a3146108d8578063f887ea40146108fb57600080fd5b8063a9059cbb14610786578063aacebbe3146107a6578063bbde77c1146107c6578063c4fd856b146107dc578063d257b34f146107fc578063dd62ed3e1461081c57600080fd5b806395d89b411161011357806395d89b41146106b45780639ba5e4d5146106e3578063a12a7d6114610706578063a457c2d714610726578063a5ece94114610746578063a8aa1b311461076657600080fd5b8063715018a6146105cf578063728f8eea146105e457806388e765ff1461062757806388f820201461063d5780638da5cb5b14610676578063924de9b71461069457600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050657806352390c02146105265780635342acb41461054657806366d602ae1461057f5780636ddd17131461059557806370a08231146105af57600080fd5b806339509351146104465780633ad10ef6146104665780633f63d40f1461048657806340b28c2f146104a6578063437823ec146104c6578063441b1d30146104e657600080fd5b80631fbe1979116102505780631fbe19791461037257806323b872dd146103aa57806327563c8c146103ca5780632d838119146103ea578063313ce5671461040a5780633685d4191461042657600080fd5b806306fdde0314610298578063095ea7b3146102e157806318160ddd146103115780631816467f14610330578063188b1bf11461035257600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600e81526d096caecd2dc408ed0d2c8dee4c2d60931b60208201525b6040516102d8919061278d565b60405180910390f35b3480156102ed57600080fd5b506103016102fc3660046127f7565b610921565b60405190151581526020016102d8565b34801561031d57600080fd5b506009545b6040519081526020016102d8565b34801561033c57600080fd5b5061035061034b366004612823565b610938565b005b34801561035e57600080fd5b5061035061036d366004612840565b61098d565b34801561037e57600080fd5b50601154610392906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b3480156103b657600080fd5b506103016103c5366004612859565b6109d3565b3480156103d657600080fd5b506103506103e5366004612840565b610a86565b3480156103f657600080fd5b50610322610405366004612840565b610acc565b34801561041657600080fd5b50604051600981526020016102d8565b34801561043257600080fd5b50610350610441366004612823565b610b49565b34801561045257600080fd5b506103016104613660046127f7565b610d00565b34801561047257600080fd5b50601054610392906001600160a01b031681565b34801561049257600080fd5b506103226104a13660046128a8565b610d37565b3480156104b257600080fd5b506103506104c13660046128ea565b610dc3565b3480156104d257600080fd5b506103506104e1366004612823565b610e27565b3480156104f257600080fd5b50610350610501366004612840565b610e75565b34801561051257600080fd5b50610350610521366004612859565b610f63565b34801561053257600080fd5b50610350610541366004612823565b61107c565b34801561055257600080fd5b50610301610561366004612823565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058b57600080fd5b50610322600c5481565b3480156105a157600080fd5b506007546103019060ff1681565b3480156105bb57600080fd5b506103226105ca366004612823565b6111cf565b3480156105db57600080fd5b5061035061122e565b3480156105f057600080fd5b506012546013546014546015546106079392919084565b6040805194855260208501939093529183015260608201526080016102d8565b34801561063357600080fd5b50610322600d5481565b34801561064957600080fd5b50610301610658366004612823565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068257600080fd5b506000546001600160a01b0316610392565b3480156106a057600080fd5b506103506106af366004612923565b611264565b3480156106c057600080fd5b5060408051808201909152600681526524474849444f60d01b60208201526102cb565b3480156106ef57600080fd5b50601a54601b54601c54601d546106079392919084565b34801561071257600080fd5b50610350610721366004612940565b6112a1565b34801561073257600080fd5b506103016107413660046127f7565b61130e565b34801561075257600080fd5b50600f54610392906001600160a01b031681565b34801561077257600080fd5b50600854610392906001600160a01b031681565b34801561079257600080fd5b506103016107a13660046127f7565b6113a9565b3480156107b257600080fd5b506103506107c1366004612823565b6113b6565b3480156107d257600080fd5b50610322600e5481565b3480156107e857600080fd5b506103506107f7366004612840565b611402565b34801561080857600080fd5b50610350610817366004612840565b611448565b34801561082857600080fd5b506103226108373660046128ea565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561086e57600080fd5b50610322600b5481565b34801561088457600080fd5b50610350610893366004612823565b61148e565b3480156108a457600080fd5b506103506108b3366004612823565b6114d9565b3480156108c457600080fd5b506103506108d3366004612940565b611574565b3480156108e457600080fd5b506016546017546018546019546106079392919084565b34801561090757600080fd5b50600754610392906201000090046001600160a01b031681565b600061092e3384846115e1565b5060015b92915050565b6000546001600160a01b0316331461096b5760405162461bcd60e51b815260040161096290612972565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109b75760405162461bcd60e51b815260040161096290612972565b6109c36009600a612aa1565b6109cd9082612ab0565b600e5550565b60006109e0848484611705565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a655760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610962565b610a798533610a748685612acf565b6115e1565b60019150505b9392505050565b6000546001600160a01b03163314610ab05760405162461bcd60e51b815260040161096290612972565b610abc6009600a612aa1565b610ac69082612ab0565b600d5550565b6000600a54821115610b335760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610962565b6000610b3d611b5b565b9050610a7f8184612ae6565b6000546001600160a01b03163314610b735760405162461bcd60e51b815260040161096290612972565b6001600160a01b03811660009081526005602052604090205460ff16610bdb5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610962565b60005b600654811015610cfc57816001600160a01b031660068281548110610c0557610c05612b08565b6000918252602090912001546001600160a01b03161415610cea5760068054610c3090600190612acf565b81548110610c4057610c40612b08565b600091825260209091200154600680546001600160a01b039092169183908110610c6c57610c6c612b08565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610cc457610cc4612b1e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cf481612b34565b915050610bde565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161092e918590610a74908690612b4f565b6000600954841115610d8b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610962565b82610da8576000610d9e85600085611b7e565b519150610a7f9050565b6000610db685600185611b7e565b602001519150610a7f9050565b6000546001600160a01b03163314610ded5760405162461bcd60e51b815260040161096290612972565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e515760405162461bcd60e51b815260040161096290612972565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e9f5760405162461bcd60e51b815260040161096290612972565b6011546001600160a01b03163314610ee65760405162461bcd60e51b815260206004820152600a6024820152696e6f742024474849444f60b01b6044820152606401610962565b80471015610f365760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610962565b604051339082156108fc029083906000818181858888f19350505050158015610cfc573d6000803e3d6000fd5b6011546001600160a01b03163314610faa5760405162461bcd60e51b815260206004820152600a6024820152696e6f742024474849444f60b01b6044820152606401610962565b6001600160a01b0383163014156110035760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207472616e73666572206f75742024474849444f2100000000006044820152606401610962565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110769190612b67565b50505050565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260040161096290612972565b6001600160a01b03811660009081526005602052604090205460ff161561110f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610962565b6001600160a01b03811660009081526001602052604090205415611169576001600160a01b03811660009081526001602052604090205461114f90610acc565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561120c57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461093290610acc565b6000546001600160a01b031633146112585760405162461bcd60e51b815260040161096290612972565b6112626000611bc8565b565b6000546001600160a01b0316331461128e5760405162461bcd60e51b815260040161096290612972565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112cb5760405162461bcd60e51b815260040161096290612972565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610962565b61139f3385610a748685612acf565b5060019392505050565b600061092e338484611705565b6000546001600160a01b031633146113e05760405162461bcd60e51b815260040161096290612972565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461142c5760405162461bcd60e51b815260040161096290612972565b6114386009600a612aa1565b6114429082612ab0565b600c5550565b6000546001600160a01b031633146114725760405162461bcd60e51b815260040161096290612972565b61147e6009600a612aa1565b6114889082612ab0565b600b5550565b6000546001600160a01b031633146114b85760405162461bcd60e51b815260040161096290612972565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115035760405162461bcd60e51b815260040161096290612972565b6001600160a01b0381166115685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610962565b61157181611bc8565b50565b6000546001600160a01b0316331461159e5760405162461bcd60e51b815260040161096290612972565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166116435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610962565b6001600160a01b0382166116a45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610962565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610962565b6001600160a01b0382166117cb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610962565b6000811161182d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610962565b611836836111cf565b81111561189f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610962565b6001600160a01b03831660009081526004602052604090205460ff161580156118e157506001600160a01b03821660009081526004602052604090205460ff16155b80156118f55750600754610100900460ff16155b15611a4f576008546001600160a01b038481169116141561196257600d548111156119625760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610962565b6008546001600160a01b03838116911614156119ca57600c548111156119ca5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610962565b6008546001600160a01b03838116911614611a4f57600e54816119ec846111cf565b6119f69190612b4f565b1115611a4f5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610962565b6000600b54611a5d306111cf565b6007549111159150610100900460ff16158015611a7c575060075460ff165b8015611a855750805b8015611a9f57506008546001600160a01b03858116911614155b8015611ac457506001600160a01b03841660009081526004602052604090205460ff16155b8015611ae957506001600160a01b03831660009081526004602052604090205460ff16155b15611af957611af9600b54611c18565b6001600160a01b0384166000908152600460205260409020546110769085908590859060ff1680611b4257506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611daf565b6000806000611b6861207b565b9092509050611b778183612ae6565b9250505090565b611b86612733565b611b918484846121fe565b9050611ba6818585611ba1611b5b565b612371565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c3d91612b4f565b611c479190612b4f565b611c52906002612ab0565b905060008160166003015484611c689190612ab0565b611c729190612ae6565b90506000611c808285612acf565b905047611c8c82612423565b6000611c988247612acf565b601954909150600090611cab9087612acf565b611cb59083612ae6565b601954909150600090611cc89083612ab0565b90508015611cda57611cda86826125a2565b601854600090611ceb846002612ab0565b611cf59190612ab0565b90508015611d3957600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d37573d6000803e3d6000fd5b505b601754600090611d4a856002612ab0565b611d549190612ab0565b90508015611d98576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d96573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611dbc848484611b7e565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e1e576001600160a01b038616600090815260026020526040902054611e04908590612acf565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e815760c08101516001600160a01b038616600090815260026020526040902054611e679190612b4f565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611ea69190612acf565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611edd9190612b4f565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f0f575060008160e00151115b15611f2657611f2681604001518260e0015161265e565b60008160a001511180611f3e57506000816101400151115b15611f5657611f568160a00151826101400151612693565b600081606001511180611f6e57506000816101000151115b15611f8657611f868160600151826101000151612709565b600081608001511180611f9e57506000816101200151115b15611fb657611fb6816080015182610120015161271e565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051611fff91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120589190612b4f565b6120629190612b4f565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121cd578260016000600684815481106120aa576120aa612b08565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061211557508160026000600684815481106120ee576120ee612b08565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561212b57600a54600954945094505050509091565b600160006006838154811061214257612142612b08565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121719084612acf565b9250600260006006838154811061218a5761218a612b08565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121b99083612acf565b9150806121c581612b34565b915050612088565b50600954600a546121de9190612ae6565b8210156121f557600a546009549350935050509091565b90939092509050565b612206612733565b826122175760c08101849052610a7f565b6122426040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612277575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a2565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122b19087612ab0565b6122bb9190612ae6565b60e083015260408101516064906122d29087612ab0565b6122dc9190612ae6565b61010083015260608101516064906122f49087612ab0565b6122fe9190612ae6565b61014083015260208101516064906123169087612ab0565b6123209190612ae6565b610120830181905261014083015161010084015160e08501519192916123469089612acf565b6123509190612acf565b61235a9190612acf565b6123649190612acf565b60c0830152509392505050565b60008080808080612382878a612ab0565b95508761239d57508493506000925082915081905080612416565b868a60e001516123ad9190612ab0565b9350868a61010001516123c09190612ab0565b9250868a61012001516123d39190612ab0565b9150868a61014001516123e69190612ab0565b90508082846123f5878a612acf565b6123ff9190612acf565b6124099190612acf565b6124139190612acf565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061245857612458612b08565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ef9190612b84565b8160018151811061250257612502612b08565b6001600160a01b03928316602091820292909201015260075461252e91309162010000900416846115e1565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061256c908590600090869030904290600401612ba1565b600060405180830381600087803b15801561258657600080fd5b505af115801561259a573d6000803e3d6000fd5b505050505050565b6007546125c09030906201000090046001600160a01b0316846115e1565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612632573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126579190612c12565b5050505050565b81600a60008282546126709190612acf565b9091555050601a805482919060009061268a908490612b4f565b90915550505050565b80601a60030160008282546126a89190612b4f565b90915550503060009081526005602052604090205460ff16156126ea5730600090815260026020526040812080548392906126e4908490612b4f565b90915550505b306000908152600160205260408120805484929061268a908490612b4f565b80601a60010160008282546126a89190612b4f565b80601a60020160008282546126a89190612b4f565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127ba5785810183015185820160400152820161279e565b818111156127cc576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157157600080fd5b6000806040838503121561280a57600080fd5b8235612815816127e2565b946020939093013593505050565b60006020828403121561283557600080fd5b8135610a7f816127e2565b60006020828403121561285257600080fd5b5035919050565b60008060006060848603121561286e57600080fd5b8335612879816127e2565b92506020840135612889816127e2565b929592945050506040919091013590565b801515811461157157600080fd5b6000806000606084860312156128bd57600080fd5b8335925060208401356128cf8161289a565b915060408401356128df8161289a565b809150509250925092565b600080604083850312156128fd57600080fd5b8235612908816127e2565b91506020830135612918816127e2565b809150509250929050565b60006020828403121561293557600080fd5b8135610a7f8161289a565b6000806000806080858703121561295657600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156129f85781600019048211156129de576129de6129a7565b808516156129eb57918102915b93841c93908002906129c2565b509250929050565b600082612a0f57506001610932565b81612a1c57506000610932565b8160018114612a325760028114612a3c57612a58565b6001915050610932565b60ff841115612a4d57612a4d6129a7565b50506001821b610932565b5060208310610133831016604e8410600b8410161715612a7b575081810a610932565b612a8583836129bd565b8060001904821115612a9957612a996129a7565b029392505050565b6000610a7f60ff841683612a00565b6000816000190483118215151615612aca57612aca6129a7565b500290565b600082821015612ae157612ae16129a7565b500390565b600082612b0357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b4857612b486129a7565b5060010190565b60008219821115612b6257612b626129a7565b500190565b600060208284031215612b7957600080fd5b8151610a7f8161289a565b600060208284031215612b9657600080fd5b8151610a7f816127e2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bf15784516001600160a01b031683529383019391830191600101612bcc565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c2757600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202d717703c8d63239345fe23e1e039f273ba685b4f48951eaf91fc06c50c55e1664736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063715018a61161015a578063a9059cbb116100c1578063e2f456051161007a578063e2f4560514610862578063ea2f0b3714610878578063f2fde38b14610898578063f480fec2146108b8578063f66895a3146108d8578063f887ea40146108fb57600080fd5b8063a9059cbb14610786578063aacebbe3146107a6578063bbde77c1146107c6578063c4fd856b146107dc578063d257b34f146107fc578063dd62ed3e1461081c57600080fd5b806395d89b411161011357806395d89b41146106b45780639ba5e4d5146106e3578063a12a7d6114610706578063a457c2d714610726578063a5ece94114610746578063a8aa1b311461076657600080fd5b8063715018a6146105cf578063728f8eea146105e457806388e765ff1461062757806388f820201461063d5780638da5cb5b14610676578063924de9b71461069457600080fd5b806339509351116101fe57806347c23092116101b757806347c230921461050657806352390c02146105265780635342acb41461054657806366d602ae1461057f5780636ddd17131461059557806370a08231146105af57600080fd5b806339509351146104465780633ad10ef6146104665780633f63d40f1461048657806340b28c2f146104a6578063437823ec146104c6578063441b1d30146104e657600080fd5b80631fbe1979116102505780631fbe19791461037257806323b872dd146103aa57806327563c8c146103ca5780632d838119146103ea578063313ce5671461040a5780633685d4191461042657600080fd5b806306fdde0314610298578063095ea7b3146102e157806318160ddd146103115780631816467f14610330578063188b1bf11461035257600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600e81526d096caecd2dc408ed0d2c8dee4c2d60931b60208201525b6040516102d8919061278d565b60405180910390f35b3480156102ed57600080fd5b506103016102fc3660046127f7565b610921565b60405190151581526020016102d8565b34801561031d57600080fd5b506009545b6040519081526020016102d8565b34801561033c57600080fd5b5061035061034b366004612823565b610938565b005b34801561035e57600080fd5b5061035061036d366004612840565b61098d565b34801561037e57600080fd5b50601154610392906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b3480156103b657600080fd5b506103016103c5366004612859565b6109d3565b3480156103d657600080fd5b506103506103e5366004612840565b610a86565b3480156103f657600080fd5b50610322610405366004612840565b610acc565b34801561041657600080fd5b50604051600981526020016102d8565b34801561043257600080fd5b50610350610441366004612823565b610b49565b34801561045257600080fd5b506103016104613660046127f7565b610d00565b34801561047257600080fd5b50601054610392906001600160a01b031681565b34801561049257600080fd5b506103226104a13660046128a8565b610d37565b3480156104b257600080fd5b506103506104c13660046128ea565b610dc3565b3480156104d257600080fd5b506103506104e1366004612823565b610e27565b3480156104f257600080fd5b50610350610501366004612840565b610e75565b34801561051257600080fd5b50610350610521366004612859565b610f63565b34801561053257600080fd5b50610350610541366004612823565b61107c565b34801561055257600080fd5b50610301610561366004612823565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561058b57600080fd5b50610322600c5481565b3480156105a157600080fd5b506007546103019060ff1681565b3480156105bb57600080fd5b506103226105ca366004612823565b6111cf565b3480156105db57600080fd5b5061035061122e565b3480156105f057600080fd5b506012546013546014546015546106079392919084565b6040805194855260208501939093529183015260608201526080016102d8565b34801561063357600080fd5b50610322600d5481565b34801561064957600080fd5b50610301610658366004612823565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561068257600080fd5b506000546001600160a01b0316610392565b3480156106a057600080fd5b506103506106af366004612923565b611264565b3480156106c057600080fd5b5060408051808201909152600681526524474849444f60d01b60208201526102cb565b3480156106ef57600080fd5b50601a54601b54601c54601d546106079392919084565b34801561071257600080fd5b50610350610721366004612940565b6112a1565b34801561073257600080fd5b506103016107413660046127f7565b61130e565b34801561075257600080fd5b50600f54610392906001600160a01b031681565b34801561077257600080fd5b50600854610392906001600160a01b031681565b34801561079257600080fd5b506103016107a13660046127f7565b6113a9565b3480156107b257600080fd5b506103506107c1366004612823565b6113b6565b3480156107d257600080fd5b50610322600e5481565b3480156107e857600080fd5b506103506107f7366004612840565b611402565b34801561080857600080fd5b50610350610817366004612840565b611448565b34801561082857600080fd5b506103226108373660046128ea565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561086e57600080fd5b50610322600b5481565b34801561088457600080fd5b50610350610893366004612823565b61148e565b3480156108a457600080fd5b506103506108b3366004612823565b6114d9565b3480156108c457600080fd5b506103506108d3366004612940565b611574565b3480156108e457600080fd5b506016546017546018546019546106079392919084565b34801561090757600080fd5b50600754610392906201000090046001600160a01b031681565b600061092e3384846115e1565b5060015b92915050565b6000546001600160a01b0316331461096b5760405162461bcd60e51b815260040161096290612972565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109b75760405162461bcd60e51b815260040161096290612972565b6109c36009600a612aa1565b6109cd9082612ab0565b600e5550565b60006109e0848484611705565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610a655760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610962565b610a798533610a748685612acf565b6115e1565b60019150505b9392505050565b6000546001600160a01b03163314610ab05760405162461bcd60e51b815260040161096290612972565b610abc6009600a612aa1565b610ac69082612ab0565b600d5550565b6000600a54821115610b335760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610962565b6000610b3d611b5b565b9050610a7f8184612ae6565b6000546001600160a01b03163314610b735760405162461bcd60e51b815260040161096290612972565b6001600160a01b03811660009081526005602052604090205460ff16610bdb5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610962565b60005b600654811015610cfc57816001600160a01b031660068281548110610c0557610c05612b08565b6000918252602090912001546001600160a01b03161415610cea5760068054610c3090600190612acf565b81548110610c4057610c40612b08565b600091825260209091200154600680546001600160a01b039092169183908110610c6c57610c6c612b08565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610cc457610cc4612b1e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cf481612b34565b915050610bde565b5050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161092e918590610a74908690612b4f565b6000600954841115610d8b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610962565b82610da8576000610d9e85600085611b7e565b519150610a7f9050565b6000610db685600185611b7e565b602001519150610a7f9050565b6000546001600160a01b03163314610ded5760405162461bcd60e51b815260040161096290612972565b6007805462010000600160b01b031916620100006001600160a01b0394851602179055600880546001600160a01b03191691909216179055565b6000546001600160a01b03163314610e515760405162461bcd60e51b815260040161096290612972565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610e9f5760405162461bcd60e51b815260040161096290612972565b6011546001600160a01b03163314610ee65760405162461bcd60e51b815260206004820152600a6024820152696e6f742024474849444f60b01b6044820152606401610962565b80471015610f365760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610962565b604051339082156108fc029083906000818181858888f19350505050158015610cfc573d6000803e3d6000fd5b6011546001600160a01b03163314610faa5760405162461bcd60e51b815260206004820152600a6024820152696e6f742024474849444f60b01b6044820152606401610962565b6001600160a01b0383163014156110035760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207472616e73666572206f75742024474849444f2100000000006044820152606401610962565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110769190612b67565b50505050565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260040161096290612972565b6001600160a01b03811660009081526005602052604090205460ff161561110f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610962565b6001600160a01b03811660009081526001602052604090205415611169576001600160a01b03811660009081526001602052604090205461114f90610acc565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561120c57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461093290610acc565b6000546001600160a01b031633146112585760405162461bcd60e51b815260040161096290612972565b6112626000611bc8565b565b6000546001600160a01b0316331461128e5760405162461bcd60e51b815260040161096290612972565b6007805460ff1916911515919091179055565b6000546001600160a01b031633146112cb5760405162461bcd60e51b815260040161096290612972565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610962565b61139f3385610a748685612acf565b5060019392505050565b600061092e338484611705565b6000546001600160a01b031633146113e05760405162461bcd60e51b815260040161096290612972565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461142c5760405162461bcd60e51b815260040161096290612972565b6114386009600a612aa1565b6114429082612ab0565b600c5550565b6000546001600160a01b031633146114725760405162461bcd60e51b815260040161096290612972565b61147e6009600a612aa1565b6114889082612ab0565b600b5550565b6000546001600160a01b031633146114b85760405162461bcd60e51b815260040161096290612972565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146115035760405162461bcd60e51b815260040161096290612972565b6001600160a01b0381166115685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610962565b61157181611bc8565b50565b6000546001600160a01b0316331461159e5760405162461bcd60e51b815260040161096290612972565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166116435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610962565b6001600160a01b0382166116a45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610962565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610962565b6001600160a01b0382166117cb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610962565b6000811161182d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610962565b611836836111cf565b81111561189f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610962565b6001600160a01b03831660009081526004602052604090205460ff161580156118e157506001600160a01b03821660009081526004602052604090205460ff16155b80156118f55750600754610100900460ff16155b15611a4f576008546001600160a01b038481169116141561196257600d548111156119625760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610962565b6008546001600160a01b03838116911614156119ca57600c548111156119ca5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610962565b6008546001600160a01b03838116911614611a4f57600e54816119ec846111cf565b6119f69190612b4f565b1115611a4f5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610962565b6000600b54611a5d306111cf565b6007549111159150610100900460ff16158015611a7c575060075460ff165b8015611a855750805b8015611a9f57506008546001600160a01b03858116911614155b8015611ac457506001600160a01b03841660009081526004602052604090205460ff16155b8015611ae957506001600160a01b03831660009081526004602052604090205460ff16155b15611af957611af9600b54611c18565b6001600160a01b0384166000908152600460205260409020546110769085908590859060ff1680611b4257506001600160a01b03871660009081526004602052604090205460ff165b6008549015906001600160a01b03898116911614611daf565b6000806000611b6861207b565b9092509050611b778183612ae6565b9250505090565b611b86612733565b611b918484846121fe565b9050611ba6818585611ba1611b5b565b612371565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6007805461ff00191661010017905560175460185460195460009291611c3d91612b4f565b611c479190612b4f565b611c52906002612ab0565b905060008160166003015484611c689190612ab0565b611c729190612ae6565b90506000611c808285612acf565b905047611c8c82612423565b6000611c988247612acf565b601954909150600090611cab9087612acf565b611cb59083612ae6565b601954909150600090611cc89083612ab0565b90508015611cda57611cda86826125a2565b601854600090611ceb846002612ab0565b611cf59190612ab0565b90508015611d3957600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d37573d6000803e3d6000fd5b505b601754600090611d4a856002612ab0565b611d549190612ab0565b90508015611d98576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d96573d6000803e3d6000fd5b505b50506007805461ff00191690555050505050505050565b6000611dbc848484611b7e565b6001600160a01b03871660009081526005602052604090205490915060ff1615611e1e576001600160a01b038616600090815260026020526040902054611e04908590612acf565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff1615611e815760c08101516001600160a01b038616600090815260026020526040902054611e679190612b4f565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b038716600090815260016020526040902054611ea69190612acf565b6001600160a01b0380881660009081526001602090815260408083209490945584015191881681529190912054611edd9190612b4f565b6001600160a01b0386166000908152600160205260409081902091909155810151151580611f0f575060008160e00151115b15611f2657611f2681604001518260e0015161265e565b60008160a001511180611f3e57506000816101400151115b15611f5657611f568160a00151826101400151612693565b600081606001511180611f6e57506000816101000151115b15611f8657611f868160600151826101000151612709565b600081608001511180611f9e57506000816101200151115b15611fb657611fb6816080015182610120015161271e565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051611fff91815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516120589190612b4f565b6120629190612b4f565b60405190815260200160405180910390a3505050505050565b600a546009546000918291825b6006548110156121cd578260016000600684815481106120aa576120aa612b08565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061211557508160026000600684815481106120ee576120ee612b08565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561212b57600a54600954945094505050509091565b600160006006838154811061214257612142612b08565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121719084612acf565b9250600260006006838154811061218a5761218a612b08565b60009182526020808320909101546001600160a01b031683528201929092526040019020546121b99083612acf565b9150806121c581612b34565b915050612088565b50600954600a546121de9190612ae6565b8210156121f557600a546009549350935050509091565b90939092509050565b612206612733565b826122175760c08101849052610a7f565b6122426040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612277575060408051608081018252601654815260175460208201526018549181019190915260195460608201526122a2565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906122b19087612ab0565b6122bb9190612ae6565b60e083015260408101516064906122d29087612ab0565b6122dc9190612ae6565b61010083015260608101516064906122f49087612ab0565b6122fe9190612ae6565b61014083015260208101516064906123169087612ab0565b6123209190612ae6565b610120830181905261014083015161010084015160e08501519192916123469089612acf565b6123509190612acf565b61235a9190612acf565b6123649190612acf565b60c0830152509392505050565b60008080808080612382878a612ab0565b95508761239d57508493506000925082915081905080612416565b868a60e001516123ad9190612ab0565b9350868a61010001516123c09190612ab0565b9250868a61012001516123d39190612ab0565b9150868a61014001516123e69190612ab0565b90508082846123f5878a612acf565b6123ff9190612acf565b6124099190612acf565b6124139190612acf565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061245857612458612b08565b60200260200101906001600160a01b031690816001600160a01b031681525050600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ef9190612b84565b8160018151811061250257612502612b08565b6001600160a01b03928316602091820292909201015260075461252e91309162010000900416846115e1565b60075460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061256c908590600090869030904290600401612ba1565b600060405180830381600087803b15801561258657600080fd5b505af115801561259a573d6000803e3d6000fd5b505050505050565b6007546125c09030906201000090046001600160a01b0316846115e1565b60075460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612632573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126579190612c12565b5050505050565b81600a60008282546126709190612acf565b9091555050601a805482919060009061268a908490612b4f565b90915550505050565b80601a60030160008282546126a89190612b4f565b90915550503060009081526005602052604090205460ff16156126ea5730600090815260026020526040812080548392906126e4908490612b4f565b90915550505b306000908152600160205260408120805484929061268a908490612b4f565b80601a60010160008282546126a89190612b4f565b80601a60020160008282546126a89190612b4f565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156127ba5785810183015185820160400152820161279e565b818111156127cc576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461157157600080fd5b6000806040838503121561280a57600080fd5b8235612815816127e2565b946020939093013593505050565b60006020828403121561283557600080fd5b8135610a7f816127e2565b60006020828403121561285257600080fd5b5035919050565b60008060006060848603121561286e57600080fd5b8335612879816127e2565b92506020840135612889816127e2565b929592945050506040919091013590565b801515811461157157600080fd5b6000806000606084860312156128bd57600080fd5b8335925060208401356128cf8161289a565b915060408401356128df8161289a565b809150509250925092565b600080604083850312156128fd57600080fd5b8235612908816127e2565b91506020830135612918816127e2565b809150509250929050565b60006020828403121561293557600080fd5b8135610a7f8161289a565b6000806000806080858703121561295657600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156129f85781600019048211156129de576129de6129a7565b808516156129eb57918102915b93841c93908002906129c2565b509250929050565b600082612a0f57506001610932565b81612a1c57506000610932565b8160018114612a325760028114612a3c57612a58565b6001915050610932565b60ff841115612a4d57612a4d6129a7565b50506001821b610932565b5060208310610133831016604e8410600b8410161715612a7b575081810a610932565b612a8583836129bd565b8060001904821115612a9957612a996129a7565b029392505050565b6000610a7f60ff841683612a00565b6000816000190483118215151615612aca57612aca6129a7565b500290565b600082821015612ae157612ae16129a7565b500390565b600082612b0357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612b4857612b486129a7565b5060010190565b60008219821115612b6257612b626129a7565b500190565b600060208284031215612b7957600080fd5b8151610a7f8161289a565b600060208284031215612b9657600080fd5b8151610a7f816127e2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bf15784516001600160a01b031683529383019391830191600101612bcc565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612c2757600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202d717703c8d63239345fe23e1e039f273ba685b4f48951eaf91fc06c50c55e1664736f6c634300080a0033
Deployed Bytecode Sourcemap
2852:18050:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5647:83;;;;;;;;;;-1:-1:-1;5717:5:0;;;;;;;;;;;;-1:-1:-1;;;5717:5:0;;;;5647:83;;;;;;;:::i;:::-;;;;;;;;6555:161;;;;;;;;;;-1:-1:-1;6555:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6555:161:0;1072:187:1;5920:95:0;;;;;;;;;;-1:-1:-1;6000:7:0;;5920:95;;;1410:25:1;;;1398:2;1383:18;5920:95:0;1264:177:1;19134:109:0;;;;;;;;;;-1:-1:-1;19134:109:0;;;;;:::i;:::-;;:::i;:::-;;19255:126;;;;;;;;;;-1:-1:-1;19255:126:0;;;;;:::i;:::-;;:::i;4013:21::-;;;;;;;;;;-1:-1:-1;4013:21:0;;;;-1:-1:-1;;;;;4013:21:0;;;;;;-1:-1:-1;;;;;2047:32:1;;;2029:51;;2017:2;2002:18;4013:21:0;1883:203:1;6724:422:0;;;;;;;;;;-1:-1:-1;6724:422:0;;;;;:::i;:::-;;:::i;19389:114::-;;;;;;;;;;-1:-1:-1;19389:114:0;;;;;:::i;:::-;;:::i;8384:248::-;;;;;;;;;;-1:-1:-1;8384:248:0;;;;;:::i;:::-;;:::i;5829:83::-;;;;;;;;;;-1:-1:-1;5829:83:0;;3396:1;2694:36:1;;2682:2;2667:18;5829:83:0;2552:184:1;8981:475:0;;;;;;;;;;-1:-1:-1;8981:475:0;;;;;:::i;:::-;;:::i;7154:215::-;;;;;;;;;;-1:-1:-1;7154:215:0;;;;;:::i;:::-;;:::i;3934:70::-;;;;;;;;;;-1:-1:-1;3934:70:0;;;;-1:-1:-1;;;;;3934:70:0;;;7890:486;;;;;;;;;;-1:-1:-1;7890:486:0;;;;;:::i;:::-;;:::i;19902:154::-;;;;;;;;;;-1:-1:-1;19902:154:0;;;;;:::i;:::-;;:::i;9466:111::-;;;;;;;;;;-1:-1:-1;9466:111:0;;;;;:::i;:::-;;:::i;20147:250::-;;;;;;;;;;-1:-1:-1;20147:250:0;;;;;:::i;:::-;;:::i;20580:277::-;;;;;;;;;;-1:-1:-1;20580:277:0;;;;;:::i;:::-;;:::i;8640:333::-;;;;;;;;;;-1:-1:-1;8640:333:0;;;;;:::i;:::-;;:::i;9705:123::-;;;;;;;;;;-1:-1:-1;9705:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9793:27:0;9769:4;9793:27;;;:18;:27;;;;;;;;;9705:123;3646:60;;;;;;;;;;;;;;;;3238:30;;;;;;;;;;-1:-1:-1;3238:30:0;;;;;;;;6023:198;;;;;;;;;;-1:-1:-1;6023:198:0;;;;;:::i;:::-;;:::i;1629:94::-;;;;;;;;;;;;;:::i;4272:35::-;;;;;;;;;;-1:-1:-1;4272:35:0;;;;;;;;;;;;;;;;;;;3937:25:1;;;3993:2;3978:18;;3971:34;;;;4021:18;;;4014:34;4079:2;4064:18;;4057:34;3924:3;3909:19;4272:35:0;3706:391:1;3713:59:0;;;;;;;;;;;;;;;;7762:120;;;;;;;;;;-1:-1:-1;7762:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7854:20:0;7830:4;7854:20;;;:11;:20;;;;;;;;;7762:120;1406:87;;;;;;;;;;-1:-1:-1;1452:7:0;1479:6;-1:-1:-1;;;;;1479:6:0;1406:87;;19781:101;;;;;;;;;;-1:-1:-1;19781:101:0;;;;;:::i;:::-;;:::i;5736:87::-;;;;;;;;;;-1:-1:-1;5808:7:0;;;;;;;;;;;;-1:-1:-1;;;5808:7:0;;;;5736:87;;4500:36;;;;;;;;;;-1:-1:-1;4500:36:0;;;;;;;;;;;;;;;9836:272;;;;;;;;;;-1:-1:-1;9836:272:0;;;;;:::i;:::-;;:::i;7377:377::-;;;;;;;;;;-1:-1:-1;7377:377:0;;;;;:::i;:::-;;:::i;3851:76::-;;;;;;;;;;-1:-1:-1;3851:76:0;;;;-1:-1:-1;;;;;3851:76:0;;;3333:19;;;;;;;;;;-1:-1:-1;3333:19:0;;;;-1:-1:-1;;;;;3333:19:0;;;6229:167;;;;;;;;;;-1:-1:-1;6229:167:0;;;;;:::i;:::-;;:::i;19007:115::-;;;;;;;;;;-1:-1:-1;19007:115:0;;;;;:::i;:::-;;:::i;3779:63::-;;;;;;;;;;;;;;;;19515:116;;;;;;;;;;-1:-1:-1;19515:116:0;;;;;:::i;:::-;;:::i;19643:130::-;;;;;;;;;;-1:-1:-1;19643:130:0;;;;;:::i;:::-;;:::i;6404:143::-;;;;;;;;;;-1:-1:-1;6404:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6512:18:0;;;6485:7;6512:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6404:143;3571:62;;;;;;;;;;;;;;;;9585:110;;;;;;;;;;-1:-1:-1;9585:110:0;;;;;:::i;:::-;;:::i;1731:192::-;;;;;;;;;;-1:-1:-1;1731:192:0;;;;;:::i;:::-;;:::i;10120:292::-;;;;;;;;;;-1:-1:-1;10120:292:0;;;;;:::i;:::-;;:::i;4314:39::-;;;;;;;;;;-1:-1:-1;4314:39:0;;;;;;;;;;;;;;;3305:21;;;;;;;;;;-1:-1:-1;3305:21:0;;;;;;;-1:-1:-1;;;;;3305:21:0;;;6555:161;6630:4;6647:39;907:10;6670:7;6679:6;6647:8;:39::i;:::-;-1:-1:-1;6704:4:0;6555:161;;;;;:::o;19134:109::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;;;;;;;;;19210:10:::1;:25:::0;;-1:-1:-1;;;;;;19210:25:0::1;-1:-1:-1::0;;;;;19210:25:0;;;::::1;::::0;;;::::1;::::0;;19134:109::o;19255:126::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19360:13:::1;3396:1;19360:2;:13;:::i;:::-;19351:22;::::0;:6;:22:::1;:::i;:::-;19332:16;:41:::0;-1:-1:-1;19255:126:0:o;6724:422::-;6830:4;6847:36;6857:6;6865:9;6876:6;6847:9;:36::i;:::-;-1:-1:-1;;;;;6923:19:0;;6896:24;6923:19;;;:11;:19;;;;;;;;907:10;6923:33;;;;;;;;6975:26;;;;6967:79;;;;-1:-1:-1;;;6967:79:0;;7212:2:1;6967:79:0;;;7194:21:1;7251:2;7231:18;;;7224:30;7290:34;7270:18;;;7263:62;-1:-1:-1;;;7341:18:1;;;7334:38;7389:19;;6967:79:0;7010:404:1;6967:79:0;7057:57;7066:6;907:10;7088:25;7107:6;7088:16;:25;:::i;:::-;7057:8;:57::i;:::-;7134:4;7127:11;;;6724:422;;;;;;:::o;19389:114::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19482:13:::1;3396:1;19482:2;:13;:::i;:::-;19473:22;::::0;:6;:22:::1;:::i;:::-;19458:12;:37:::0;-1:-1:-1;19389:114:0:o;8384:248::-;8450:7;8489;;8478;:18;;8470:73;;;;-1:-1:-1;;;8470:73:0;;7751:2:1;8470:73:0;;;7733:21:1;7790:2;7770:18;;;7763:30;7829:34;7809:18;;;7802:62;-1:-1:-1;;;7880:18:1;;;7873:40;7930:19;;8470:73:0;7549:406:1;8470:73:0;8554:19;8577:10;:8;:10::i;:::-;8554:33;-1:-1:-1;8605:19:0;8554:33;8605:7;:19;:::i;8981:475::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9063:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9055:56;;;::::0;-1:-1:-1;;;9055:56:0;;8384:2:1;9055:56:0::1;::::0;::::1;8366:21:1::0;8423:2;8403:18;;;8396:30;8462:25;8442:18;;;8435:53;8505:18;;9055:56:0::1;8182:347:1::0;9055:56:0::1;9127:9;9122:327;9146:9;:16:::0;9142:20;::::1;9122:327;;;9204:7;-1:-1:-1::0;;;;;9188:23:0::1;:9;9198:1;9188:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9188:12:0::1;:23;9184:254;;;9247:9;9257:16:::0;;:20:::1;::::0;9276:1:::1;::::0;9257:20:::1;:::i;:::-;9247:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9232:9:::1;:12:::0;;-1:-1:-1;;;;;9247:31:0;;::::1;::::0;9242:1;;9232:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9232:46:0::1;-1:-1:-1::0;;;;;9232:46:0;;::::1;;::::0;;9297:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9336:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9336:28:0::1;::::0;;9383:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9383:15:0;;;;;-1:-1:-1;;;;;;9383:15:0::1;::::0;;;;;9122:327:::1;8981:475:::0;:::o;9184:254::-:1;9164:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9122:327;;;;8981:475:::0;:::o;7154:215::-;907:10;7242:4;7291:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7291:34:0;;;;;;;;;;7242:4;;7259:80;;7282:7;;7291:47;;7328:10;;7291:47;:::i;7890:486::-;7993:7;8032;;8021;:18;;8013:62;;;;-1:-1:-1;;;8013:62:0;;9273:2:1;8013:62:0;;;9255:21:1;9312:2;9292:18;;;9285:30;9351:33;9331:18;;;9324:61;9402:18;;8013:62:0;9071:355:1;8013:62:0;8091:17;8086:283;;8125:28;8156:34;8167:7;8176:5;8183:6;8156:10;:34::i;:::-;8212:9;;-1:-1:-1;8205:16:0;;-1:-1:-1;8205:16:0;8086:283;8254:28;8285:33;8296:7;8305:4;8311:6;8285:10;:33::i;:::-;8340:17;;;;-1:-1:-1;8333:24:0;;-1:-1:-1;8333:24:0;19902:154;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19996:6:::1;:27:::0;;-1:-1:-1;;;;;;19996:27:0::1;::::0;-1:-1:-1;;;;;19996:27:0;;::::1;;;::::0;;20034:4:::1;:14:::0;;-1:-1:-1;;;;;;20034:14:0::1;::::0;;;::::1;;::::0;;19902:154::o;9466:111::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9535:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9535:34:0::1;9565:4;9535:34;::::0;;9466:111::o;20147:250::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;20236:6:::1;::::0;-1:-1:-1;;;;;20236:6:0::1;20222:10;:20;20214:43;;;::::0;-1:-1:-1;;;20214:43:0;;9633:2:1;20214:43:0::1;::::0;::::1;9615:21:1::0;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:40;9741:18;;20214:43:0::1;9431:334:1::0;20214:43:0::1;20301:9;20276:21;:34;;20268:71;;;::::0;-1:-1:-1;;;20268:71:0;;9972:2:1;20268:71:0::1;::::0;::::1;9954:21:1::0;10011:2;9991:18;;;9984:30;10050:26;10030:18;;;10023:54;10094:18;;20268:71:0::1;9770:348:1::0;20268:71:0::1;20350:39;::::0;20358:10:::1;::::0;20350:39;::::1;;;::::0;20379:9;;20350:39:::1;::::0;;;20379:9;20358:10;20350:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;20580:277:::0;20698:6;;-1:-1:-1;;;;;20698:6:0;20684:10;:20;20676:43;;;;-1:-1:-1;;;20676:43:0;;9633:2:1;20676:43:0;;;9615:21:1;9672:2;9652:18;;;9645:30;-1:-1:-1;;;9691:18:1;;;9684:40;9741:18;;20676:43:0;9431:334:1;20676:43:0;-1:-1:-1;;;;;20738:27:0;;20760:4;20738:27;;20730:67;;;;-1:-1:-1;;;20730:67:0;;10325:2:1;20730:67:0;;;10307:21:1;10364:2;10344:18;;;10337:30;10403:29;10383:18;;;10376:57;10450:18;;20730:67:0;10123:351:1;20730:67:0;20808:41;;-1:-1:-1;;;20808:41:0;;-1:-1:-1;;;;;10671:32:1;;;20808:41:0;;;10653:51:1;10720:18;;;10713:34;;;20808:27:0;;;;;10626:18:1;;20808:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20580:277;;;:::o;8640:333::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8723:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8722:21;8714:61;;;::::0;-1:-1:-1;;;8714:61:0;;11210:2:1;8714:61:0::1;::::0;::::1;11192:21:1::0;11249:2;11229:18;;;11222:30;11288:29;11268:18;;;11261:57;11335:18;;8714:61:0::1;11008:351:1::0;8714:61:0::1;-1:-1:-1::0;;;;;8789:16:0;::::1;8808:1;8789:16:::0;;;:7:::1;:16;::::0;;;;;:20;8786:108:::1;;-1:-1:-1::0;;;;;8865:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8845:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8826:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8786:108:::1;-1:-1:-1::0;;;;;8904:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8904:27:0::1;8927:4;8904:27:::0;;::::1;::::0;;;8942:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8942:23:0::1;::::0;;::::1;::::0;;8640:333::o;6023:198::-;-1:-1:-1;;;;;6113:20:0;;6089:7;6113:20;;;:11;:20;;;;;;;;6109:49;;;-1:-1:-1;;;;;;6142:16:0;;;;;:7;:16;;;;;;;6023:198::o;6109:49::-;-1:-1:-1;;;;;6196:16:0;;;;;;:7;:16;;;;;;6176:37;;:19;:37::i;1629:94::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;1694:21:::1;1712:1;1694:9;:21::i;:::-;1629:94::o:0;19781:101::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19852:11:::1;:22:::0;;-1:-1:-1;;19852:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19781:101::o;9836:272::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;9950:5:::1;:16:::0;;;9977:15;:28;;;10016:9;:16;;;10043:15;:28;;;10087:13:::1;::::0;::::1;::::0;9950:9:::1;::::0;10087:13:::1;9836:272:::0;;;;:::o;7377:377::-;907:10;7470:4;7514:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7514:34:0;;;;;;;;;;7567:35;;;;7559:85;;;;-1:-1:-1;;;7559:85:0;;11566:2:1;7559:85:0;;;11548:21:1;11605:2;11585:18;;;11578:30;11644:34;11624:18;;;11617:62;-1:-1:-1;;;11695:18:1;;;11688:35;11740:19;;7559:85:0;11364:401:1;7559:85:0;7655:67;907:10;7678:7;7687:34;7706:15;7687:16;:34;:::i;7655:67::-;-1:-1:-1;7742:4:0;;7377:377;-1:-1:-1;;;7377:377:0:o;6229:167::-;6307:4;6324:42;907:10;6348:9;6359:6;6324:9;:42::i;19007:115::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19086:16:::1;:28:::0;;-1:-1:-1;;;;;;19086:28:0::1;-1:-1:-1::0;;;;;19086:28:0;;;::::1;::::0;;;::::1;::::0;;19007:115::o;19515:116::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19610:13:::1;3396:1;19610:2;:13;:::i;:::-;19601:22;::::0;:6;:22:::1;:::i;:::-;19585:13;:38:::0;-1:-1:-1;19515:116:0:o;19643:130::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;19752:13:::1;3396:1;19752:2;:13;:::i;:::-;19743:22;::::0;:6;:22:::1;:::i;:::-;19722:18;:43:::0;-1:-1:-1;19643:130:0:o;9585:110::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9652:27:0::1;9682:5;9652:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9652:35:0::1;::::0;;9585:110::o;1731:192::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1820:22:0;::::1;1812:73;;;::::0;-1:-1:-1;;;1812:73:0;;11972:2:1;1812:73:0::1;::::0;::::1;11954:21:1::0;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;-1:-1:-1;;;12101:18:1;;;12094:36;12147:19;;1812:73:0::1;11770:402:1::0;1812:73:0::1;1896:19;1906:8;1896:9;:19::i;:::-;1731:192:::0;:::o;10120:292::-;1452:7;1479:6;-1:-1:-1;;;;;1479:6:0;907:10;1541:23;1533:68;;;;-1:-1:-1;;;1533:68:0;;;;;;;:::i;:::-;10238:9:::1;:20:::0;;;10269:19;:32;;;10312:13;:20;;;10343:19;:32;;;10391:13:::1;::::0;::::1;::::0;10238::::1;::::0;10391::::1;10120:292:::0;;;;:::o;13826:335::-;-1:-1:-1;;;;;13919:19:0;;13911:68;;;;-1:-1:-1;;;13911:68:0;;12379:2:1;13911:68:0;;;12361:21:1;12418:2;12398:18;;;12391:30;12457:34;12437:18;;;12430:62;-1:-1:-1;;;12508:18:1;;;12501:34;12552:19;;13911:68:0;12177:400:1;13911:68:0;-1:-1:-1;;;;;13998:21:0;;13990:68;;;;-1:-1:-1;;;13990:68:0;;12784:2:1;13990:68:0;;;12766:21:1;12823:2;12803:18;;;12796:30;12862:34;12842:18;;;12835:62;-1:-1:-1;;;12913:18:1;;;12906:32;12955:19;;13990:68:0;12582:398:1;13990:68:0;-1:-1:-1;;;;;14069:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14121:32;;1410:25:1;;;14121:32:0;;1383:18:1;14121:32:0;;;;;;;13826:335;;;:::o;14169:1310::-;-1:-1:-1;;;;;14257:18:0;;14249:68;;;;-1:-1:-1;;;14249:68:0;;13187:2:1;14249:68:0;;;13169:21:1;13226:2;13206:18;;;13199:30;13265:34;13245:18;;;13238:62;-1:-1:-1;;;13316:18:1;;;13309:35;13361:19;;14249:68:0;12985:401:1;14249:68:0;-1:-1:-1;;;;;14336:16:0;;14328:64;;;;-1:-1:-1;;;14328:64:0;;13593:2:1;14328:64:0;;;13575:21:1;13632:2;13612:18;;;13605:30;13671:34;13651:18;;;13644:62;-1:-1:-1;;;13722:18:1;;;13715:33;13765:19;;14328:64:0;13391:399:1;14328:64:0;14420:1;14411:6;:10;14403:64;;;;-1:-1:-1;;;14403:64:0;;13997:2:1;14403:64:0;;;13979:21:1;14036:2;14016:18;;;14009:30;14075:34;14055:18;;;14048:62;-1:-1:-1;;;14126:18:1;;;14119:39;14175:19;;14403:64:0;13795:405:1;14403:64:0;14496:15;14506:4;14496:9;:15::i;:::-;14486:6;:25;;14478:86;;;;-1:-1:-1;;;14478:86:0;;14407:2:1;14478:86:0;;;14389:21:1;14446:2;14426:18;;;14419:30;14485:34;14465:18;;;14458:62;-1:-1:-1;;;14536:18:1;;;14529:47;14593:19;;14478:86:0;14205:413:1;14478:86:0;-1:-1:-1;;;;;14607:24:0;;;;;;:18;:24;;;;;;;;14606:25;:52;;;;-1:-1:-1;;;;;;14636:22:0;;;;;;:18;:22;;;;;;;;14635:23;14606:52;:65;;;;-1:-1:-1;14663:8:0;;;;;;;14662:9;14606:65;14603:493;;;14698:4;;-1:-1:-1;;;;;14690:12:0;;;14698:4;;14690:12;14687:116;;;14740:12;;14730:6;:22;;14722:65;;;;-1:-1:-1;;;14722:65:0;;14825:2:1;14722:65:0;;;14807:21:1;14864:2;14844:18;;;14837:30;14903:32;14883:18;;;14876:60;14953:18;;14722:65:0;14623:354:1;14722:65:0;14826:4;;-1:-1:-1;;;;;14820:10:0;;;14826:4;;14820:10;14817:116;;;14868:13;;14858:6;:23;;14850:67;;;;-1:-1:-1;;;14850:67:0;;15184:2:1;14850:67:0;;;15166:21:1;15223:2;15203:18;;;15196:30;15262:33;15242:18;;;15235:61;15313:18;;14850:67:0;14982:355:1;14850:67:0;14956:4;;-1:-1:-1;;;;;14950:10:0;;;14956:4;;14950:10;14947:138;;15014:16;;15004:6;14988:13;14998:2;14988:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;14980:89;;;;-1:-1:-1;;;14980:89:0;;15544:2:1;14980:89:0;;;15526:21:1;15583:2;15563:18;;;15556:30;15622:34;15602:18;;;15595:62;-1:-1:-1;;;15673:18:1;;;15666:32;15715:19;;14980:89:0;15342:398:1;14980:89:0;15116:12;15159:18;;15131:24;15149:4;15131:9;:24::i;:::-;15192:8;;-1:-1:-1;;15131:46:0;;-1:-1:-1;15192:8:0;;;;;15191:9;:24;;;;-1:-1:-1;15204:11:0;;;;15191:24;:35;;;;;15219:7;15191:35;:51;;;;-1:-1:-1;15238:4:0;;-1:-1:-1;;;;;15230:12:0;;;15238:4;;15230:12;;15191:51;:80;;;;-1:-1:-1;;;;;;15247:24:0;;;;;;:18;:24;;;;;;;;15246:25;15191:80;:107;;;;-1:-1:-1;;;;;;15276:22:0;;;;;;:18;:22;;;;;;;;15275:23;15191:107;15188:172;;;15314:34;15329:18;;15314:14;:34::i;:::-;-1:-1:-1;;;;;15407:24:0;;;;;;:18;:24;;;;;;15372:99;;15387:4;;15393:2;;15397:6;;15407:24;;;:50;;-1:-1:-1;;;;;;15435:22:0;;;;;;:18;:22;;;;;;;;15407:50;15466:4;;15405:53;;;-1:-1:-1;;;;;15460:10:0;;;15466:4;;15460:10;15372:14;:99::i;13112:158::-;13153:7;13174:15;13191;13210:19;:17;:19::i;:::-;13173:56;;-1:-1:-1;13173:56:0;-1:-1:-1;13247:15:0;13173:56;;13247:15;:::i;:::-;13240:22;;;;13112:158;:::o;11392:407::-;11478:36;;:::i;:::-;11539:37;11551:7;11560;11569:6;11539:11;:37::i;:::-;11527:49;;11712:52;11724:9;11735:7;11744;11753:10;:8;:10::i;:::-;11712:11;:52::i;:::-;11688:20;;;11587:177;11672:14;;;11587:177;11650:20;;;11587:177;11634:14;;;11587:177;11607:25;;;11587:177;;;11392:407;;;;;:::o;1931:173::-;1987:16;2006:6;;-1:-1:-1;;;;;2023:17:0;;;-1:-1:-1;;;;;;2023:17:0;;;;;;2056:40;;2006:6;;;;;;;2056:40;;1987:16;2056:40;1976:128;1931:173;:::o;16729:1194::-;4927:8;:15;;-1:-1:-1;;4927:15:0;;;;;16916:13;;16894:19;;16872;;4927:15;;16916:13;16872:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;16871:63;::::0;16933:1:::1;16871:63;:::i;:::-;16849:85;;16945:32;17011:11;16989:9;:19;;;16980:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;16945:77:::0;-1:-1:-1;17033:14:0::1;17050:33;16945:77:::0;17050:6;:33:::1;:::i;:::-;17033:50:::0;-1:-1:-1;17121:21:0::1;17155:24;17033:50:::0;17155:16:::1;:24::i;:::-;17192:20;17215:38;17239:14:::0;17215:21:::1;:38;:::i;:::-;17315:19:::0;;17192:61;;-1:-1:-1;17264:19:0::1;::::0;17301:33:::1;::::0;:11;:33:::1;:::i;:::-;17285:50;::::0;:12;:50:::1;:::i;:::-;17392:19:::0;;17264:71;;-1:-1:-1;17346:29:0::1;::::0;17378:33:::1;::::0;17264:71;17378:33:::1;:::i;:::-;17346:65:::0;-1:-1:-1;17427:25:0;;17424:158:::1;;17509:61;17522:24;17548:21;17509:12;:61::i;:::-;17635:19:::0;;17594:20:::1;::::0;17617:15:::1;:11:::0;17635:19:::1;17617:15;:::i;:::-;:37;;;;:::i;:::-;17594:60:::0;-1:-1:-1;17668:16:0;;17665:95:::1;;17708:16;::::0;17700:48:::1;::::0;-1:-1:-1;;;;;17708:16:0;;::::1;::::0;17700:48;::::1;;;::::0;17735:12;;17708:16:::1;17700:48:::0;17708:16;17700:48;17735:12;17708:16;17700:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17665:95;17815:13:::0;;17780:14:::1;::::0;17797:15:::1;:11:::0;17811:1:::1;17797:15;:::i;:::-;:31;;;;:::i;:::-;17780:48:::0;-1:-1:-1;17842:10:0;;17839:77:::1;;17876:10;::::0;17868:36:::1;::::0;-1:-1:-1;;;;;17876:10:0;;::::1;::::0;17868:36;::::1;;;::::0;17897:6;;17876:10:::1;17868:36:::0;17876:10;17868:36;17897:6;17876:10;17868:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17839:77;-1:-1:-1::0;;4965:8:0;:16;;-1:-1:-1;;4965:16:0;;;-1:-1:-1;;;;;;;;16729:1194:0:o;15562:1159::-;15684:28;15715:36;15726:7;15735;15744:6;15715:10;:36::i;:::-;-1:-1:-1;;;;;15768:19:0;;;;;;:11;:19;;;;;;15684:67;;-1:-1:-1;15768:19:0;;15764:115;;;-1:-1:-1;;;;;15844:15:0;;;;;;:7;:15;;;;;;:23;;15860:7;;15844:23;:::i;:::-;-1:-1:-1;;;;;15826:15:0;;;;;;:7;:15;;;;;:41;15764:115;-1:-1:-1;;;;;15893:22:0;;;;;;:11;:22;;;;;;;;15889:130;;;15990:17;;;;-1:-1:-1;;;;;15971:18:0;;;;;;:7;:18;;;;;;:36;;15990:17;15971:36;:::i;:::-;-1:-1:-1;;;;;15950:18:0;;;;;;:7;:18;;;;;:57;15889:130;16065:9;;-1:-1:-1;;;;;16049:15:0;;16065:9;16049:15;;;:7;:15;;;;;;:25;;16065:9;16049:25;:::i;:::-;-1:-1:-1;;;;;16031:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16125:17;;;16106:18;;;;;;;;;;:36;;16125:17;16106:36;:::i;:::-;-1:-1:-1;;;;;16085:18:0;;;;;;:7;:18;;;;;;;:57;;;;16166:6;;;:10;;;:24;;;16189:1;16180;:6;;;:10;16166:24;16163:56;;;16192:27;16204:1;:6;;;16212:1;:6;;;16192:11;:27::i;:::-;16248:1;16233;:12;;;:16;:36;;;;16268:1;16253;:12;;;:16;16233:36;16230:109;;;16286:41;16301:1;:12;;;16314:1;:12;;;16286:14;:41::i;:::-;16367:1;16352;:12;;;:16;:36;;;;16387:1;16372;:12;;;:16;16352:36;16349:109;;;16404:42;16419:1;:12;;;16433:1;:12;;;16404:14;:42::i;:::-;16480:1;16471;:6;;;:10;:24;;;;16494:1;16485;:6;;;:10;16471:24;16468:79;;;16511:24;16520:1;:6;;;16528:1;:6;;;16511:8;:24::i;:::-;16589:9;-1:-1:-1;;;;;16572:46:0;16581:6;-1:-1:-1;;;;;16572:46:0;;16600:1;:17;;;16572:46;;;;1410:25:1;;1398:2;1383:18;;1264:177;16572:46:0;;;;;;;;16659:4;-1:-1:-1;;;;;16634:69:0;16643:6;-1:-1:-1;;;;;16634:69:0;;16690:1;:12;;;16681:1;:6;;;16666:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16634:69;;1410:25:1;;;1398:2;1383:18;16634:69:0;;;;;;;15673:1048;15562:1159;;;;;:::o;13278:540::-;13375:7;;13411;;13328;;;;;13429:279;13453:9;:16;13449:20;;13429:279;;;13519:7;13495;:21;13503:9;13513:1;13503:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13503:12:0;13495:21;;;;;;;;;;;;;:31;;:66;;;13554:7;13530;:21;13538:9;13548:1;13538:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13538:12:0;13530:21;;;;;;;;;;;;;:31;13495:66;13491:97;;;13571:7;;13580;;13563:25;;;;;;;13278:540;;:::o;13491:97::-;13621:7;:21;13629:9;13639:1;13629:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13629:12:0;13621:21;;;;;;;;;;;;;13613:29;;:7;:29;:::i;:::-;13603:39;;13675:7;:21;13683:9;13693:1;13683:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13683:12:0;13675:21;;;;;;;;;;;;;13667:29;;:7;:29;:::i;:::-;13657:39;-1:-1:-1;13471:3:0;;;;:::i;:::-;;;;13429:279;;;;13740:7;;13732;;:15;;;;:::i;:::-;13722:7;:25;13718:56;;;13757:7;;13766;;13749:25;;;;;;13278:540;;:::o;13718:56::-;13793:7;;13802;;-1:-1:-1;13278:540:0;-1:-1:-1;13278:540:0:o;11807:608::-;11894:28;;:::i;:::-;11941:7;11937:86;;11963:17;;;:27;;;12003:8;;11937:86;12033:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12033:17:0;12064:6;12061:55;;;-1:-1:-1;12072:16:0;;;;;;;;12079:9;12072:16;;;;;;;;;;;;;;;;;;;;;;;;12061:55;;;-1:-1:-1;12104:12:0;;;;;;;;12111:5;12104:12;;;;;;;;;;;;;;;;;;;;;;;;12061:55;12154:8;;12163:3;;12146:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12137:6;;;:29;12200:14;;;;12215:3;;12192:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12177:12;;;:41;12252:14;;;;12267:3;;12244:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12229:12;;;:41;12298:8;;;;12307:3;;12290:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12281:6;;;:29;;;12376:12;;;;12356;;;;12349:6;;;;12376:12;;12281:29;12341:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12321:17;;;:67;-1:-1:-1;11807:608:0;;;;;:::o;12423:681::-;12548:15;;;;;;12678:19;12686:11;12678:7;:19;:::i;:::-;12668:29;;12714:7;12710:71;;-1:-1:-1;12743:7:0;;-1:-1:-1;12761:1:0;;-1:-1:-1;12761:1:0;;-1:-1:-1;12761:1:0;;-1:-1:-1;12761:1:0;12736:33;;12710:71;12807:11;12800:1;:6;;;:18;;;;:::i;:::-;12793:25;;12855:11;12842:1;:12;;;:24;;;;:::i;:::-;12829:37;;12891:11;12884:1;:6;;;:18;;;;:::i;:::-;12877:25;;12939:11;12926:1;:12;;;:24;;;;:::i;:::-;12913:37;-1:-1:-1;12913:37:0;13004:4;12993:10;12980:12;12988:4;12980:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;12961:58;;12423:681;;;;;;;;;;;;:::o;18437:562::-;18587:16;;;18601:1;18587:16;;;;;;;;18563:21;;18587:16;;;;;;;;;;-1:-1:-1;18587:16:0;18563:40;;18632:4;18614;18619:1;18614:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18614:23:0;;;-1:-1:-1;;;;;18614:23:0;;;;;18658:6;;;;;;;;;-1:-1:-1;;;;;18658:6:0;-1:-1:-1;;;;;18658:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18648:4;18653:1;18648:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18648:23:0;;;:7;;;;;;;;;:23;18716:6;;18684:53;;18701:4;;18716:6;;;;18725:11;18684:8;:53::i;:::-;18776:6;;:215;;-1:-1:-1;;;18776:215:0;;:6;;;;-1:-1:-1;;;;;18776:6:0;;:57;;:215;;18848:11;;18874:1;;18918:4;;18945;;18965:15;;18776:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18492:507;18437:562;:::o;17931:498::-;18111:6;;18079:53;;18096:4;;18111:6;;;-1:-1:-1;;;;;18111:6:0;18120:11;18079:8;:53::i;:::-;18175:6;;:246;;-1:-1:-1;;;18175:246:0;;18238:4;18175:246;;;17459:34:1;17509:18;;;17502:34;;;18284:1:0;17552:18:1;;;17545:34;;;17595:18;;;17588:34;;;17638:19;;;17631:44;18395:15:0;17691:19:1;;;17684:35;18175:6:0;;;;-1:-1:-1;;;;;18175:6:0;;:22;;18205:9;;17393:19:1;;18175:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17931:498;;:::o;10420:123::-;10498:4;10488:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10513:11:0;:22;;10531:4;;10513:11;:15;;:22;;10531:4;;10513:22;:::i;:::-;;;;-1:-1:-1;;;;10420:123:0:o;10551:284::-;10658:10;10634:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10704:4:0;10684:26;;;;:11;:26;;;;;;;;10681:101;;;10752:4;10736:22;;;;:7;:22;;;;;:34;;10760:10;;10736:22;:34;;10760:10;;10736:34;:::i;:::-;;;;-1:-1:-1;;10681:101:0;10808:4;10792:22;;;;:7;:22;;;;;:35;;10817:10;;10792:22;:35;;10817:10;;10792:35;:::i;10843:284::-;10950:10;10926:11;:21;;;:34;;;;;;;:::i;11139:245::-;11223:4;11204:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;2091:456::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;:::-;2361:5;-1:-1:-1;2418:2:1;2403:18;;2390:32;2431:33;2390:32;2431:33;:::i;:::-;2091:456;;2483:7;;-1:-1:-1;;;2537:2:1;2522:18;;;;2509:32;;2091:456::o;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:444;2935:6;2943;2951;3004:2;2992:9;2983:7;2979:23;2975:32;2972:52;;;3020:1;3017;3010:12;2972:52;3056:9;3043:23;3033:33;;3116:2;3105:9;3101:18;3088:32;3129:28;3151:5;3129:28;:::i;:::-;3176:5;-1:-1:-1;3233:2:1;3218:18;;3205:32;3246:30;3205:32;3246:30;:::i;:::-;3295:7;3285:17;;;2864:444;;;;;:::o;3313:388::-;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3497:9;3484:23;3516:31;3541:5;3516:31;:::i;:::-;3566:5;-1:-1:-1;3623:2:1;3608:18;;3595:32;3636:33;3595:32;3636:33;:::i;:::-;3688:7;3678:17;;;3313:388;;;;;:::o;4102:241::-;4158:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:52;;;4227:1;4224;4217:12;4179:52;4266:9;4253:23;4285:28;4307:5;4285:28;:::i;4348:385::-;4434:6;4442;4450;4458;4511:3;4499:9;4490:7;4486:23;4482:33;4479:53;;;4528:1;4525;4518:12;4479:53;-1:-1:-1;;4551:23:1;;;4621:2;4606:18;;4593:32;;-1:-1:-1;4672:2:1;4657:18;;4644:32;;4723:2;4708:18;4695:32;;-1:-1:-1;4348:385:1;-1:-1:-1;4348:385:1:o;4961:356::-;5163:2;5145:21;;;5182:18;;;5175:30;5241:34;5236:2;5221:18;;5214:62;5308:2;5293:18;;4961:356::o;5322:127::-;5383:10;5378:3;5374:20;5371:1;5364:31;5414:4;5411:1;5404:15;5438:4;5435:1;5428:15;5454:422;5543:1;5586:5;5543:1;5600:270;5621:7;5611:8;5608:21;5600:270;;;5680:4;5676:1;5672:6;5668:17;5662:4;5659:27;5656:53;;;5689:18;;:::i;:::-;5739:7;5729:8;5725:22;5722:55;;;5759:16;;;;5722:55;5838:22;;;;5798:15;;;;5600:270;;;5604:3;5454:422;;;;;:::o;5881:806::-;5930:5;5960:8;5950:80;;-1:-1:-1;6001:1:1;6015:5;;5950:80;6049:4;6039:76;;-1:-1:-1;6086:1:1;6100:5;;6039:76;6131:4;6149:1;6144:59;;;;6217:1;6212:130;;;;6124:218;;6144:59;6174:1;6165:10;;6188:5;;;6212:130;6249:3;6239:8;6236:17;6233:43;;;6256:18;;:::i;:::-;-1:-1:-1;;6312:1:1;6298:16;;6327:5;;6124:218;;6426:2;6416:8;6413:16;6407:3;6401:4;6398:13;6394:36;6388:2;6378:8;6375:16;6370:2;6364:4;6361:12;6357:35;6354:77;6351:159;;;-1:-1:-1;6463:19:1;;;6495:5;;6351:159;6542:34;6567:8;6561:4;6542:34;:::i;:::-;6612:6;6608:1;6604:6;6600:19;6591:7;6588:32;6585:58;;;6623:18;;:::i;:::-;6661:20;;5881:806;-1:-1:-1;;;5881:806:1:o;6692:140::-;6750:5;6779:47;6820:4;6810:8;6806:19;6800:4;6779:47;:::i;6837:168::-;6877:7;6943:1;6939;6935:6;6931:14;6928:1;6925:21;6920:1;6913:9;6906:17;6902:45;6899:71;;;6950:18;;:::i;:::-;-1:-1:-1;6990:9:1;;6837:168::o;7419:125::-;7459:4;7487:1;7484;7481:8;7478:34;;;7492:18;;:::i;:::-;-1:-1:-1;7529:9:1;;7419:125::o;7960:217::-;8000:1;8026;8016:132;;8070:10;8065:3;8061:20;8058:1;8051:31;8105:4;8102:1;8095:15;8133:4;8130:1;8123:15;8016:132;-1:-1:-1;8162:9:1;;7960:217::o;8534:127::-;8595:10;8590:3;8586:20;8583:1;8576:31;8626:4;8623:1;8616:15;8650:4;8647:1;8640:15;8666:127;8727:10;8722:3;8718:20;8715:1;8708:31;8758:4;8755:1;8748:15;8782:4;8779:1;8772:15;8798:135;8837:3;-1:-1:-1;;8858:17:1;;8855:43;;;8878:18;;:::i;:::-;-1:-1:-1;8925:1:1;8914:13;;8798:135::o;8938:128::-;8978:3;9009:1;9005:6;9002:1;8999:13;8996:39;;;9015:18;;:::i;:::-;-1:-1:-1;9051:9:1;;8938:128::o;10758:245::-;10825:6;10878:2;10866:9;10857:7;10853:23;10849:32;10846:52;;;10894:1;10891;10884:12;10846:52;10926:9;10920:16;10945:28;10967:5;10945:28;:::i;15877:251::-;15947:6;16000:2;15988:9;15979:7;15975:23;15971:32;15968:52;;;16016:1;16013;16006:12;15968:52;16048:9;16042:16;16067:31;16092:5;16067:31;:::i;16133:980::-;16395:4;16443:3;16432:9;16428:19;16474:6;16463:9;16456:25;16500:2;16538:6;16533:2;16522:9;16518:18;16511:34;16581:3;16576:2;16565:9;16561:18;16554:31;16605:6;16640;16634:13;16671:6;16663;16656:22;16709:3;16698:9;16694:19;16687:26;;16748:2;16740:6;16736:15;16722:29;;16769:1;16779:195;16793:6;16790:1;16787:13;16779:195;;;16858:13;;-1:-1:-1;;;;;16854:39:1;16842:52;;16949:15;;;;16914:12;;;;16890:1;16808:9;16779:195;;;-1:-1:-1;;;;;;;17030:32:1;;;;17025:2;17010:18;;17003:60;-1:-1:-1;;;17094:3:1;17079:19;17072:35;16991:3;16133:980;-1:-1:-1;;;16133:980:1:o;17730:306::-;17818:6;17826;17834;17887:2;17875:9;17866:7;17862:23;17858:32;17855:52;;;17903:1;17900;17893:12;17855:52;17932:9;17926:16;17916:26;;17982:2;17971:9;17967:18;17961:25;17951:35;;18026:2;18015:9;18011:18;18005:25;17995:35;;17730:306;;;;;:::o
Swarm Source
ipfs://2d717703c8d63239345fe23e1e039f273ba685b4f48951eaf91fc06c50c55e16
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.