Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 SFUND
Holders
23
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
28,201.227587879 SFUNDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
StreamersFund
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-04 */ // SPDX-License-Identifier: MIT 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); } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } 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 StreamersFund is Context, IERC20, Ownable { using Address for address payable; 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; mapping (address => bool) public isBot; address[] private _excluded; bool public swapEnabled; bool public tradingActive; bool private swapping; IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1_000_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 500_000 * 10**_decimals; uint256 public maxTxAmount = 10_000_000 * 10**_decimals; address public marketingWallet = 0xb04dFE27757E3448145044E038b9092460eF121D; address public lpRecipient = 0x3fb75798D0D5b34D438a4319aec939f53D1Ce06d ; string private constant _name = "Streamers Fund"; string private constant _symbol = "SFUND"; struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; } Taxes public taxes = Taxes(3,7,2); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 liquidity; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; } 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; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingWallet]=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) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true); 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 _liquidity) public onlyOwner { taxes = Taxes(_rfi, _marketing, _liquidity); } 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 _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } s.tRfi = tAmount*taxes.rfi/100; s.tMarketing = tAmount*taxes.marketing/100; s.tLiquidity = tAmount*taxes.liquidity/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-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 rLiquidity) { rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0); } rRfi = s.tRfi*currentRate; rMarketing = s.tMarketing*currentRate; rLiquidity = s.tLiquidity*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rLiquidity; return (rAmount, rTransferAmount, rRfi,rMarketing,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 returns(bool){ 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"); require(!isBot[from] && !isBot[to], "You are blacklisted"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount"); } 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])); return true; } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee); 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); emit Transfer(sender, recipient, s.tTransferAmount); if(s.tLiquidity + s.tMarketing > 0) emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing); } function swapAndLiquify(uint256 tokens) private lockTheSwap{ // Split the contract balance into halves uint256 denominator = (taxes.liquidity + taxes.marketing ) * 2; uint256 tokensToAddLiquidityWith = tokens * taxes.liquidity / denominator; uint256 toSwap = tokens - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - taxes.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * taxes.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * taxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } } 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 lpRecipient, 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 startTrading() external onlyOwner{ require(!tradingActive, "Trading already active"); tradingActive = true; swapEnabled = true; } function updateMarketingWallet(address _marketingWallet) external onlyOwner{ marketingWallet = _marketingWallet; } function updateLpRecipient(address newAddress) external onlyOwner{ lpRecipient = newAddress; } function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = 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{ //Thanks Freezy router = IRouter(newRouter); pair = newPair; } function setIsBot(address user, bool state) external onlyOwner{ isBot[user] = state; } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ 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) function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { 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":[{"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":[{"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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"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":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateLpRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","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
6080604052620000126009600a62000930565b6200002290633b9aca0062000941565b600a819055620000359060001962000979565b620000439060001962000990565b600b55620000546009600a62000930565b62000063906207a12062000941565b600c55620000746009600a62000930565b62000083906298968062000941565b600d55600e80546001600160a01b031990811673b04dfe27757e3448145044e038b9092460ef121d17909155600f8054909116733fb75798d0d5b34d438a4319aec939f53d1ce06d1790556040805160608101825260038082526007602083018190526002929093018290526010556011919091556012553480156200010857600080fd5b506200011433620003e2565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001949190620009aa565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002089190620009aa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c9190620009aa565b600880546001600160a01b038086166301000000026301000000600160b81b031990921691909117909155600980549183166001600160a01b031990921682179055909150620002cc9062000432565b600b5460016000620002e66000546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016004600062000320620005c060201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600e549091168352912080549092161790556200038a6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003d291815260200190565b60405180910390a3505062000a20565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620004fd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000489565b6001600160a01b038116600090815260016020526040902054156200055a576001600160a01b0381166000908152600160205260409020546200054090620005cf565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006385760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000489565b60006200064462000659565b9050620006528184620009d5565b9392505050565b60008080620006676200067f565b9092509050620006788183620009d5565b9250505090565b600b54600a546000918291825b600754811015620007e757826001600060078481548110620006b257620006b2620009ec565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007215750816002600060078481548110620006fa57620006fa620009ec565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200073857600b54600a54945094505050509091565b6001600060078381548110620007525762000752620009ec565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000783908462000990565b925060026000600783815481106200079f576200079f620009ec565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007d0908362000990565b915080620007de8162000a02565b9150506200068c565b50600a54600b54620007fa9190620009d5565b8210156200081257600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008725781600019048211156200085657620008566200081b565b808516156200086457918102915b93841c939080029062000836565b509250929050565b6000826200088b575060016200092a565b816200089a575060006200092a565b8160018114620008b35760028114620008be57620008de565b60019150506200092a565b60ff841115620008d257620008d26200081b565b50506001821b6200092a565b5060208310610133831016604e8410600b841016171562000903575081810a6200092a565b6200090f838362000831565b80600019048211156200092657620009266200081b565b0290505b92915050565b60006200065260ff8416836200087a565b60008160001904831182151516156200095e576200095e6200081b565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200098b576200098b62000963565b500690565b600082821015620009a557620009a56200081b565b500390565b600060208284031215620009bd57600080fd5b81516001600160a01b03811681146200065257600080fd5b600082620009e757620009e762000963565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000a195762000a196200081b565b5060010190565b6129ca8062000a306000396000f3fe60806040526004361061026b5760003560e01c8063715018a611610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146107c5578063e2f456051461080b578063e9dae5ed14610821578063ea2f0b3714610841578063f2fde38b14610861578063f887ea401461088157600080fd5b8063a9059cbb14610726578063aacebbe314610746578063bbc0c74214610766578063cdb3858f14610785578063d257b34f146107a557600080fd5b80638da5cb5b116101085780638da5cb5b1461065b578063924de9b71461067957806395d89b41146106995780639ba5e4d5146106c7578063a457c2d7146106e6578063a8aa1b311461070657600080fd5b8063715018a61461059d578063728f8eea146105b257806375f0a874146105ec57806388f820201461060c5780638c0b5e221461064557600080fd5b806340b28c2f116101dd57806347c23092116101a157806347c23092146104ca57806352390c02146104ea5780635342acb41461050a5780636256d181146105435780636ddd17131461056357806370a082311461057d57600080fd5b806340b28c2f14610412578063437823ec14610432578063441b1d3014610452578063452e68dd146104725780634549b039146104aa57600080fd5b8063293230b81161022f578063293230b8146103515780632d83811914610366578063313ce567146103865780633685d419146103a257806339509351146103c25780633bbac579146103e257600080fd5b806303c0f5d41461027757806306fdde0314610299578063095ea7b3146102e257806318160ddd1461031257806323b872dd1461033157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b506102976102923660046124f9565b6108a8565b005b3480156102a557600080fd5b5060408051808201909152600e81526d14dd1c99585b595c9cc8119d5b9960921b60208201525b6040516102d99190612532565b60405180910390f35b3480156102ee57600080fd5b506103026102fd366004612587565b610906565b60405190151581526020016102d9565b34801561031e57600080fd5b50600a545b6040519081526020016102d9565b34801561033d57600080fd5b5061030261034c3660046125b3565b61091d565b34801561035d57600080fd5b506102976109cf565b34801561037257600080fd5b506103236103813660046125f4565b610a5b565b34801561039257600080fd5b50604051600981526020016102d9565b3480156103ae57600080fd5b506102976103bd36600461260d565b610adf565b3480156103ce57600080fd5b506103026103dd366004612587565b610c96565b3480156103ee57600080fd5b506103026103fd36600461260d565b60066020526000908152604090205460ff1681565b34801561041e57600080fd5b5061029761042d36600461262a565b610ccd565b34801561043e57600080fd5b5061029761044d36600461260d565b610d33565b34801561045e57600080fd5b5061029761046d3660046125f4565b610d81565b34801561047e57600080fd5b50600f54610492906001600160a01b031681565b6040516001600160a01b0390911681526020016102d9565b3480156104b657600080fd5b506103236104c5366004612658565b610e28565b3480156104d657600080fd5b506102976104e53660046125b3565b610eb2565b3480156104f657600080fd5b5061029761050536600461260d565b610f55565b34801561051657600080fd5b5061030261052536600461260d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561054f57600080fd5b5061029761055e3660046125f4565b6110a8565b34801561056f57600080fd5b506008546103029060ff1681565b34801561058957600080fd5b5061032361059836600461260d565b6110ee565b3480156105a957600080fd5b5061029761114d565b3480156105be57600080fd5b506010546011546012546105d192919083565b604080519384526020840192909252908201526060016102d9565b3480156105f857600080fd5b50600e54610492906001600160a01b031681565b34801561061857600080fd5b5061030261062736600461260d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065157600080fd5b50610323600d5481565b34801561066757600080fd5b506000546001600160a01b0316610492565b34801561068557600080fd5b5061029761069436600461267d565b611183565b3480156106a557600080fd5b5060408051808201909152600581526414d195539160da1b60208201526102cc565b3480156106d357600080fd5b506013546014546015546105d192919083565b3480156106f257600080fd5b50610302610701366004612587565b6111c0565b34801561071257600080fd5b50600954610492906001600160a01b031681565b34801561073257600080fd5b50610302610741366004612587565b61125b565b34801561075257600080fd5b5061029761076136600461260d565b611268565b34801561077257600080fd5b5060085461030290610100900460ff1681565b34801561079157600080fd5b506102976107a036600461260d565b6112b4565b3480156107b157600080fd5b506102976107c03660046125f4565b611300565b3480156107d157600080fd5b506103236107e036600461262a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561081757600080fd5b50610323600c5481565b34801561082d57600080fd5b5061029761083c36600461269a565b611346565b34801561084d57600080fd5b5061029761085c36600461260d565b611396565b34801561086d57600080fd5b5061029761087c36600461260d565b6113e1565b34801561088d57600080fd5b5060085461049290630100000090046001600160a01b031681565b6000546001600160a01b031633146108db5760405162461bcd60e51b81526004016108d2906126c6565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600061091333848461147c565b5060015b92915050565b600061092a8484846115a0565b506001600160a01b0384166000908152600360209081526040808320338452909152902054828110156109b05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108d2565b6109c485336109bf8685612711565b61147c565b506001949350505050565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016108d2906126c6565b600854610100900460ff1615610a4a5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108d2565b6008805461ffff1916610101179055565b6000600b54821115610ac25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108d2565b6000610acc611953565b9050610ad88184612728565b9392505050565b6000546001600160a01b03163314610b095760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03811660009081526005602052604090205460ff16610b715760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016108d2565b60005b600754811015610c9257816001600160a01b031660078281548110610b9b57610b9b61274a565b6000918252602090912001546001600160a01b03161415610c805760078054610bc690600190612711565b81548110610bd657610bd661274a565b600091825260209091200154600780546001600160a01b039092169183908110610c0257610c0261274a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610c5a57610c5a612760565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610c8a81612776565b915050610b74565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109139185906109bf908690612791565b6000546001600160a01b03163314610cf75760405162461bcd60e51b81526004016108d2906126c6565b600880546301000000600160b81b03191663010000006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610dab5760405162461bcd60e51b81526004016108d2906126c6565b80471015610dfb5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016108d2565b604051339082156108fc029083906000818181858888f19350505050158015610c92573d6000803e3d6000fd5b6000600a54831115610e7c5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108d2565b81610e98576000610e8e846000611976565b5191506109179050565b6000610ea5846001611976565b6020015191506109179050565b6000546001600160a01b03163314610edc5760405162461bcd60e51b81526004016108d2906126c6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4f91906127a9565b50505050565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03811660009081526005602052604090205460ff1615610fe85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108d2565b6001600160a01b03811660009081526001602052604090205415611042576001600160a01b03811660009081526001602052604090205461102890610a5b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146110d25760405162461bcd60e51b81526004016108d2906126c6565b6110de6009600a6128aa565b6110e890826128b9565b600d5550565b6001600160a01b03811660009081526005602052604081205460ff161561112b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461091790610a5b565b6000546001600160a01b031633146111775760405162461bcd60e51b81526004016108d2906126c6565b61118160006119b9565b565b6000546001600160a01b031633146111ad5760405162461bcd60e51b81526004016108d2906126c6565b6008805460ff1916911515919091179055565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156112425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108d2565b61125133856109bf8685612711565b5060019392505050565b60006112513384846115a0565b6000546001600160a01b031633146112925760405162461bcd60e51b81526004016108d2906126c6565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112de5760405162461bcd60e51b81526004016108d2906126c6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461132a5760405162461bcd60e51b81526004016108d2906126c6565b6113366009600a6128aa565b61134090826128b9565b600c5550565b6000546001600160a01b031633146113705760405162461bcd60e51b81526004016108d2906126c6565b604080516060810182528481526020810184905201819052601092909255601155601255565b6000546001600160a01b031633146113c05760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461140b5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b0381166114705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d2565b611479816119b9565b50565b6001600160a01b0383166114de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d2565b6001600160a01b03821661153f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d2565b6001600160a01b0383166116685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d2565b600082116116ca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d2565b6116d3846110ee565b82111561173c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108d2565b6001600160a01b03841660009081526006602052604090205460ff1615801561177e57506001600160a01b03831660009081526006602052604090205460ff16155b6117c05760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b60448201526064016108d2565b6001600160a01b03841660009081526004602052604090205460ff1615801561180257506001600160a01b03831660009081526004602052604090205460ff16155b1561185957600d548211156118595760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e740060448201526064016108d2565b6000600c54611867306110ee565b600854911115915062010000900460ff16158015611887575060085460ff165b80156118905750805b80156118aa57506009546001600160a01b03868116911614155b80156118cf57506001600160a01b03851660009081526004602052604090205460ff16155b80156118f457506001600160a01b03841660009081526004602052604090205460ff16155b1561190457611904600c54611a09565b6001600160a01b0385166000908152600460205260409020546109c49086908690869060ff168061194d57506001600160a01b03881660009081526004602052604090205460ff165b15611b0f565b6000806000611960611db4565b909250905061196f8183612728565b9250505090565b61197e61248a565b6119888383611f37565b905061199d818484611998611953565b611fe3565b6080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff0000191662010000179055601154601254600091611a2c91612791565b611a379060026128b9565b905060008160106002015484611a4d91906128b9565b611a579190612728565b90506000611a658285612711565b905047611a7182612070565b6000611a7d8247612711565b601254909150600090611a909087612711565b611a9a9083612728565b601254909150600090611aad90836128b9565b90508015611abf57611abf86826121f1565b601154600090611ad08460026128b9565b611ada91906128b9565b90508015611af857600e54611af8906001600160a01b0316826122ac565b50506008805462ff00001916905550505050505050565b6000611b1b8383611976565b6001600160a01b03861660009081526005602052604090205490915060ff1615611b7d576001600160a01b038516600090815260026020526040902054611b63908490612711565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611be05760a08101516001600160a01b038516600090815260026020526040902054611bc69190612791565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611c059190612711565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611c3c9190612791565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611c6e575060008160c00151115b15611c8557611c8581604001518260c001516123ca565b600081608001511180611c9d57506000816101000151115b15611cb557611cb581608001518261010001516123ff565b600081606001511180611ccc575060008160e00151115b15611ce357611ce381606001518260e00151612475565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611d2c91815260200190565b60405180910390a360008160e00151826101000151611d4b9190612791565b1115611dad57306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151611d9b9190612791565b60405190815260200160405180910390a35b5050505050565b600b54600a546000918291825b600754811015611f0657826001600060078481548110611de357611de361274a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611e4e5750816002600060078481548110611e2757611e2761274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611e6457600b54600a54945094505050509091565b6001600060078381548110611e7b57611e7b61274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611eaa9084612711565b92506002600060078381548110611ec357611ec361274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ef29083612711565b915080611efe81612776565b915050611dc1565b50600a54600b54611f179190612728565b821015611f2e57600b54600a549350935050509091565b90939092509050565b611f3f61248a565b81611f505760a08101839052610917565b601054606490611f6090856128b9565b611f6a9190612728565b60c0820152601154606490611f7f90856128b9565b611f899190612728565b60e0820152601254606490611f9e90856128b9565b611fa89190612728565b610100820181905260e082015160c0830151611fc49086612711565b611fce9190612711565b611fd89190612711565b60a082015292915050565b600080808080611ff386896128b9565b94508661200b57508392506000915081905080612065565b858960c0015161201b91906128b9565b9250858960e0015161202d91906128b9565b91508589610100015161204091906128b9565b9050808261204e8588612711565b6120589190612711565b6120629190612711565b93505b945094509450945094565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120a5576120a561274a565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c91906128d8565b8160018151811061214f5761214f61274a565b6001600160a01b03928316602091820292909201015260085461217c91309163010000009004168461147c565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906121bb9085906000908690309042906004016128f5565b600060405180830381600087803b1580156121d557600080fd5b505af11580156121e9573d6000803e3d6000fd5b505050505050565b600854612210903090630100000090046001600160a01b03168461147c565b600854600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af1158015612287573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dad9190612966565b804710156122fc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108d2565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612349576040519150601f19603f3d011682016040523d82523d6000602084013e61234e565b606091505b50509050806123c55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108d2565b505050565b81600b60008282546123dc9190612711565b9091555050601380548291906000906123f6908490612791565b90915550505050565b80601360020160008282546124149190612791565b90915550503060009081526005602052604090205460ff1615612456573060009081526002602052604081208054839290612450908490612791565b90915550505b30600090815260016020526040812080548492906123f6908490612791565b80601360010160008282546124149190612791565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461147957600080fd5b801515811461147957600080fd5b6000806040838503121561250c57600080fd5b8235612517816124d6565b91506020830135612527816124eb565b809150509250929050565b600060208083528351808285015260005b8181101561255f57858101830151858201604001528201612543565b81811115612571576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561259a57600080fd5b82356125a5816124d6565b946020939093013593505050565b6000806000606084860312156125c857600080fd5b83356125d3816124d6565b925060208401356125e3816124d6565b929592945050506040919091013590565b60006020828403121561260657600080fd5b5035919050565b60006020828403121561261f57600080fd5b8135610ad8816124d6565b6000806040838503121561263d57600080fd5b8235612648816124d6565b91506020830135612527816124d6565b6000806040838503121561266b57600080fd5b823591506020830135612527816124eb565b60006020828403121561268f57600080fd5b8135610ad8816124eb565b6000806000606084860312156126af57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612723576127236126fb565b500390565b60008261274557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561278a5761278a6126fb565b5060010190565b600082198211156127a4576127a46126fb565b500190565b6000602082840312156127bb57600080fd5b8151610ad8816124eb565b600181815b808511156128015781600019048211156127e7576127e76126fb565b808516156127f457918102915b93841c93908002906127cb565b509250929050565b60008261281857506001610917565b8161282557506000610917565b816001811461283b576002811461284557612861565b6001915050610917565b60ff841115612856576128566126fb565b50506001821b610917565b5060208310610133831016604e8410600b8410161715612884575081810a610917565b61288e83836127c6565b80600019048211156128a2576128a26126fb565b029392505050565b6000610ad860ff841683612809565b60008160001904831182151516156128d3576128d36126fb565b500290565b6000602082840312156128ea57600080fd5b8151610ad8816124d6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129455784516001600160a01b031683529383019391830191600101612920565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561297b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201764eccd0ab997691b52ccdb628cff56f0858e338af8f536acb8e9823881b87764736f6c634300080c0033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c8063715018a611610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146107c5578063e2f456051461080b578063e9dae5ed14610821578063ea2f0b3714610841578063f2fde38b14610861578063f887ea401461088157600080fd5b8063a9059cbb14610726578063aacebbe314610746578063bbc0c74214610766578063cdb3858f14610785578063d257b34f146107a557600080fd5b80638da5cb5b116101085780638da5cb5b1461065b578063924de9b71461067957806395d89b41146106995780639ba5e4d5146106c7578063a457c2d7146106e6578063a8aa1b311461070657600080fd5b8063715018a61461059d578063728f8eea146105b257806375f0a874146105ec57806388f820201461060c5780638c0b5e221461064557600080fd5b806340b28c2f116101dd57806347c23092116101a157806347c23092146104ca57806352390c02146104ea5780635342acb41461050a5780636256d181146105435780636ddd17131461056357806370a082311461057d57600080fd5b806340b28c2f14610412578063437823ec14610432578063441b1d3014610452578063452e68dd146104725780634549b039146104aa57600080fd5b8063293230b81161022f578063293230b8146103515780632d83811914610366578063313ce567146103865780633685d419146103a257806339509351146103c25780633bbac579146103e257600080fd5b806303c0f5d41461027757806306fdde0314610299578063095ea7b3146102e257806318160ddd1461031257806323b872dd1461033157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b506102976102923660046124f9565b6108a8565b005b3480156102a557600080fd5b5060408051808201909152600e81526d14dd1c99585b595c9cc8119d5b9960921b60208201525b6040516102d99190612532565b60405180910390f35b3480156102ee57600080fd5b506103026102fd366004612587565b610906565b60405190151581526020016102d9565b34801561031e57600080fd5b50600a545b6040519081526020016102d9565b34801561033d57600080fd5b5061030261034c3660046125b3565b61091d565b34801561035d57600080fd5b506102976109cf565b34801561037257600080fd5b506103236103813660046125f4565b610a5b565b34801561039257600080fd5b50604051600981526020016102d9565b3480156103ae57600080fd5b506102976103bd36600461260d565b610adf565b3480156103ce57600080fd5b506103026103dd366004612587565b610c96565b3480156103ee57600080fd5b506103026103fd36600461260d565b60066020526000908152604090205460ff1681565b34801561041e57600080fd5b5061029761042d36600461262a565b610ccd565b34801561043e57600080fd5b5061029761044d36600461260d565b610d33565b34801561045e57600080fd5b5061029761046d3660046125f4565b610d81565b34801561047e57600080fd5b50600f54610492906001600160a01b031681565b6040516001600160a01b0390911681526020016102d9565b3480156104b657600080fd5b506103236104c5366004612658565b610e28565b3480156104d657600080fd5b506102976104e53660046125b3565b610eb2565b3480156104f657600080fd5b5061029761050536600461260d565b610f55565b34801561051657600080fd5b5061030261052536600461260d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561054f57600080fd5b5061029761055e3660046125f4565b6110a8565b34801561056f57600080fd5b506008546103029060ff1681565b34801561058957600080fd5b5061032361059836600461260d565b6110ee565b3480156105a957600080fd5b5061029761114d565b3480156105be57600080fd5b506010546011546012546105d192919083565b604080519384526020840192909252908201526060016102d9565b3480156105f857600080fd5b50600e54610492906001600160a01b031681565b34801561061857600080fd5b5061030261062736600461260d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065157600080fd5b50610323600d5481565b34801561066757600080fd5b506000546001600160a01b0316610492565b34801561068557600080fd5b5061029761069436600461267d565b611183565b3480156106a557600080fd5b5060408051808201909152600581526414d195539160da1b60208201526102cc565b3480156106d357600080fd5b506013546014546015546105d192919083565b3480156106f257600080fd5b50610302610701366004612587565b6111c0565b34801561071257600080fd5b50600954610492906001600160a01b031681565b34801561073257600080fd5b50610302610741366004612587565b61125b565b34801561075257600080fd5b5061029761076136600461260d565b611268565b34801561077257600080fd5b5060085461030290610100900460ff1681565b34801561079157600080fd5b506102976107a036600461260d565b6112b4565b3480156107b157600080fd5b506102976107c03660046125f4565b611300565b3480156107d157600080fd5b506103236107e036600461262a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561081757600080fd5b50610323600c5481565b34801561082d57600080fd5b5061029761083c36600461269a565b611346565b34801561084d57600080fd5b5061029761085c36600461260d565b611396565b34801561086d57600080fd5b5061029761087c36600461260d565b6113e1565b34801561088d57600080fd5b5060085461049290630100000090046001600160a01b031681565b6000546001600160a01b031633146108db5760405162461bcd60e51b81526004016108d2906126c6565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600061091333848461147c565b5060015b92915050565b600061092a8484846115a0565b506001600160a01b0384166000908152600360209081526040808320338452909152902054828110156109b05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108d2565b6109c485336109bf8685612711565b61147c565b506001949350505050565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016108d2906126c6565b600854610100900460ff1615610a4a5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108d2565b6008805461ffff1916610101179055565b6000600b54821115610ac25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108d2565b6000610acc611953565b9050610ad88184612728565b9392505050565b6000546001600160a01b03163314610b095760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03811660009081526005602052604090205460ff16610b715760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016108d2565b60005b600754811015610c9257816001600160a01b031660078281548110610b9b57610b9b61274a565b6000918252602090912001546001600160a01b03161415610c805760078054610bc690600190612711565b81548110610bd657610bd661274a565b600091825260209091200154600780546001600160a01b039092169183908110610c0257610c0261274a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610c5a57610c5a612760565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610c8a81612776565b915050610b74565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109139185906109bf908690612791565b6000546001600160a01b03163314610cf75760405162461bcd60e51b81526004016108d2906126c6565b600880546301000000600160b81b03191663010000006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610dab5760405162461bcd60e51b81526004016108d2906126c6565b80471015610dfb5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016108d2565b604051339082156108fc029083906000818181858888f19350505050158015610c92573d6000803e3d6000fd5b6000600a54831115610e7c5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108d2565b81610e98576000610e8e846000611976565b5191506109179050565b6000610ea5846001611976565b6020015191506109179050565b6000546001600160a01b03163314610edc5760405162461bcd60e51b81526004016108d2906126c6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4f91906127a9565b50505050565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03811660009081526005602052604090205460ff1615610fe85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108d2565b6001600160a01b03811660009081526001602052604090205415611042576001600160a01b03811660009081526001602052604090205461102890610a5b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031633146110d25760405162461bcd60e51b81526004016108d2906126c6565b6110de6009600a6128aa565b6110e890826128b9565b600d5550565b6001600160a01b03811660009081526005602052604081205460ff161561112b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461091790610a5b565b6000546001600160a01b031633146111775760405162461bcd60e51b81526004016108d2906126c6565b61118160006119b9565b565b6000546001600160a01b031633146111ad5760405162461bcd60e51b81526004016108d2906126c6565b6008805460ff1916911515919091179055565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156112425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108d2565b61125133856109bf8685612711565b5060019392505050565b60006112513384846115a0565b6000546001600160a01b031633146112925760405162461bcd60e51b81526004016108d2906126c6565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112de5760405162461bcd60e51b81526004016108d2906126c6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461132a5760405162461bcd60e51b81526004016108d2906126c6565b6113366009600a6128aa565b61134090826128b9565b600c5550565b6000546001600160a01b031633146113705760405162461bcd60e51b81526004016108d2906126c6565b604080516060810182528481526020810184905201819052601092909255601155601255565b6000546001600160a01b031633146113c05760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461140b5760405162461bcd60e51b81526004016108d2906126c6565b6001600160a01b0381166114705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d2565b611479816119b9565b50565b6001600160a01b0383166114de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d2565b6001600160a01b03821661153f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d2565b6001600160a01b0383166116685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d2565b600082116116ca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d2565b6116d3846110ee565b82111561173c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108d2565b6001600160a01b03841660009081526006602052604090205460ff1615801561177e57506001600160a01b03831660009081526006602052604090205460ff16155b6117c05760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b60448201526064016108d2565b6001600160a01b03841660009081526004602052604090205460ff1615801561180257506001600160a01b03831660009081526004602052604090205460ff16155b1561185957600d548211156118595760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e740060448201526064016108d2565b6000600c54611867306110ee565b600854911115915062010000900460ff16158015611887575060085460ff165b80156118905750805b80156118aa57506009546001600160a01b03868116911614155b80156118cf57506001600160a01b03851660009081526004602052604090205460ff16155b80156118f457506001600160a01b03841660009081526004602052604090205460ff16155b1561190457611904600c54611a09565b6001600160a01b0385166000908152600460205260409020546109c49086908690869060ff168061194d57506001600160a01b03881660009081526004602052604090205460ff165b15611b0f565b6000806000611960611db4565b909250905061196f8183612728565b9250505090565b61197e61248a565b6119888383611f37565b905061199d818484611998611953565b611fe3565b6080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805462ff0000191662010000179055601154601254600091611a2c91612791565b611a379060026128b9565b905060008160106002015484611a4d91906128b9565b611a579190612728565b90506000611a658285612711565b905047611a7182612070565b6000611a7d8247612711565b601254909150600090611a909087612711565b611a9a9083612728565b601254909150600090611aad90836128b9565b90508015611abf57611abf86826121f1565b601154600090611ad08460026128b9565b611ada91906128b9565b90508015611af857600e54611af8906001600160a01b0316826122ac565b50506008805462ff00001916905550505050505050565b6000611b1b8383611976565b6001600160a01b03861660009081526005602052604090205490915060ff1615611b7d576001600160a01b038516600090815260026020526040902054611b63908490612711565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611be05760a08101516001600160a01b038516600090815260026020526040902054611bc69190612791565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611c059190612711565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611c3c9190612791565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611c6e575060008160c00151115b15611c8557611c8581604001518260c001516123ca565b600081608001511180611c9d57506000816101000151115b15611cb557611cb581608001518261010001516123ff565b600081606001511180611ccc575060008160e00151115b15611ce357611ce381606001518260e00151612475565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611d2c91815260200190565b60405180910390a360008160e00151826101000151611d4b9190612791565b1115611dad57306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151611d9b9190612791565b60405190815260200160405180910390a35b5050505050565b600b54600a546000918291825b600754811015611f0657826001600060078481548110611de357611de361274a565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611e4e5750816002600060078481548110611e2757611e2761274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611e6457600b54600a54945094505050509091565b6001600060078381548110611e7b57611e7b61274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611eaa9084612711565b92506002600060078381548110611ec357611ec361274a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ef29083612711565b915080611efe81612776565b915050611dc1565b50600a54600b54611f179190612728565b821015611f2e57600b54600a549350935050509091565b90939092509050565b611f3f61248a565b81611f505760a08101839052610917565b601054606490611f6090856128b9565b611f6a9190612728565b60c0820152601154606490611f7f90856128b9565b611f899190612728565b60e0820152601254606490611f9e90856128b9565b611fa89190612728565b610100820181905260e082015160c0830151611fc49086612711565b611fce9190612711565b611fd89190612711565b60a082015292915050565b600080808080611ff386896128b9565b94508661200b57508392506000915081905080612065565b858960c0015161201b91906128b9565b9250858960e0015161202d91906128b9565b91508589610100015161204091906128b9565b9050808261204e8588612711565b6120589190612711565b6120629190612711565b93505b945094509450945094565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120a5576120a561274a565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c91906128d8565b8160018151811061214f5761214f61274a565b6001600160a01b03928316602091820292909201015260085461217c91309163010000009004168461147c565b60085460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac947906121bb9085906000908690309042906004016128f5565b600060405180830381600087803b1580156121d557600080fd5b505af11580156121e9573d6000803e3d6000fd5b505050505050565b600854612210903090630100000090046001600160a01b03168461147c565b600854600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af1158015612287573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dad9190612966565b804710156122fc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108d2565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612349576040519150601f19603f3d011682016040523d82523d6000602084013e61234e565b606091505b50509050806123c55760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108d2565b505050565b81600b60008282546123dc9190612711565b9091555050601380548291906000906123f6908490612791565b90915550505050565b80601360020160008282546124149190612791565b90915550503060009081526005602052604090205460ff1615612456573060009081526002602052604081208054839290612450908490612791565b90915550505b30600090815260016020526040812080548492906123f6908490612791565b80601360010160008282546124149190612791565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461147957600080fd5b801515811461147957600080fd5b6000806040838503121561250c57600080fd5b8235612517816124d6565b91506020830135612527816124eb565b809150509250929050565b600060208083528351808285015260005b8181101561255f57858101830151858201604001528201612543565b81811115612571576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561259a57600080fd5b82356125a5816124d6565b946020939093013593505050565b6000806000606084860312156125c857600080fd5b83356125d3816124d6565b925060208401356125e3816124d6565b929592945050506040919091013590565b60006020828403121561260657600080fd5b5035919050565b60006020828403121561261f57600080fd5b8135610ad8816124d6565b6000806040838503121561263d57600080fd5b8235612648816124d6565b91506020830135612527816124d6565b6000806040838503121561266b57600080fd5b823591506020830135612527816124eb565b60006020828403121561268f57600080fd5b8135610ad8816124eb565b6000806000606084860312156126af57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015612723576127236126fb565b500390565b60008261274557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561278a5761278a6126fb565b5060010190565b600082198211156127a4576127a46126fb565b500190565b6000602082840312156127bb57600080fd5b8151610ad8816124eb565b600181815b808511156128015781600019048211156127e7576127e76126fb565b808516156127f457918102915b93841c93908002906127cb565b509250929050565b60008261281857506001610917565b8161282557506000610917565b816001811461283b576002811461284557612861565b6001915050610917565b60ff841115612856576128566126fb565b50506001821b610917565b5060208310610133831016604e8410600b8410161715612884575081810a610917565b61288e83836127c6565b80600019048211156128a2576128a26126fb565b029392505050565b6000610ad860ff841683612809565b60008160001904831182151516156128d3576128d36126fb565b500290565b6000602082840312156128ea57600080fd5b8151610ad8816124d6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129455784516001600160a01b031683529383019391830191600101612920565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561297b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201764eccd0ab997691b52ccdb628cff56f0858e338af8f536acb8e9823881b87764736f6c634300080c0033
Deployed Bytecode Sourcemap
3190:15939:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18453:100;;;;;;;;;;-1:-1:-1;18453:100:0;;;;;:::i;:::-;;:::i;:::-;;5676:83;;;;;;;;;;-1:-1:-1;5746:5:0;;;;;;;;;;;;-1:-1:-1;;;5746:5:0;;;;5676:83;;;;;;;:::i;:::-;;;;;;;;6584:161;;;;;;;;;;-1:-1:-1;6584:161:0;;;;;:::i;:::-;;:::i;:::-;;;1747:14:1;;1740:22;1722:41;;1710:2;1695:18;6584:161:0;1582:187:1;5949:95:0;;;;;;;;;;-1:-1:-1;6029:7:0;;5949:95;;;1920:25:1;;;1908:2;1893:18;5949:95:0;1774:177:1;6753:422:0;;;;;;;;;;-1:-1:-1;6753:422:0;;;;;:::i;:::-;;:::i;17461:170::-;;;;;;;;;;;;;:::i;8384:248::-;;;;;;;;;;-1:-1:-1;8384:248:0;;;;;:::i;:::-;;:::i;5858:83::-;;;;;;;;;;-1:-1:-1;5858:83:0;;3849:1;2744:36:1;;2732:2;2717:18;5858:83:0;2602:184:1;8981:475:0;;;;;;;;;;-1:-1:-1;8981:475:0;;;;;:::i;:::-;;:::i;7183:215::-;;;;;;;;;;-1:-1:-1;7183:215:0;;;;;:::i;:::-;;:::i;3579:38::-;;;;;;;;;;-1:-1:-1;3579:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18266:179;;;;;;;;;;-1:-1:-1;18266:179:0;;;;;:::i;:::-;;:::i;9466:111::-;;;;;;;;;;-1:-1:-1;9466:111:0;;;;;:::i;:::-;;:::i;18625:196::-;;;;;;;;;;-1:-1:-1;18625:196:0;;;;;:::i;:::-;;:::i;4248:71::-;;;;;;;;;;-1:-1:-1;4248:71:0;;;;-1:-1:-1;;;;;4248:71:0;;;;;;-1:-1:-1;;;;;3600:32:1;;;3582:51;;3570:2;3555:18;4248:71:0;3436:203:1;7919:457:0;;;;;;;;;;-1:-1:-1;7919:457:0;;;;;:::i;:::-;;:::i;18930:154::-;;;;;;;;;;-1:-1:-1;18930:154: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;17891:116;;;;;;;;;;-1:-1:-1;17891:116:0;;;;;:::i;:::-;;:::i;3666:23::-;;;;;;;;;;-1:-1:-1;3666:23:0;;;;;;;;6052:198;;;;;;;;;;-1:-1:-1;6052:198:0;;;;;:::i;:::-;;:::i;1967:94::-;;;;;;;;;;;;;:::i;4533:33::-;;;;;;;;;;-1:-1:-1;4533:33:0;;;;;;;;;;;;;;;;4160:25:1;;;4216:2;4201:18;;4194:34;;;;4244:18;;;4237:34;4148:2;4133:18;4533:33:0;3958:319:1;4166:75:0;;;;;;;;;;-1:-1:-1;4166:75:0;;;;-1:-1:-1;;;;;4166:75:0;;;7791:120;;;;;;;;;;-1:-1:-1;7791:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7883:20:0;7859:4;7883:20;;;:11;:20;;;;;;;;;7791:120;4098:55;;;;;;;;;;;;;;;;1744:87;;;;;;;;;;-1:-1:-1;1790:7:0;1817:6;-1:-1:-1;;;;;1817:6:0;1744:87;;18153:101;;;;;;;;;;-1:-1:-1;18153:101:0;;;;;:::i;:::-;;:::i;5765:87::-;;;;;;;;;;-1:-1:-1;5837:7:0;;;;;;;;;;;;-1:-1:-1;;;5837:7:0;;;;5765:87;;4691:36;;;;;;;;;;-1:-1:-1;4691:36:0;;;;;;;;;;;;7406:377;;;;;;;;;;-1:-1:-1;7406:377:0;;;;;:::i;:::-;;:::i;3786:19::-;;;;;;;;;;-1:-1:-1;3786:19:0;;;;-1:-1:-1;;;;;3786:19:0;;;6258:167;;;;;;;;;;-1:-1:-1;6258:167:0;;;;;:::i;:::-;;:::i;17639:128::-;;;;;;;;;;-1:-1:-1;17639:128:0;;;;;:::i;:::-;;:::i;3696:25::-;;;;;;;;;;-1:-1:-1;3696:25:0;;;;;;;;;;;17775:108;;;;;;;;;;-1:-1:-1;17775:108:0;;;;;:::i;:::-;;:::i;18015:130::-;;;;;;;;;;-1:-1:-1;18015:130:0;;;;;:::i;:::-;;:::i;6433:143::-;;;;;;;;;;-1:-1:-1;6433:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6541:18:0;;;6514:7;6541:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6433:143;4032:59;;;;;;;;;;;;;;;;9836:151;;;;;;;;;;-1:-1:-1;9836:151:0;;;;;:::i;:::-;;:::i;9585:110::-;;;;;;;;;;-1:-1:-1;9585:110:0;;;;;:::i;:::-;;:::i;2069:192::-;;;;;;;;;;-1:-1:-1;2069:192:0;;;;;:::i;:::-;;:::i;3758:21::-;;;;;;;;;;-1:-1:-1;3758:21:0;;;;;;;-1:-1:-1;;;;;3758:21:0;;;18453:100;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18526:11:0;;;::::1;;::::0;;;:5:::1;:11;::::0;;;;:19;;-1:-1:-1;;18526:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18453:100::o;6584:161::-;6659:4;6676:39;1245:10;6699:7;6708:6;6676:8;:39::i;:::-;-1:-1:-1;6733:4:0;6584:161;;;;;:::o;6753:422::-;6859:4;6876:36;6886:6;6894:9;6905:6;6876:9;:36::i;:::-;-1:-1:-1;;;;;;6952:19:0;;6925:24;6952:19;;;:11;:19;;;;;;;;1245:10;6952:33;;;;;;;;7004:26;;;;6996:79;;;;-1:-1:-1;;;6996:79:0;;5635:2:1;6996:79:0;;;5617:21:1;5674:2;5654:18;;;5647:30;5713:34;5693:18;;;5686:62;-1:-1:-1;;;5764:18:1;;;5757:38;5812:19;;6996:79:0;5433:404:1;6996:79:0;7086:57;7095:6;1245:10;7117:25;7136:6;7117:16;:25;:::i;:::-;7086:8;:57::i;:::-;-1:-1:-1;7163:4:0;;6753:422;-1:-1:-1;;;;6753:422:0:o;17461:170::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17523:13:::1;::::0;::::1;::::0;::::1;;;17522:14;17514:49;;;::::0;-1:-1:-1;;;17514:49:0;;6306:2:1;17514:49:0::1;::::0;::::1;6288:21:1::0;6345:2;6325:18;;;6318:30;-1:-1:-1;;;6364:18:1;;;6357:52;6426:18;;17514:49:0::1;6104:346:1::0;17514:49:0::1;17574:13;:20:::0;;-1:-1:-1;;17605:18:0;;;;;17461:170::o;8384:248::-;8450:7;8489;;8478;:18;;8470:73;;;;-1:-1:-1;;;8470:73:0;;6657:2:1;8470:73:0;;;6639:21:1;6696:2;6676:18;;;6669:30;6735:34;6715:18;;;6708:62;-1:-1:-1;;;6786:18:1;;;6779:40;6836:19;;8470:73:0;6455: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;:::-;8598:26;8384:248;-1:-1:-1;;;8384:248:0:o;8981:475::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871: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;;7290:2:1;9055:56:0::1;::::0;::::1;7272:21:1::0;7329:2;7309:18;;;7302:30;7368:25;7348:18;;;7341:53;7411:18;;9055:56:0::1;7088: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;7183:215::-;1245:10;7271:4;7320:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7320:34:0;;;;;;;;;;7271:4;;7288:80;;7311:7;;7320:47;;7357:10;;7320:47;:::i;18266:179::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18385:6:::1;:27:::0;;-1:-1:-1;;;;;;18385:27:0::1;::::0;-1:-1:-1;;;;;18385:27:0;;::::1;;;::::0;;18423:4:::1;:14:::0;;-1:-1:-1;;;;;;18423:14:0::1;::::0;;;::::1;;::::0;;18266:179::o;9466:111::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871: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;18625:196::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18725:9:::1;18700:21;:34;;18692:71;;;::::0;-1:-1:-1;;;18692:71:0;;8179:2:1;18692:71:0::1;::::0;::::1;8161:21:1::0;8218:2;8198:18;;;8191:30;8257:26;8237:18;;;8230:54;8301:18;;18692:71:0::1;7977:348:1::0;18692:71:0::1;18774:39;::::0;18782:10:::1;::::0;18774:39;::::1;;;::::0;18803:9;;18774:39:::1;::::0;;;18803:9;18782:10;18774:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;7919:457:::0;8009:7;8048;;8037;:18;;8029:62;;;;-1:-1:-1;;;8029:62:0;;8532:2:1;8029:62:0;;;8514:21:1;8571:2;8551:18;;;8544:30;8610:33;8590:18;;;8583:61;8661:18;;8029:62:0;8330:355:1;8029:62:0;8107:17;8102:267;;8141:28;8172:26;8183:7;8192:5;8172:10;:26::i;:::-;8220:9;;-1:-1:-1;8213:16:0;;-1:-1:-1;8213:16:0;8102:267;8262:28;8293:25;8304:7;8313:4;8293:10;:25::i;:::-;8340:17;;;;-1:-1:-1;8333:24:0;;-1:-1:-1;8333:24:0;18930:154;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;19035:41:::1;::::0;-1:-1:-1;;;19035:41:0;;-1:-1:-1;;;;;8882:32:1;;;19035:41:0::1;::::0;::::1;8864:51:1::0;8931:18;;;8924:34;;;19035:27:0;::::1;::::0;::::1;::::0;8837:18:1;;19035:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18930:154:::0;;;:::o;8640:333::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871: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;;9421:2:1;8714:61:0::1;::::0;::::1;9403:21:1::0;9460:2;9440:18;;;9433:30;9499:29;9479:18;;;9472:57;9546:18;;8714:61:0::1;9219: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;17891:116::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17986:13:::1;3849:1;17986:2;:13;:::i;:::-;17977:22;::::0;:6;:22:::1;:::i;:::-;17963:11;:36:::0;-1:-1:-1;17891:116:0:o;6052:198::-;-1:-1:-1;;;;;6142:20:0;;6118:7;6142:20;;;:11;:20;;;;;;;;6138:49;;;-1:-1:-1;;;;;;6171:16:0;;;;;:7;:16;;;;;;;6052:198::o;6138:49::-;-1:-1:-1;;;;;6225:16:0;;;;;;:7;:16;;;;;;6205:37;;:19;:37::i;1967:94::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;2032:21:::1;2050:1;2032:9;:21::i;:::-;1967:94::o:0;18153:101::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18224:11:::1;:22:::0;;-1:-1:-1;;18224:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18153:101::o;7406:377::-;1245:10;7499:4;7543:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7543:34:0;;;;;;;;;;7596:35;;;;7588:85;;;;-1:-1:-1;;;7588:85:0;;11333:2:1;7588:85:0;;;11315:21:1;11372:2;11352:18;;;11345:30;11411:34;11391:18;;;11384:62;-1:-1:-1;;;11462:18:1;;;11455:35;11507:19;;7588:85:0;11131:401:1;7588:85:0;7684:67;1245:10;7707:7;7716:34;7735:15;7716:16;:34;:::i;7684:67::-;-1:-1:-1;7771:4:0;;7406:377;-1:-1:-1;;;7406:377:0:o;6258:167::-;6336:4;6353:42;1245:10;6377:9;6388:6;6353:9;:42::i;17639:128::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17725:15:::1;:34:::0;;-1:-1:-1;;;;;;17725:34:0::1;-1:-1:-1::0;;;;;17725:34:0;;;::::1;::::0;;;::::1;::::0;;17639:128::o;17775:108::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;17851:11:::1;:24:::0;;-1:-1:-1;;;;;;17851:24:0::1;-1:-1:-1::0;;;;;17851:24:0;;;::::1;::::0;;;::::1;::::0;;17775:108::o;18015:130::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;18124:13:::1;3849:1;18124:2;:13;:::i;:::-;18115:22;::::0;:6;:22:::1;:::i;:::-;18094:18;:43:::0;-1:-1:-1;18015:130:0:o;9836:151::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;9944:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;9936:5:::1;:43:::0;;;;;;;;9836:151::o;9585:110::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871: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;2069:192::-;1790:7;1817:6;-1:-1:-1;;;;;1817:6:0;1245:10;1879:23;1871:68;;;;-1:-1:-1;;;1871:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2158:22:0;::::1;2150:73;;;::::0;-1:-1:-1;;;2150:73:0;;11739:2:1;2150:73:0::1;::::0;::::1;11721:21:1::0;11778:2;11758:18;;;11751:30;11817:34;11797:18;;;11790:62;-1:-1:-1;;;11868:18:1;;;11861:36;11914:19;;2150:73:0::1;11537:402:1::0;2150:73:0::1;2234:19;2244:8;2234:9;:19::i;:::-;2069:192:::0;:::o;12891:335::-;-1:-1:-1;;;;;12984:19:0;;12976:68;;;;-1:-1:-1;;;12976:68:0;;12146:2:1;12976:68:0;;;12128:21:1;12185:2;12165:18;;;12158:30;12224:34;12204:18;;;12197:62;-1:-1:-1;;;12275:18:1;;;12268:34;12319:19;;12976:68:0;11944:400:1;12976:68:0;-1:-1:-1;;;;;13063:21:0;;13055:68;;;;-1:-1:-1;;;13055:68:0;;12551:2:1;13055:68:0;;;12533:21:1;12590:2;12570:18;;;12563:30;12629:34;12609:18;;;12602:62;-1:-1:-1;;;12680:18:1;;;12673:32;12722:19;;13055:68:0;12349:398:1;13055:68:0;-1:-1:-1;;;;;13134:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13186:32;;1920:25:1;;;13186:32:0;;1893:18:1;13186:32:0;;;;;;;12891:335;;;:::o;13236:1023::-;13313:4;-1:-1:-1;;;;;13337:18:0;;13329:68;;;;-1:-1:-1;;;13329:68:0;;12954:2:1;13329:68:0;;;12936:21:1;12993:2;12973:18;;;12966:30;13032:34;13012:18;;;13005:62;-1:-1:-1;;;13083:18:1;;;13076:35;13128:19;;13329:68:0;12752:401:1;13329:68:0;-1:-1:-1;;;;;13416:16:0;;13408:64;;;;-1:-1:-1;;;13408:64:0;;13360:2:1;13408:64:0;;;13342:21:1;13399:2;13379:18;;;13372:30;13438:34;13418:18;;;13411:62;-1:-1:-1;;;13489:18:1;;;13482:33;13532:19;;13408:64:0;13158:399:1;13408:64:0;13500:1;13491:6;:10;13483:64;;;;-1:-1:-1;;;13483:64:0;;13764:2:1;13483:64:0;;;13746:21:1;13803:2;13783:18;;;13776:30;13842:34;13822:18;;;13815:62;-1:-1:-1;;;13893:18:1;;;13886:39;13942:19;;13483:64:0;13562:405:1;13483:64:0;13576:15;13586:4;13576:9;:15::i;:::-;13566:6;:25;;13558:86;;;;-1:-1:-1;;;13558:86:0;;14174:2:1;13558:86:0;;;14156:21:1;14213:2;14193:18;;;14186:30;14252:34;14232:18;;;14225:62;-1:-1:-1;;;14303:18:1;;;14296:47;14360:19;;13558:86:0;13972:413:1;13558:86:0;-1:-1:-1;;;;;13664:11:0;;;;;;:5;:11;;;;;;;;13663:12;:26;;;;-1:-1:-1;;;;;;13680:9:0;;;;;;:5;:9;;;;;;;;13679:10;13663:26;13655:58;;;;-1:-1:-1;;;13655:58:0;;14592:2:1;13655:58:0;;;14574:21:1;14631:2;14611:18;;;14604:30;-1:-1:-1;;;14650:18:1;;;14643:49;14709:18;;13655:58:0;14390:343:1;13655:58:0;-1:-1:-1;;;;;13730:24:0;;;;;;:18;:24;;;;;;;;13729:25;:52;;;;-1:-1:-1;;;;;;13759:22:0;;;;;;:18;:22;;;;;;;;13758:23;13729:52;13726:148;;;13815:11;;13805:6;:21;;13797:65;;;;-1:-1:-1;;;13797:65:0;;14940:2:1;13797:65:0;;;14922:21:1;14979:2;14959:18;;;14952:30;15018:33;14998:18;;;14991:61;15069:18;;13797:65:0;14738:355:1;13797:65:0;13886:12;13929:18;;13901:24;13919:4;13901:9;:24::i;:::-;13962:8;;-1:-1:-1;;13901:46:0;;-1:-1:-1;13962:8:0;;;;;13961:9;:24;;;;-1:-1:-1;13974:11:0;;;;13961:24;:35;;;;;13989:7;13961:35;:51;;;;-1:-1:-1;14008:4:0;;-1:-1:-1;;;;;14000:12:0;;;14008:4;;14000:12;;13961:51;:80;;;;-1:-1:-1;;;;;;14017:24:0;;;;;;:18;:24;;;;;;;;14016:25;13961:80;:107;;;;-1:-1:-1;;;;;;14046:22:0;;;;;;:18;:22;;;;;;;;14045:23;13961:107;13958:172;;;14084:34;14099:18;;14084:14;:34::i;:::-;-1:-1:-1;;;;;14177:24:0;;;;;;:18;:24;;;;;;14142:87;;14157:4;;14163:2;;14167:6;;14177:24;;;:50;;-1:-1:-1;;;;;;14205:22:0;;;;;;:18;:22;;;;;;;;14177:50;14175:53;14142:14;:87::i;12177:158::-;12218:7;12239:15;12256;12275:19;:17;:19::i;:::-;12238:56;;-1:-1:-1;12238:56:0;-1:-1:-1;12312:15:0;12238:56;;12312:15;:::i;:::-;12305:22;;;;12177:158;:::o;10714:370::-;10787:36;;:::i;:::-;10848:29;10860:7;10869;10848:11;:29::i;:::-;10836:41;;10997:52;11009:9;11020:7;11029;11038:10;:8;:10::i;:::-;10997:11;:52::i;:::-;10973:20;;;10888:161;10951:20;;;10888:161;10935:14;;;10888:161;10908:25;;;10888:161;;;10714:370;;;;:::o;2269:173::-;2325:16;2344:6;;-1:-1:-1;;;;;2361:17:0;;;-1:-1:-1;;;;;;2361:17:0;;;;;;2394:40;;2344:6;;;;;;;2394:40;;2325:16;2394:40;2314:128;2269:173;:::o;15375:1001::-;5048:8;:15;;-1:-1:-1;;5048:15:0;;;;;15536;;15518;;5048;;15518:33:::1;::::0;::::1;:::i;:::-;15517:40;::::0;15556:1:::1;15517:40;:::i;:::-;15495:62;;15568:32;15630:11;15612:5;:15;;;15603:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;15568:73:::0;-1:-1:-1;15652:14:0::1;15669:33;15568:73:::0;15669:6;:33:::1;:::i;:::-;15652:50:::0;-1:-1:-1;15740:21:0::1;15774:24;15652:50:::0;15774:16:::1;:24::i;:::-;15811:20;15834:38;15858:14:::0;15834:21:::1;:38;:::i;:::-;15934:15:::0;;15811:61;;-1:-1:-1;15883:19:0::1;::::0;15920:29:::1;::::0;:11;:29:::1;:::i;:::-;15904:46;::::0;:12;:46:::1;:::i;:::-;16007:15:::0;;15883:67;;-1:-1:-1;15961:29:0::1;::::0;15993::::1;::::0;15883:67;15993:29:::1;:::i;:::-;15961:61:::0;-1:-1:-1;16038:25:0;;16035:158:::1;;16120:61;16133:24;16159:21;16120:12;:61::i;:::-;16246:15:::0;;16205:20:::1;::::0;16228:15:::1;:11:::0;16242:1:::1;16228:15;:::i;:::-;:33;;;;:::i;:::-;16205:56:::0;-1:-1:-1;16275:16:0;;16272:95:::1;;16315:15;::::0;16307:48:::1;::::0;-1:-1:-1;;;;;16315:15:0::1;16342:12:::0;16307:34:::1;:48::i;:::-;-1:-1:-1::0;;5086:8:0;:16;;-1:-1:-1;;5086:16:0;;;-1:-1:-1;;;;;;;15375:1001:0:o;14342:1025::-;14451:28;14482;14493:7;14502;14482:10;:28::i;:::-;-1:-1:-1;;;;;14527:19:0;;;;;;:11;:19;;;;;;14451:59;;-1:-1:-1;14527:19:0;;14523:115;;;-1:-1:-1;;;;;14603:15:0;;;;;;:7;:15;;;;;;:23;;14619:7;;14603:23;:::i;:::-;-1:-1:-1;;;;;14585:15:0;;;;;;:7;:15;;;;;:41;14523:115;-1:-1:-1;;;;;14652:22:0;;;;;;:11;:22;;;;;;;;14648:130;;;14749:17;;;;-1:-1:-1;;;;;14730:18:0;;;;;;:7;:18;;;;;;:36;;14749:17;14730:36;:::i;:::-;-1:-1:-1;;;;;14709:18:0;;;;;;:7;:18;;;;;:57;14648:130;14824:9;;-1:-1:-1;;;;;14808:15:0;;14824:9;14808:15;;;:7;:15;;;;;;:25;;14824:9;14808:25;:::i;:::-;-1:-1:-1;;;;;14790:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;14884:17;;;14865:18;;;;;;;;;;:36;;14884:17;14865:36;:::i;:::-;-1:-1:-1;;;;;14844:18:0;;;;;;:7;:18;;;;;;;:57;;;;14925:6;;;:10;;;:24;;;14948:1;14939;:6;;;:10;14925:24;14922:56;;;14951:27;14963:1;:6;;;14971:1;:6;;;14951:11;:27::i;:::-;15007:1;14992;:12;;;:16;:36;;;;15027:1;15012;:12;;;:16;14992:36;14989:82;;;15030:41;15045:1;:12;;;15058:1;:12;;;15030:14;:41::i;:::-;15100:1;15085;:12;;;:16;:36;;;;15120:1;15105;:12;;;:16;15085:36;15082:83;;;15123:42;15138:1;:12;;;15152:1;:12;;;15123:14;:42::i;:::-;15208:9;-1:-1:-1;;;;;15191:46:0;15200:6;-1:-1:-1;;;;;15191:46:0;;15219:1;:17;;;15191:46;;;;1920:25:1;;1908:2;1893:18;;1774:177;15191:46:0;;;;;;;;15281:1;15266;:12;;;15251:1;:12;;;:27;;;;:::i;:::-;:31;15248:101;;;15314:4;-1:-1:-1;;;;;15289:60:0;15298:6;-1:-1:-1;;;;;15289:60:0;;15336:1;:12;;;15321:1;:12;;;:27;;;;:::i;:::-;15289:60;;1920:25:1;;;1908:2;1893:18;15289:60:0;;;;;;;15248:101;14440:927;14342:1025;;;;:::o;12343:540::-;12440:7;;12476;;12393;;;;;12494:279;12518:9;:16;12514:20;;12494:279;;;12584:7;12560;:21;12568:9;12578:1;12568:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12568:12:0;12560:21;;;;;;;;;;;;;:31;;:66;;;12619:7;12595;:21;12603:9;12613:1;12603:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12603:12:0;12595:21;;;;;;;;;;;;;:31;12560:66;12556:97;;;12636:7;;12645;;12628:25;;;;;;;12343:540;;:::o;12556:97::-;12686:7;:21;12694:9;12704:1;12694:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12694:12:0;12686:21;;;;;;;;;;;;;12678:29;;:7;:29;:::i;:::-;12668:39;;12740:7;:21;12748:9;12758:1;12748:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12748:12:0;12740:21;;;;;;;;;;;;;12732:29;;:7;:29;:::i;:::-;12722:39;-1:-1:-1;12536:3:0;;;;:::i;:::-;;;;12494:279;;;;12805:7;;12797;;:15;;;;:::i;:::-;12787:7;:25;12783:56;;;12822:7;;12831;;12814:25;;;;;;12343:540;;:::o;12783:56::-;12858:7;;12867;;-1:-1:-1;12343:540:0;-1:-1:-1;12343:540:0:o;11092:449::-;11166:28;;:::i;:::-;11213:7;11209:86;;11235:17;;;:27;;;11275:8;;11209:86;11324:5;:9;11334:3;;11316:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;11307:6;;;:30;11371:15;;11387:3;;11363:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;11348:12;;;:42;11424:15;;11440:3;;11416:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;11401:12;;;:42;;;11489:12;;;;11482:6;;;;11474:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;11454:17;;;:60;11092:449;;;;:::o;11549:620::-;11674:15;;;;;11791:19;11799:11;11791:7;:19;:::i;:::-;11781:29;;11827:7;11823:69;;-1:-1:-1;11856:7:0;;-1:-1:-1;11874:1:0;;-1:-1:-1;11874:1:0;;-1:-1:-1;11874:1:0;11849:31;;11823:69;11918:11;11911:1;:6;;;:18;;;;:::i;:::-;11904:25;;11966:11;11953:1;:12;;;:24;;;;:::i;:::-;11940:37;;12014:11;12001:1;:12;;;:24;;;;:::i;:::-;11988:37;-1:-1:-1;11988:37:0;12068:10;12055:12;12063:4;12055:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;12036:53;;11549:620;;;;;;;;;;:::o;16891:562::-;17041:16;;;17055:1;17041:16;;;;;;;;17017:21;;17041:16;;;;;;;;;;-1:-1:-1;17041:16:0;17017:40;;17086:4;17068;17073:1;17068:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17068:23:0;;;-1:-1:-1;;;;;17068:23:0;;;;;17112:6;;;;;;;;;-1:-1:-1;;;;;17112:6:0;-1:-1:-1;;;;;17112:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17102:4;17107:1;17102:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17102:23:0;;;:7;;;;;;;;;:23;17170:6;;17138:53;;17155:4;;17170:6;;;;17179:11;17138:8;:53::i;:::-;17230:6;;:215;;-1:-1:-1;;;17230:215:0;;:6;;;;-1:-1:-1;;;;;17230:6:0;;:57;;:215;;17302:11;;17328:1;;17372:4;;17399;;17419:15;;17230:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16946:507;16891:562;:::o;16384:499::-;16564:6;;16532:53;;16549:4;;16564:6;;;-1:-1:-1;;;;;16564:6:0;16573:11;16532:8;:53::i;:::-;16628:6;;16823:11;;16628:247;;-1:-1:-1;;;16628:247:0;;16691:4;16628:247;;;16812:34:1;16862:18;;;16855:34;;;16737:1:0;16905:18:1;;;16898:34;;;16948:18;;;16941:34;-1:-1:-1;;;;;16823:11:0;;;16991:19:1;;;16984:44;16849:15:0;17044:19:1;;;17037:35;16628:6:0;;;;;;:22;;16658:9;;16746:19:1;;16628:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;808:317::-;923:6;898:21;:31;;890:73;;;;-1:-1:-1;;;890:73:0;;17596:2:1;890:73:0;;;17578:21:1;17635:2;17615:18;;;17608:30;17674:31;17654:18;;;17647:59;17723:18;;890:73:0;17394:353:1;890:73:0;977:12;995:9;-1:-1:-1;;;;;995:14:0;1017:6;995:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:52;;;1047:7;1039:78;;;;-1:-1:-1;;;1039:78:0;;18164:2:1;1039:78:0;;;18146:21:1;18203:2;18183:18;;;18176:30;18242:34;18222:18;;;18215:62;18313:28;18293:18;;;18286:56;18359:19;;1039:78:0;17962:422:1;1039:78:0;879:246;808:317;;:::o;9995:123::-;10073:4;10063:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10088:11:0;:22;;10106:4;;10088:11;:15;;:22;;10106:4;;10088:22;:::i;:::-;;;;-1:-1:-1;;;;9995:123:0:o;10126:284::-;10233:10;10209:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10279:4:0;10259:26;;;;:11;:26;;;;;;;;10256:101;;;10327:4;10311:22;;;;:7;:22;;;;;:34;;10335:10;;10311:22;:34;;10335:10;;10311:34;:::i;:::-;;;;-1:-1:-1;;10256:101:0;10383:4;10367:22;;;;:7;:22;;;;;:35;;10392:10;;10367:22;:35;;10392:10;;10367:35;:::i;10418:284::-;10525:10;10501:11;:21;;;:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:118;236:5;229:13;222:21;215:5;212:32;202:60;;258:1;255;248:12;273:382;338:6;346;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;454:9;441:23;473:31;498:5;473:31;:::i;:::-;523:5;-1:-1:-1;580:2:1;565:18;;552:32;593:30;552:32;593:30;:::i;:::-;642:7;632:17;;;273:382;;;;;:::o;660:597::-;772:4;801:2;830;819:9;812:21;862:6;856:13;905:6;900:2;889:9;885:18;878:34;930:1;940:140;954:6;951:1;948:13;940:140;;;1049:14;;;1045:23;;1039:30;1015:17;;;1034:2;1011:26;1004:66;969:10;;940:140;;;1098:6;1095:1;1092:13;1089:91;;;1168:1;1163:2;1154:6;1143:9;1139:22;1135:31;1128:42;1089:91;-1:-1:-1;1241:2:1;1220:15;-1:-1:-1;;1216:29:1;1201:45;;;;1248:2;1197:54;;660:597;-1:-1:-1;;;660:597:1:o;1262:315::-;1330:6;1338;1391:2;1379:9;1370:7;1366:23;1362:32;1359:52;;;1407:1;1404;1397:12;1359:52;1446:9;1433:23;1465:31;1490:5;1465:31;:::i;:::-;1515:5;1567:2;1552:18;;;;1539:32;;-1:-1:-1;;;1262:315:1:o;1956:456::-;2033:6;2041;2049;2102:2;2090:9;2081:7;2077:23;2073:32;2070:52;;;2118:1;2115;2108:12;2070:52;2157:9;2144:23;2176:31;2201:5;2176:31;:::i;:::-;2226:5;-1:-1:-1;2283:2:1;2268:18;;2255:32;2296:33;2255:32;2296:33;:::i;:::-;1956:456;;2348:7;;-1:-1:-1;;;2402:2:1;2387:18;;;;2374:32;;1956:456::o;2417:180::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;-1:-1:-1;2568:23:1;;2417:180;-1:-1:-1;2417:180:1:o;2791:247::-;2850:6;2903:2;2891:9;2882:7;2878:23;2874:32;2871:52;;;2919:1;2916;2909:12;2871:52;2958:9;2945:23;2977:31;3002:5;2977:31;:::i;3043:388::-;3111:6;3119;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;3227:9;3214:23;3246:31;3271:5;3246:31;:::i;:::-;3296:5;-1:-1:-1;3353:2:1;3338:18;;3325:32;3366:33;3325:32;3366:33;:::i;3644:309::-;3709:6;3717;3770:2;3758:9;3749:7;3745:23;3741:32;3738:52;;;3786:1;3783;3776:12;3738:52;3822:9;3809:23;3799:33;;3882:2;3871:9;3867:18;3854:32;3895:28;3917:5;3895:28;:::i;4282:241::-;4338:6;4391:2;4379:9;4370:7;4366:23;4362:32;4359:52;;;4407:1;4404;4397:12;4359:52;4446:9;4433:23;4465:28;4487:5;4465:28;:::i;4528:316::-;4605:6;4613;4621;4674:2;4662:9;4653:7;4649:23;4645:32;4642:52;;;4690:1;4687;4680:12;4642:52;-1:-1:-1;;4713:23:1;;;4783:2;4768:18;;4755:32;;-1:-1:-1;4834:2:1;4819:18;;;4806:32;;4528:316;-1:-1:-1;4528:316:1:o;5072:356::-;5274:2;5256:21;;;5293:18;;;5286:30;5352:34;5347:2;5332:18;;5325:62;5419:2;5404:18;;5072:356::o;5842:127::-;5903:10;5898:3;5894:20;5891:1;5884:31;5934:4;5931:1;5924:15;5958:4;5955:1;5948:15;5974:125;6014:4;6042:1;6039;6036:8;6033:34;;;6047:18;;:::i;:::-;-1:-1:-1;6084:9:1;;5974:125::o;6866:217::-;6906:1;6932;6922:132;;6976:10;6971:3;6967:20;6964:1;6957:31;7011:4;7008:1;7001:15;7039:4;7036:1;7029:15;6922:132;-1:-1:-1;7068:9:1;;6866:217::o;7440:127::-;7501:10;7496:3;7492:20;7489:1;7482:31;7532:4;7529:1;7522:15;7556:4;7553:1;7546:15;7572:127;7633:10;7628:3;7624:20;7621:1;7614:31;7664:4;7661:1;7654:15;7688:4;7685:1;7678:15;7704:135;7743:3;-1:-1:-1;;7764:17:1;;7761:43;;;7784:18;;:::i;:::-;-1:-1:-1;7831:1:1;7820:13;;7704:135::o;7844:128::-;7884:3;7915:1;7911:6;7908:1;7905:13;7902:39;;;7921:18;;:::i;:::-;-1:-1:-1;7957:9:1;;7844:128::o;8969:245::-;9036:6;9089:2;9077:9;9068:7;9064:23;9060:32;9057:52;;;9105:1;9102;9095:12;9057:52;9137:9;9131:16;9156:28;9178:5;9156:28;:::i;9575:422::-;9664:1;9707:5;9664:1;9721:270;9742:7;9732:8;9729:21;9721:270;;;9801:4;9797:1;9793:6;9789:17;9783:4;9780:27;9777:53;;;9810:18;;:::i;:::-;9860:7;9850:8;9846:22;9843:55;;;9880:16;;;;9843:55;9959:22;;;;9919:15;;;;9721:270;;;9725:3;9575:422;;;;;:::o;10002:806::-;10051:5;10081:8;10071:80;;-1:-1:-1;10122:1:1;10136:5;;10071:80;10170:4;10160:76;;-1:-1:-1;10207:1:1;10221:5;;10160:76;10252:4;10270:1;10265:59;;;;10338:1;10333:130;;;;10245:218;;10265:59;10295:1;10286:10;;10309:5;;;10333:130;10370:3;10360:8;10357:17;10354:43;;;10377:18;;:::i;:::-;-1:-1:-1;;10433:1:1;10419:16;;10448:5;;10245:218;;10547:2;10537:8;10534:16;10528:3;10522:4;10519:13;10515:36;10509:2;10499:8;10496:16;10491:2;10485:4;10482:12;10478:35;10475:77;10472:159;;;-1:-1:-1;10584:19:1;;;10616:5;;10472:159;10663:34;10688:8;10682:4;10663:34;:::i;:::-;10733:6;10729:1;10725:6;10721:19;10712:7;10709:32;10706:58;;;10744:18;;:::i;:::-;10782:20;;10002:806;-1:-1:-1;;;10002:806:1:o;10813:140::-;10871:5;10900:47;10941:4;10931:8;10927:19;10921:4;10900:47;:::i;10958:168::-;10998:7;11064:1;11060;11056:6;11052:14;11049:1;11046:21;11041:1;11034:9;11027:17;11023:45;11020:71;;;11071:18;;:::i;:::-;-1:-1:-1;11111:9:1;;10958:168::o;15230:251::-;15300:6;15353:2;15341:9;15332:7;15328:23;15324:32;15321:52;;;15369:1;15366;15359:12;15321:52;15401:9;15395:16;15420:31;15445:5;15420:31;:::i;15486:980::-;15748:4;15796:3;15785:9;15781:19;15827:6;15816:9;15809:25;15853:2;15891:6;15886:2;15875:9;15871:18;15864:34;15934:3;15929:2;15918:9;15914:18;15907:31;15958:6;15993;15987:13;16024:6;16016;16009:22;16062:3;16051:9;16047:19;16040:26;;16101:2;16093:6;16089:15;16075:29;;16122:1;16132:195;16146:6;16143:1;16140:13;16132:195;;;16211:13;;-1:-1:-1;;;;;16207:39:1;16195:52;;16302:15;;;;16267:12;;;;16243:1;16161:9;16132:195;;;-1:-1:-1;;;;;;;16383:32:1;;;;16378:2;16363:18;;16356:60;-1:-1:-1;;;16447:3:1;16432:19;16425:35;16344:3;15486:980;-1:-1:-1;;;15486:980:1:o;17083:306::-;17171:6;17179;17187;17240:2;17228:9;17219:7;17215:23;17211:32;17208:52;;;17256:1;17253;17246:12;17208:52;17285:9;17279:16;17269:26;;17335:2;17324:9;17320:18;17314:25;17304:35;;17379:2;17368:9;17364:18;17358:25;17348:35;;17083:306;;;;;:::o
Swarm Source
ipfs://1764eccd0ab997691b52ccdb628cff56f0858e338af8f536acb8e9823881b877
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.