More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 818 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21049598 | 7 days ago | IN | 0 ETH | 0.0002531 | ||||
Transfer | 20200798 | 125 days ago | IN | 0 ETH | 0.000225 | ||||
Transfer | 20200765 | 125 days ago | IN | 0 ETH | 0.00020617 | ||||
Transfer | 20200534 | 125 days ago | IN | 0 ETH | 0.00020476 | ||||
Approve | 19629467 | 205 days ago | IN | 0 ETH | 0.0006361 | ||||
Approve | 18471389 | 367 days ago | IN | 0 ETH | 0.00075829 | ||||
Approve | 18469508 | 368 days ago | IN | 0 ETH | 0.000416 | ||||
Approve | 17732546 | 471 days ago | IN | 0 ETH | 0.00071501 | ||||
Transfer | 17553432 | 496 days ago | IN | 0 ETH | 0.00146704 | ||||
Approve | 17553380 | 496 days ago | IN | 0 ETH | 0.00031028 | ||||
Transfer | 17553360 | 496 days ago | IN | 0 ETH | 0.00152929 | ||||
Approve | 17553355 | 496 days ago | IN | 0 ETH | 0.00063843 | ||||
Approve | 17464694 | 509 days ago | IN | 0 ETH | 0.00106043 | ||||
Approve | 17381503 | 520 days ago | IN | 0 ETH | 0.00154417 | ||||
Approve | 17381494 | 520 days ago | IN | 0 ETH | 0.00169023 | ||||
Transfer | 17381487 | 520 days ago | IN | 0 ETH | 0.00374622 | ||||
Transfer | 17381479 | 520 days ago | IN | 0 ETH | 0.00396467 | ||||
Approve | 17365945 | 522 days ago | IN | 0 ETH | 0.00198322 | ||||
Approve | 17303357 | 531 days ago | IN | 0 ETH | 0.00088723 | ||||
Approve | 17275131 | 535 days ago | IN | 0 ETH | 0.00351187 | ||||
Approve | 17272429 | 536 days ago | IN | 0 ETH | 0.00306545 | ||||
Transfer | 17272405 | 536 days ago | IN | 0 ETH | 0.00509627 | ||||
Transfer | 17271764 | 536 days ago | IN | 0 ETH | 0.00570192 | ||||
Transfer | 17271759 | 536 days ago | IN | 0 ETH | 0.00151828 | ||||
Approve | 17271293 | 536 days ago | IN | 0 ETH | 0.00196112 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17261147 | 537 days ago | 0.04501853 ETH | ||||
17261147 | 537 days ago | 0.04501853 ETH | ||||
17239624 | 540 days ago | 0.0483216 ETH | ||||
17239624 | 540 days ago | 0.0483216 ETH | ||||
17235092 | 541 days ago | 0.07507036 ETH | ||||
17235092 | 541 days ago | 0.07507036 ETH | ||||
17234199 | 541 days ago | 0.07006212 ETH | ||||
17234199 | 541 days ago | 0.07006212 ETH | ||||
17233921 | 541 days ago | 0.06916965 ETH | ||||
17233921 | 541 days ago | 0.06916965 ETH | ||||
17233691 | 541 days ago | 0.07971038 ETH | ||||
17233691 | 541 days ago | 0.07971038 ETH | ||||
17233481 | 541 days ago | 0.28453487 ETH | ||||
17233481 | 541 days ago | 0.28453487 ETH | ||||
17233340 | 541 days ago | 0.1579127 ETH | ||||
17233340 | 541 days ago | 0.1579127 ETH | ||||
17232641 | 541 days ago | 0.6529513 ETH | ||||
17232641 | 541 days ago | 0.6529513 ETH | ||||
17232571 | 541 days ago | 0.76509155 ETH | ||||
17232571 | 541 days ago | 0.76509155 ETH | ||||
17232513 | 541 days ago | 0.81170868 ETH | ||||
17232513 | 541 days ago | 0.81170868 ETH | ||||
17232484 | 541 days ago | 0.83907663 ETH | ||||
17232484 | 541 days ago | 0.83907663 ETH | ||||
17231871 | 541 days ago | 1.33269686 ETH |
Loading...
Loading
Contract Name:
YOSHI
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-09 */ /** *Submitted for verification at Etherscan.io on 2023-03-15 */ /** Telegram: https://t.me/YOSHIETH Website: https://yoshitoken.xyz/ Twitter: https://twitter.com/yoshierc20 */ // SPDX-License-Identifier: NOLICENSE pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } 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"); } } contract YOSHI 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 allowedTransfer; mapping (address => bool) private _isBlacklisted; address[] private _excluded; bool public tradingEnabled; bool public swapEnabled; bool private swapping; //Anti Dump mapping(address => uint256) private _lastSell; bool public coolDownEnabled = false; uint256 public coolDownTime = 0 seconds; modifier antiBot(address account){ require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet"); _; } IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1e8 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 800_000 * 10**9; uint256 public maxBuyLimit = 2_000_000 * 10**9; uint256 public maxSellLimit = 2_000_000 * 10**9; uint256 public maxWalletLimit = 2_000_000 * 10**9; uint256 public genesis_block; address public marketingWallet = 0x609c21AB8812f93B8416f6DCAa62EA68284D8BDC; address public donationWallet = 0x927ECe5eA87f82c98bDaC49D45894C12A6976BD3; string private constant _name = "YOSHI"; string private constant _symbol = "YOSHI"; struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 donation; } Taxes public taxes = Taxes(0, 1, 0, 1); Taxes public sellTaxes = Taxes(0, 40, 0, 40); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 liquidity; uint256 donation; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 rDonation; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; uint256 tDonation; } event FeesChanged(); event UpdatedRouter(address oldRouter, address newRouter); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor (address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[donationWallet] = true; allowedTransfer[address(this)] = true; allowedTransfer[owner()] = true; allowedTransfer[pair] = true; allowedTransfer[marketingWallet] = true; allowedTransfer[donationWallet] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: 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; } //override ERC20: 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 allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override antiBot(msg.sender) returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(sender) 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 antiBot(msg.sender) returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public antiBot(msg.sender) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool) { _transfer(msg.sender, recipient, amount); 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, true, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, false); return s.rTransferAmount; } } function setTradingStatus(bool state) external onlyOwner{ tradingEnabled = state; swapEnabled = state; if(state == true && genesis_block == 0) genesis_block = block.number; } 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, uint256 _donation) public onlyOwner { taxes = Taxes(_rfi,_marketing,_liquidity,_donation); emit FeesChanged(); } function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _donation) public onlyOwner { sellTaxes = Taxes(_rfi,_marketing,_liquidity,_donation); emit FeesChanged(); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing +=tMarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tMarketing; } _rOwned[address(this)] +=rMarketing; } function _takeDonation(uint256 rDonation, uint256 tDonation) private { totFeesPaid.donation +=tDonation; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tDonation; } _rOwned[address(this)] +=rDonation; } function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate()); (to_return.rDonation) = _getRValues2(to_return, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if(isSell) temp = sellTaxes; else temp = taxes; s.tRfi = tAmount*temp.rfi/100; s.tMarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tDonation = tAmount*temp.donation/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity-s.tDonation; return s; } function _getRValues1(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; uint256 rDonation = s.tDonation*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rLiquidity-rDonation; return (rAmount, rTransferAmount, rRfi,rMarketing,rLiquidity); } function _getRValues2(valuesFromGetValues memory s, bool takeFee, uint256 currentRate) private pure returns (uint256 rDonation) { if(!takeFee) { return(0); } rDonation = s.tDonation*currentRate; return (rDonation); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_excluded[i]]; tSupply = tSupply-_tOwned[_excluded[i]]; } if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(tradingEnabled, "Trading not active"); } if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block + 3) { require(to != pair, "Sells not allowed for first 3 blocks"); } if(from == pair && !_isExcludedFromFee[to] && !swapping){ require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){ require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if(to != pair){ require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(coolDownEnabled){ uint256 timePassed = block.timestamp - _lastSell[from]; require(timePassed >= coolDownTime, "Cooldown enabled"); _lastSell[from] = block.timestamp; } } if(balanceOf(from) - amount <= 10 * 10**decimals()) amount -= (10 * 10**decimals() + amount - balanceOf(from)); bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ if(to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes); else swapAndLiquify(swapTokensAtAmount, taxes); } bool takeFee = true; bool isSell = false; if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if(to == pair) isSell = true; _tokenTransfer(from, to, amount, takeFee, isSell); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing + s.tDonation); } if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing); if(s.rDonation > 0 || s.tDonation > 0) _takeDonation(s.rDonation, s.tDonation); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{ uint256 denominator = (temp.liquidity + temp.marketing + temp.donation) * 2; uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - temp.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * temp.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * temp.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 donationAmt = unitBalance * 2 * temp.donation; if(donationAmt > 0){ payable(donationWallet).sendValue(donationAmt); } } 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 owner(), 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 airdropTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner{ require(accounts.length == amounts.length, "Arrays must have same size"); for(uint256 i = 0; i < accounts.length; i++){ _tokenTransfer(msg.sender, accounts[i], amounts[i], false, false); } } function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isExcludedFromFee[accounts[i]] = state; } } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDonationWallet(address newWallet) external onlyOwner{ donationWallet = newWallet; } function updateCooldown(bool state, uint256 time) external onlyOwner{ coolDownTime = time * 1 seconds; coolDownEnabled = state; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function updateIsBlacklisted(address account, bool state) external onlyOwner{ _isBlacklisted[account] = state; } function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function updateAllowedTransfer(address account, bool state) external onlyOwner{ allowedTransfer[account] = state; } function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner{ maxBuyLimit = maxBuy * 10**decimals(); maxSellLimit = maxSell * 10**decimals(); } function updateMaxWalletlimit(uint256 amount) external onlyOwner{ maxWalletLimit = amount * 10**decimals(); } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } 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":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"donationWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_donation","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_donation","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setTradingStatus","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"},{"internalType":"uint256","name":"donation","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"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDonationWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","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
6080604052600b805460ff191690556000600c55620000216009600a6200099d565b62000031906305f5e10062000a5e565b600f819055620000449060001962000ab8565b620000529060001962000a80565b6010556602d79883d2000060115566071afd498d000060128190556013819055601455601680546001600160a01b031990811673609c21ab8812f93b8416f6dcaa62ea68284d8bdc179091556017805490911673927ece5ea87f82c98bdac49d45894c12a6976bd31790556040805160808082018352600080835260016020808501829052848601839052606094850182905260188390556019829055601a839055601b919091558451928301855281835260289083018190529382018190529101829052601c819055601d829055601e55601f553480156200013457600080fd5b506040516200455a3803806200455a833981016040819052620001579162000912565b6200016233620004e8565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a357600080fd5b505afa158015620001b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001de919062000912565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022757600080fd5b505afa1580156200023c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000262919062000912565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ab57600080fd5b505af1158015620002c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e6919062000912565b600d80546001600160a01b038086166001600160a01b031992831617909255600e80549284169290911682179055909150620003229062000538565b601054600160006200033c6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff19166001908117909155916200038b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601654821681526004845282812080548616600190811790915560175490921681528281208054861683179055308152600693849052918220805490941681179093556200040f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e548216815260069093528183208054851660019081179091556016548216845282842080548616821790556017549091168352912080549092161790556200048f6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051620004d791815260200190565b60405180910390a350505062000b11565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620006035760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016200058f565b6001600160a01b0381166000908152600160205260409020541562000660576001600160a01b0381166000908152600160205260409020546200064690620006c6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b60006010548211156200072f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016200058f565b60006200073b62000750565b90506200074981846200093d565b9392505050565b600080806200075e62000776565b90925090506200076f81836200093d565b9250505090565b601054600f546000918291825b600854811015620008de57826001600060088481548110620007a957620007a962000afb565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620008185750816002600060088481548110620007f157620007f162000afb565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200082f57601054600f54945094505050509091565b600160006008838154811062000849576200084962000afb565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200087a908462000a80565b9250600260006008838154811062000896576200089662000afb565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008c7908362000a80565b915080620008d58162000a9a565b91505062000783565b50600f54601054620008f191906200093d565b8210156200090957601054600f549350935050509091565b90939092509050565b6000602082840312156200092557600080fd5b81516001600160a01b03811681146200074957600080fd5b6000826200094f576200094f62000ae5565b500490565b600181815b808511156200099557816000190482111562000979576200097962000acf565b808516156200098757918102915b93841c939080029062000959565b509250929050565b60006200074960ff841683600082620009b95750600162000a58565b81620009c85750600062000a58565b8160018114620009e15760028114620009ec5762000a0c565b600191505062000a58565b60ff84111562000a005762000a0062000acf565b50506001821b62000a58565b5060208310610133831016604e8410600b841016171562000a31575081810a62000a58565b62000a3d838362000954565b806000190482111562000a545762000a5462000acf565b0290505b92915050565b600081600019048311821515161562000a7b5762000a7b62000acf565b500290565b60008282101562000a955762000a9562000acf565b500390565b600060001982141562000ab15762000ab162000acf565b5060010190565b60008262000aca5762000aca62000ae5565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b613a398062000b216000396000f3fe60806040526004361061037a5760003560e01c806370a08231116101d1578063aacebbe311610102578063e517f2b9116100a0578063f2fde38b1161006f578063f2fde38b14610a80578063f480fec214610aa0578063f66895a314610ac0578063f887ea4014610ae357600080fd5b8063e517f2b914610a06578063e7b94df414610a26578063ea2f0b3714610a46578063ee36e35914610a6657600080fd5b8063d2ce0db2116100dc578063d2ce0db214610974578063d8672e511461098a578063dd62ed3e146109aa578063e2f45605146109f057600080fd5b8063aacebbe314610914578063b5c5714514610934578063d257b34f1461095457600080fd5b8063924de9b71161016f578063a12a7d6111610149578063a12a7d6114610894578063a457c2d7146108b4578063a8aa1b31146108d4578063a9059cbb146108f457600080fd5b8063924de9b71461085157806395d89b41146103865780639ba5e4d51461087157600080fd5b806375f0a874116101ab57806375f0a874146107a257806388f82020146107da5780638da5cb5b146108135780638e2839ff1461083157600080fd5b806370a082311461072a578063715018a61461074a578063728f8eea1461075f57600080fd5b8063441b1d30116102ab5780635b24ea5e1161024957806366a88d961161022357806366a88d96146106bf5780636aa5b37f146106d55780636ddd1713146106eb578063706f69371461070a57600080fd5b80635b24ea5e1461065957806362695eae14610679578063652e2f04146106a957600080fd5b80634ada218b116102855780634ada218b146105c657806352390c02146105e05780635342acb41461060057806359759f611461063957600080fd5b8063441b1d30146105665780634549b0391461058657806347c23092146105a657600080fd5b80632d83811911610318578063379ba1d9116102f2578063379ba1d9146104e6578063395093511461050657806340b28c2f14610526578063437823ec1461054657600080fd5b80632d8381191461048a578063313ce567146104aa5780633685d419146104c657600080fd5b806318160ddd1161035457806318160ddd1461041557806323b872dd14610434578063274a533c146104545780632a088da61461046a57600080fd5b806306fdde0314610386578063095ea7b3146103c357806313f97a8e146103f357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506040805180820182526005815264594f53484960d81b602082015290516103ba9190613688565b60405180910390f35b3480156103cf57600080fd5b506103e36103de36600461343b565b610b03565b60405190151581526020016103ba565b3480156103ff57600080fd5b5061041361040e366004613529565b610b6b565b005b34801561042157600080fd5b50600f545b6040519081526020016103ba565b34801561044057600080fd5b506103e361044f3660046133cc565b610c01565b34801561046057600080fd5b5061042660155481565b34801561047657600080fd5b50610413610485366004613359565b610cfb565b34801561049657600080fd5b506104266104a53660046135c8565b610d47565b3480156104b657600080fd5b50604051600981526020016103ba565b3480156104d257600080fd5b506104136104e1366004613359565b610dcb565b3480156104f257600080fd5b50610413610501366004613570565b610f82565b34801561051257600080fd5b506103e361052136600461343b565b610fe8565b34801561053257600080fd5b50610413610541366004613393565b611068565b34801561055257600080fd5b50610413610561366004613359565b6110c0565b34801561057257600080fd5b506104136105813660046135c8565b61110e565b34801561059257600080fd5b506104266105a13660046135e1565b6111b5565b3480156105b257600080fd5b506104136105c13660046133cc565b611249565b3480156105d257600080fd5b506009546103e39060ff1681565b3480156105ec57600080fd5b506104136105fb366004613359565b6112fb565b34801561060c57600080fd5b506103e361061b366004613359565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064557600080fd5b50610413610654366004613606565b61144e565b34801561066557600080fd5b5061041361067436600461340d565b6114ae565b34801561068557600080fd5b506103e3610694366004613359565b60066020526000908152604090205460ff1681565b3480156106b557600080fd5b5061042660135481565b3480156106cb57600080fd5b5061042660145481565b3480156106e157600080fd5b5061042660125481565b3480156106f757600080fd5b506009546103e390610100900460ff1681565b34801561071657600080fd5b50610413610725366004613467565b611503565b34801561073657600080fd5b50610426610745366004613359565b6115dc565b34801561075657600080fd5b5061041361163b565b34801561076b57600080fd5b50601854601954601a54601b546107829392919084565b6040805194855260208501939093529183015260608201526080016103ba565b3480156107ae57600080fd5b506016546107c2906001600160a01b031681565b6040516001600160a01b0390911681526020016103ba565b3480156107e657600080fd5b506103e36107f5366004613359565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561081f57600080fd5b506000546001600160a01b03166107c2565b34801561083d57600080fd5b5061041361084c366004613529565b611671565b34801561085d57600080fd5b5061041361086c366004613570565b611702565b34801561087d57600080fd5b506020546021546022546023546107829392919084565b3480156108a057600080fd5b506104136108af366004613656565b611746565b3480156108c057600080fd5b506103e36108cf36600461343b565b6117d1565b3480156108e057600080fd5b50600e546107c2906001600160a01b031681565b34801561090057600080fd5b506103e361090f36600461343b565b6118b7565b34801561092057600080fd5b5061041361092f366004613359565b61190c565b34801561094057600080fd5b5061041361094f36600461340d565b611958565b34801561096057600080fd5b5061041361096f3660046135c8565b6119ad565b34801561098057600080fd5b50610426600c5481565b34801561099657600080fd5b506104136109a53660046135c8565b6119f3565b3480156109b657600080fd5b506104266109c5366004613393565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109fc57600080fd5b5061042660115481565b348015610a1257600080fd5b50610413610a213660046135aa565b611a39565b348015610a3257600080fd5b506017546107c2906001600160a01b031681565b348015610a5257600080fd5b50610413610a61366004613359565b611a85565b348015610a7257600080fd5b50600b546103e39060ff1681565b348015610a8c57600080fd5b50610413610a9b366004613359565b611ad0565b348015610aac57600080fd5b50610413610abb366004613656565b611b68565b348015610acc57600080fd5b50601c54601d54601e54601f546107829392919084565b348015610aef57600080fd5b50600d546107c2906001600160a01b031681565b600954600090339060ff1680610b3157506001600160a01b03811660009081526006602052604090205460ff165b610b565760405162461bcd60e51b8152600401610b4d90613712565b60405180910390fd5b610b61338585611bf3565b5060019392505050565b6000546001600160a01b03163314610b955760405162461bcd60e51b8152600401610b4d906136dd565b60005b8251811015610bfc578160076000858481518110610bb857610bb86139b4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf48161396d565b915050610b98565b505050565b600954600090849060ff1680610c2f57506001600160a01b03811660009081526006602052604090205460ff165b610c4b5760405162461bcd60e51b8152600401610b4d90613712565b610c56858585611d17565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610cdb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b4d565b610cef8633610cea8785613956565b611bf3565b50600195945050505050565b6000546001600160a01b03163314610d255760405162461bcd60e51b8152600401610b4d906136dd565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000601054821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b4d565b6000610db8612591565b9050610dc48184613827565b9392505050565b6000546001600160a01b03163314610df55760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03811660009081526005602052604090205460ff16610e5d5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610b4d565b60005b600854811015610f7e57816001600160a01b031660088281548110610e8757610e876139b4565b6000918252602090912001546001600160a01b03161415610f6c5760088054610eb290600190613956565b81548110610ec257610ec26139b4565b600091825260209091200154600880546001600160a01b039092169183908110610eee57610eee6139b4565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f4657610f4661399e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f768161396d565b915050610e60565b5050565b6000546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610b4d906136dd565b6009805461ffff191661ff0019831515908116919091176101008202179091556001148015610fdb5750601554155b15610fe557436015555b50565b600954600090339060ff168061101657506001600160a01b03811660009081526006602052604090205460ff165b6110325760405162461bcd60e51b8152600401610b4d90613712565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610b6191908690610cea90879061380f565b6000546001600160a01b031633146110925760405162461bcd60e51b8152600401610b4d906136dd565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111385760405162461bcd60e51b8152600401610b4d906136dd565b804710156111885760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610b4d565b604051339082156108fc029083906000818181858888f19350505050158015610f7e573d6000803e3d6000fd5b6000600f548311156112095760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b4d565b8161122757600061121d84600160006125b4565b5191506112439050565b600061123684600160006125b4565b6020015191506112439050565b92915050565b6000546001600160a01b031633146112735760405162461bcd60e51b8152600401610b4d906136dd565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f5919061358d565b50505050565b6000546001600160a01b031633146113255760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03811660009081526005602052604090205460ff161561138e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b4d565b6001600160a01b038116600090815260016020526040902054156113e8576001600160a01b0381166000908152600160205260409020546113ce90610d47565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146114785760405162461bcd60e51b8152600401610b4d906136dd565b6114846009600a61388c565b61148e9083613937565b60125561149d6009600a61388c565b6114a79082613937565b6013555050565b6000546001600160a01b031633146114d85760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461152d5760405162461bcd60e51b8152600401610b4d906136dd565b805182511461157e5760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610b4d565b60005b8251811015610bfc576115ca338483815181106115a0576115a06139b4565b60200260200101518484815181106115ba576115ba6139b4565b6020026020010151600080612610565b806115d48161396d565b915050611581565b6001600160a01b03811660009081526005602052604081205460ff161561161957506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461124390610d47565b6000546001600160a01b031633146116655760405162461bcd60e51b8152600401610b4d906136dd565b61166f60006128dd565b565b6000546001600160a01b0316331461169b5760405162461bcd60e51b8152600401610b4d906136dd565b60005b8251811015610bfc5781600460008584815181106116be576116be6139b4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806116fa8161396d565b91505061169e565b6000546001600160a01b0316331461172c5760405162461bcd60e51b8152600401610b4d906136dd565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117705760405162461bcd60e51b8152600401610b4d906136dd565b604080516080810182528581526020810185905280820184905260600182905260188590556019849055601a839055601b829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b600954600090339060ff16806117ff57506001600160a01b03811660009081526006602052604090205460ff165b61181b5760405162461bcd60e51b8152600401610b4d90613712565b3360009081526003602090815260408083206001600160a01b03881684529091529020548381101561189d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b4d565b6118ac3386610cea8785613956565b506001949350505050565b600954600090339060ff16806118e557506001600160a01b03811660009081526006602052604090205460ff165b6119015760405162461bcd60e51b8152600401610b4d90613712565b610b61338585611d17565b6000546001600160a01b031633146119365760405162461bcd60e51b8152600401610b4d906136dd565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119825760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119d75760405162461bcd60e51b8152600401610b4d906136dd565b6119e36009600a61388c565b6119ed9082613937565b60115550565b6000546001600160a01b03163314611a1d5760405162461bcd60e51b8152600401610b4d906136dd565b611a296009600a61388c565b611a339082613937565b60145550565b6000546001600160a01b03163314611a635760405162461bcd60e51b8152600401610b4d906136dd565b611a6e816001613937565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611aaf5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611afa5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b038116611b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b610fe5816128dd565b6000546001600160a01b03163314611b925760405162461bcd60e51b8152600401610b4d906136dd565b6040805160808101825285815260208101859052808201849052606001829052601c859055601d849055601e839055601f829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b038316611c555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4d565b6001600160a01b038216611cb65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b4d565b6001600160a01b038216611ddd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b4d565b60008111611e3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b4d565b611e48836115dc565b811115611eb15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610b4d565b6001600160a01b03831660009081526007602052604090205460ff16158015611ef357506001600160a01b03821660009081526007602052604090205460ff16155b611f2f5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610b4d565b6001600160a01b03831660009081526004602052604090205460ff16158015611f7157506001600160a01b03821660009081526004602052604090205460ff16155b15611fbd5760095460ff16611fbd5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610b4d565b6001600160a01b03831660009081526004602052604090205460ff16158015611fff57506001600160a01b03821660009081526004602052604090205460ff16155b8015612018575060155461201490600361380f565b4311155b1561208757600e546001600160a01b03838116911614156120875760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610b4d565b600e546001600160a01b0384811691161480156120bd57506001600160a01b03821660009081526004602052604090205460ff16155b80156120d2575060095462010000900460ff16155b1561218e576012548111156121295760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610b4d565b60145481612136846115dc565b612140919061380f565b111561218e5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b4d565b600e546001600160a01b038481169116148015906121c557506001600160a01b03821660009081526004602052604090205460ff16155b80156121ea57506001600160a01b03831660009081526004602052604090205460ff16155b80156121ff575060095462010000900460ff16155b15612362576013548111156122565760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610b4d565b600e546001600160a01b038381169116146122d05760145481612278846115dc565b612282919061380f565b11156122d05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b4d565b600b5460ff1615612362576001600160a01b0383166000908152600a60205260408120546122fe9042613956565b9050600c548110156123455760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610b4d565b506001600160a01b0383166000908152600a602052604090204290555b61236e6009600a61388c565b61237990600a613937565b81612383856115dc565b61238d9190613956565b116123d45761239b836115dc565b816123a86009600a61388c565b6123b390600a613937565b6123bd919061380f565b6123c79190613956565b6123d19082613956565b90505b60006011546123e2306115dc565b600954911115915062010000900460ff161580156124075750600954610100900460ff165b80156124105750805b801561242a5750600e546001600160a01b03858116911614155b801561244f57506001600160a01b03841660009081526004602052604090205460ff16155b801561247457506001600160a01b03831660009081526004602052604090205460ff16155b1561250057600e546001600160a01b03848116911614156124ca5760115460408051608081018252601c548152601d546020820152601e5491810191909152601f5460608201526124c5919061292d565b612500565b6011546040805160808101825260185481526019546020820152601a5491810191909152601b546060820152612500919061292d565b60095460019060009062010000900460ff168061253557506001600160a01b03861660009081526004602052604090205460ff165b8061255857506001600160a01b03851660009081526004602052604090205460ff165b1561256257600091505b600e546001600160a01b038681169116141561257c575060015b6125898686868585612610565b505050505050565b600080600061259e612a87565b90925090506125ad8183613827565b9250505090565b6125bc613284565b6125c7848484612c0a565b90506125dc8185856125d7612591565b612d7a565b6080860152606085015260408401526020830152815261260481846125ff612591565b612e29565b60a08201529392505050565b600061261d8484846125b4565b6001600160a01b03871660009081526005602052604090205490915060ff161561267f576001600160a01b038616600090815260026020526040902054612665908590613956565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156126e25760c08101516001600160a01b0386166000908152600260205260409020546126c8919061380f565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546127079190613956565b6001600160a01b038088166000908152600160209081526040808320949094558401519188168152919091205461273e919061380f565b6001600160a01b0386166000908152600160205260409081902091909155810151151580612770575060008160e00151115b156127875761278781604001518260e00151612e51565b60008160800151118061279f57506000816101200151115b15612824576127b78160800151826101200151612e86565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151612808919061380f565b612812919061380f565b60405190815260200160405180910390a35b60008160600151118061283c57506000816101000151115b15612854576128548160600151826101000151612efc565b60008160a00151118061286c57506000816101400151115b15612884576128848160a00151826101400151612f11565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516128cd91815260200190565b60405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff00001916620100001790556060810151602082015160408301516000929161295a9161380f565b612964919061380f565b61296f906002613937565b90506000818360400151856129849190613937565b61298e9190613827565b9050600061299c8286613956565b9050476129a882612f26565b60006129b48247613956565b905060008660400151866129c89190613956565b6129d29083613827565b905060008760400151826129e69190613937565b905080156129f8576129f88682613087565b6020880151600090612a0b846002613937565b612a159190613937565b90508015612a3357601654612a33906001600160a01b03168261316b565b6060890151600090612a46856002613937565b612a509190613937565b90508015612a6e57601754612a6e906001600160a01b03168261316b565b50506009805462ff000019169055505050505050505050565b601054600f546000918291825b600854811015612bd957826001600060088481548110612ab657612ab66139b4565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612b215750816002600060088481548110612afa57612afa6139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612b3757601054600f54945094505050509091565b6001600060088381548110612b4e57612b4e6139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b7d9084613956565b92506002600060088381548110612b9657612b966139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612bc59083613956565b915080612bd18161396d565b915050612a94565b50600f54601054612bea9190613827565b821015612c0157601054600f549350935050509091565b90939092509050565b612c12613284565b82612c235760c08101849052610dc4565b612c4e6040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612c83575060408051608081018252601c548152601d546020820152601e5491810191909152601f546060820152612cae565b506040805160808101825260185481526019546020820152601a5491810191909152601b5460608201525b8051606490612cbd9087613937565b612cc79190613827565b60e08301526020810151606490612cde9087613937565b612ce89190613827565b6101008301526040810151606490612d009087613937565b612d0a9190613827565b6101208301526060810151606490612d229087613937565b612d2c9190613827565b610140830181905261012083015161010084015160e0850151612d4f9089613956565b612d599190613956565b612d639190613956565b612d6d9190613956565b60c0830152509392505050565b600080808080612d8a8689613937565b945086612da257508392506000915081905080612e1e565b858960e00151612db29190613937565b925085896101000151612dc59190613937565b915085896101200151612dd89190613937565b90506000868a6101400151612ded9190613937565b9050808284612dfc878a613956565b612e069190613956565b612e109190613956565b612e1a9190613956565b9450505b945094509450945094565b600082612e3857506000610dc4565b81846101400151612e499190613937565b949350505050565b8160106000828254612e639190613956565b909155505060208054829190600090612e7d90849061380f565b90915550505050565b8060206002016000828254612e9b919061380f565b90915550503060009081526005602052604090205460ff1615612edd573060009081526002602052604081208054839290612ed790849061380f565b90915550505b3060009081526001602052604081208054849290612e7d90849061380f565b8060206001016000828254612e9b919061380f565b8060206003016000828254612e9b919061380f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612f5b57612f5b6139b4565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612faf57600080fd5b505afa158015612fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe79190613376565b81600181518110612ffa57612ffa6139b4565b6001600160a01b039283166020918202929092010152600d546130209130911684611bf3565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790613059908590600090869030904290600401613749565b600060405180830381600087803b15801561307357600080fd5b505af1158015612589573d6000803e3d6000fd5b600d5461309f9030906001600160a01b031684611bf3565b600d546001600160a01b031663f305d7198230856000806130c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561312b57600080fd5b505af115801561313f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131649190613628565b5050505050565b804710156131bb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b4d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613208576040519150601f19603f3d011682016040523d82523d6000602084013e61320d565b606091505b5050905080610bfc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b4d565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f8301126132ef57600080fd5b813560206133046132ff836137eb565b6137ba565b80838252828201915082860187848660051b890101111561332457600080fd5b60005b8581101561334c57813561333a816139e0565b84529284019290840190600101613327565b5090979650505050505050565b60006020828403121561336b57600080fd5b8135610dc4816139e0565b60006020828403121561338857600080fd5b8151610dc4816139e0565b600080604083850312156133a657600080fd5b82356133b1816139e0565b915060208301356133c1816139e0565b809150509250929050565b6000806000606084860312156133e157600080fd5b83356133ec816139e0565b925060208401356133fc816139e0565b929592945050506040919091013590565b6000806040838503121561342057600080fd5b823561342b816139e0565b915060208301356133c1816139f5565b6000806040838503121561344e57600080fd5b8235613459816139e0565b946020939093013593505050565b6000806040838503121561347a57600080fd5b823567ffffffffffffffff8082111561349257600080fd5b61349e868387016132de565b93506020915081850135818111156134b557600080fd5b85019050601f810186136134c857600080fd5b80356134d66132ff826137eb565b80828252848201915084840189868560051b87010111156134f657600080fd5b600094505b838510156135195780358352600194909401939185019185016134fb565b5080955050505050509250929050565b6000806040838503121561353c57600080fd5b823567ffffffffffffffff81111561355357600080fd5b61355f858286016132de565b92505060208301356133c1816139f5565b60006020828403121561358257600080fd5b8135610dc4816139f5565b60006020828403121561359f57600080fd5b8151610dc4816139f5565b600080604083850312156135bd57600080fd5b8235613459816139f5565b6000602082840312156135da57600080fd5b5035919050565b600080604083850312156135f457600080fd5b8235915060208301356133c1816139f5565b6000806040838503121561361957600080fd5b50508035926020909101359150565b60008060006060848603121561363d57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561366c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156136b557858101830151858201604001528201613699565b818111156136c7576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137995784516001600160a01b031683529383019391830191600101613774565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156137e3576137e36139ca565b604052919050565b600067ffffffffffffffff821115613805576138056139ca565b5060051b60200190565b6000821982111561382257613822613988565b500190565b60008261384457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561388457816000190482111561386a5761386a613988565b8085161561387757918102915b93841c939080029061384e565b509250929050565b6000610dc460ff8416836000826138a557506001611243565b816138b257506000611243565b81600181146138c857600281146138d2576138ee565b6001915050611243565b60ff8411156138e3576138e3613988565b50506001821b611243565b5060208310610133831016604e8410600b8410161715613911575081810a611243565b61391b8383613849565b806000190482111561392f5761392f613988565b029392505050565b600081600019048311821515161561395157613951613988565b500290565b60008282101561396857613968613988565b500390565b600060001982141561398157613981613988565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610fe557600080fd5b8015158114610fe557600080fdfea264697066735822122026e95f60af6447c0cc6feeaa4dc6ab0f556764b9cb0fd1c3c4bc8af26d7ecddb64736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x60806040526004361061037a5760003560e01c806370a08231116101d1578063aacebbe311610102578063e517f2b9116100a0578063f2fde38b1161006f578063f2fde38b14610a80578063f480fec214610aa0578063f66895a314610ac0578063f887ea4014610ae357600080fd5b8063e517f2b914610a06578063e7b94df414610a26578063ea2f0b3714610a46578063ee36e35914610a6657600080fd5b8063d2ce0db2116100dc578063d2ce0db214610974578063d8672e511461098a578063dd62ed3e146109aa578063e2f45605146109f057600080fd5b8063aacebbe314610914578063b5c5714514610934578063d257b34f1461095457600080fd5b8063924de9b71161016f578063a12a7d6111610149578063a12a7d6114610894578063a457c2d7146108b4578063a8aa1b31146108d4578063a9059cbb146108f457600080fd5b8063924de9b71461085157806395d89b41146103865780639ba5e4d51461087157600080fd5b806375f0a874116101ab57806375f0a874146107a257806388f82020146107da5780638da5cb5b146108135780638e2839ff1461083157600080fd5b806370a082311461072a578063715018a61461074a578063728f8eea1461075f57600080fd5b8063441b1d30116102ab5780635b24ea5e1161024957806366a88d961161022357806366a88d96146106bf5780636aa5b37f146106d55780636ddd1713146106eb578063706f69371461070a57600080fd5b80635b24ea5e1461065957806362695eae14610679578063652e2f04146106a957600080fd5b80634ada218b116102855780634ada218b146105c657806352390c02146105e05780635342acb41461060057806359759f611461063957600080fd5b8063441b1d30146105665780634549b0391461058657806347c23092146105a657600080fd5b80632d83811911610318578063379ba1d9116102f2578063379ba1d9146104e6578063395093511461050657806340b28c2f14610526578063437823ec1461054657600080fd5b80632d8381191461048a578063313ce567146104aa5780633685d419146104c657600080fd5b806318160ddd1161035457806318160ddd1461041557806323b872dd14610434578063274a533c146104545780632a088da61461046a57600080fd5b806306fdde0314610386578063095ea7b3146103c357806313f97a8e146103f357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506040805180820182526005815264594f53484960d81b602082015290516103ba9190613688565b60405180910390f35b3480156103cf57600080fd5b506103e36103de36600461343b565b610b03565b60405190151581526020016103ba565b3480156103ff57600080fd5b5061041361040e366004613529565b610b6b565b005b34801561042157600080fd5b50600f545b6040519081526020016103ba565b34801561044057600080fd5b506103e361044f3660046133cc565b610c01565b34801561046057600080fd5b5061042660155481565b34801561047657600080fd5b50610413610485366004613359565b610cfb565b34801561049657600080fd5b506104266104a53660046135c8565b610d47565b3480156104b657600080fd5b50604051600981526020016103ba565b3480156104d257600080fd5b506104136104e1366004613359565b610dcb565b3480156104f257600080fd5b50610413610501366004613570565b610f82565b34801561051257600080fd5b506103e361052136600461343b565b610fe8565b34801561053257600080fd5b50610413610541366004613393565b611068565b34801561055257600080fd5b50610413610561366004613359565b6110c0565b34801561057257600080fd5b506104136105813660046135c8565b61110e565b34801561059257600080fd5b506104266105a13660046135e1565b6111b5565b3480156105b257600080fd5b506104136105c13660046133cc565b611249565b3480156105d257600080fd5b506009546103e39060ff1681565b3480156105ec57600080fd5b506104136105fb366004613359565b6112fb565b34801561060c57600080fd5b506103e361061b366004613359565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064557600080fd5b50610413610654366004613606565b61144e565b34801561066557600080fd5b5061041361067436600461340d565b6114ae565b34801561068557600080fd5b506103e3610694366004613359565b60066020526000908152604090205460ff1681565b3480156106b557600080fd5b5061042660135481565b3480156106cb57600080fd5b5061042660145481565b3480156106e157600080fd5b5061042660125481565b3480156106f757600080fd5b506009546103e390610100900460ff1681565b34801561071657600080fd5b50610413610725366004613467565b611503565b34801561073657600080fd5b50610426610745366004613359565b6115dc565b34801561075657600080fd5b5061041361163b565b34801561076b57600080fd5b50601854601954601a54601b546107829392919084565b6040805194855260208501939093529183015260608201526080016103ba565b3480156107ae57600080fd5b506016546107c2906001600160a01b031681565b6040516001600160a01b0390911681526020016103ba565b3480156107e657600080fd5b506103e36107f5366004613359565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561081f57600080fd5b506000546001600160a01b03166107c2565b34801561083d57600080fd5b5061041361084c366004613529565b611671565b34801561085d57600080fd5b5061041361086c366004613570565b611702565b34801561087d57600080fd5b506020546021546022546023546107829392919084565b3480156108a057600080fd5b506104136108af366004613656565b611746565b3480156108c057600080fd5b506103e36108cf36600461343b565b6117d1565b3480156108e057600080fd5b50600e546107c2906001600160a01b031681565b34801561090057600080fd5b506103e361090f36600461343b565b6118b7565b34801561092057600080fd5b5061041361092f366004613359565b61190c565b34801561094057600080fd5b5061041361094f36600461340d565b611958565b34801561096057600080fd5b5061041361096f3660046135c8565b6119ad565b34801561098057600080fd5b50610426600c5481565b34801561099657600080fd5b506104136109a53660046135c8565b6119f3565b3480156109b657600080fd5b506104266109c5366004613393565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109fc57600080fd5b5061042660115481565b348015610a1257600080fd5b50610413610a213660046135aa565b611a39565b348015610a3257600080fd5b506017546107c2906001600160a01b031681565b348015610a5257600080fd5b50610413610a61366004613359565b611a85565b348015610a7257600080fd5b50600b546103e39060ff1681565b348015610a8c57600080fd5b50610413610a9b366004613359565b611ad0565b348015610aac57600080fd5b50610413610abb366004613656565b611b68565b348015610acc57600080fd5b50601c54601d54601e54601f546107829392919084565b348015610aef57600080fd5b50600d546107c2906001600160a01b031681565b600954600090339060ff1680610b3157506001600160a01b03811660009081526006602052604090205460ff165b610b565760405162461bcd60e51b8152600401610b4d90613712565b60405180910390fd5b610b61338585611bf3565b5060019392505050565b6000546001600160a01b03163314610b955760405162461bcd60e51b8152600401610b4d906136dd565b60005b8251811015610bfc578160076000858481518110610bb857610bb86139b4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf48161396d565b915050610b98565b505050565b600954600090849060ff1680610c2f57506001600160a01b03811660009081526006602052604090205460ff165b610c4b5760405162461bcd60e51b8152600401610b4d90613712565b610c56858585611d17565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610cdb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b4d565b610cef8633610cea8785613956565b611bf3565b50600195945050505050565b6000546001600160a01b03163314610d255760405162461bcd60e51b8152600401610b4d906136dd565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000601054821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b4d565b6000610db8612591565b9050610dc48184613827565b9392505050565b6000546001600160a01b03163314610df55760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03811660009081526005602052604090205460ff16610e5d5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610b4d565b60005b600854811015610f7e57816001600160a01b031660088281548110610e8757610e876139b4565b6000918252602090912001546001600160a01b03161415610f6c5760088054610eb290600190613956565b81548110610ec257610ec26139b4565b600091825260209091200154600880546001600160a01b039092169183908110610eee57610eee6139b4565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f4657610f4661399e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f768161396d565b915050610e60565b5050565b6000546001600160a01b03163314610fac5760405162461bcd60e51b8152600401610b4d906136dd565b6009805461ffff191661ff0019831515908116919091176101008202179091556001148015610fdb5750601554155b15610fe557436015555b50565b600954600090339060ff168061101657506001600160a01b03811660009081526006602052604090205460ff165b6110325760405162461bcd60e51b8152600401610b4d90613712565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610b6191908690610cea90879061380f565b6000546001600160a01b031633146110925760405162461bcd60e51b8152600401610b4d906136dd565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111385760405162461bcd60e51b8152600401610b4d906136dd565b804710156111885760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610b4d565b604051339082156108fc029083906000818181858888f19350505050158015610f7e573d6000803e3d6000fd5b6000600f548311156112095760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b4d565b8161122757600061121d84600160006125b4565b5191506112439050565b600061123684600160006125b4565b6020015191506112439050565b92915050565b6000546001600160a01b031633146112735760405162461bcd60e51b8152600401610b4d906136dd565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f5919061358d565b50505050565b6000546001600160a01b031633146113255760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03811660009081526005602052604090205460ff161561138e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b4d565b6001600160a01b038116600090815260016020526040902054156113e8576001600160a01b0381166000908152600160205260409020546113ce90610d47565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146114785760405162461bcd60e51b8152600401610b4d906136dd565b6114846009600a61388c565b61148e9083613937565b60125561149d6009600a61388c565b6114a79082613937565b6013555050565b6000546001600160a01b031633146114d85760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461152d5760405162461bcd60e51b8152600401610b4d906136dd565b805182511461157e5760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610b4d565b60005b8251811015610bfc576115ca338483815181106115a0576115a06139b4565b60200260200101518484815181106115ba576115ba6139b4565b6020026020010151600080612610565b806115d48161396d565b915050611581565b6001600160a01b03811660009081526005602052604081205460ff161561161957506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461124390610d47565b6000546001600160a01b031633146116655760405162461bcd60e51b8152600401610b4d906136dd565b61166f60006128dd565b565b6000546001600160a01b0316331461169b5760405162461bcd60e51b8152600401610b4d906136dd565b60005b8251811015610bfc5781600460008584815181106116be576116be6139b4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806116fa8161396d565b91505061169e565b6000546001600160a01b0316331461172c5760405162461bcd60e51b8152600401610b4d906136dd565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117705760405162461bcd60e51b8152600401610b4d906136dd565b604080516080810182528581526020810185905280820184905260600182905260188590556019849055601a839055601b829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b600954600090339060ff16806117ff57506001600160a01b03811660009081526006602052604090205460ff165b61181b5760405162461bcd60e51b8152600401610b4d90613712565b3360009081526003602090815260408083206001600160a01b03881684529091529020548381101561189d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b4d565b6118ac3386610cea8785613956565b506001949350505050565b600954600090339060ff16806118e557506001600160a01b03811660009081526006602052604090205460ff165b6119015760405162461bcd60e51b8152600401610b4d90613712565b610b61338585611d17565b6000546001600160a01b031633146119365760405162461bcd60e51b8152600401610b4d906136dd565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119825760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119d75760405162461bcd60e51b8152600401610b4d906136dd565b6119e36009600a61388c565b6119ed9082613937565b60115550565b6000546001600160a01b03163314611a1d5760405162461bcd60e51b8152600401610b4d906136dd565b611a296009600a61388c565b611a339082613937565b60145550565b6000546001600160a01b03163314611a635760405162461bcd60e51b8152600401610b4d906136dd565b611a6e816001613937565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611aaf5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611afa5760405162461bcd60e51b8152600401610b4d906136dd565b6001600160a01b038116611b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b610fe5816128dd565b6000546001600160a01b03163314611b925760405162461bcd60e51b8152600401610b4d906136dd565b6040805160808101825285815260208101859052808201849052606001829052601c859055601d849055601e839055601f829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b038316611c555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4d565b6001600160a01b038216611cb65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b4d565b6001600160a01b038216611ddd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b4d565b60008111611e3f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b4d565b611e48836115dc565b811115611eb15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610b4d565b6001600160a01b03831660009081526007602052604090205460ff16158015611ef357506001600160a01b03821660009081526007602052604090205460ff16155b611f2f5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610b4d565b6001600160a01b03831660009081526004602052604090205460ff16158015611f7157506001600160a01b03821660009081526004602052604090205460ff16155b15611fbd5760095460ff16611fbd5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610b4d565b6001600160a01b03831660009081526004602052604090205460ff16158015611fff57506001600160a01b03821660009081526004602052604090205460ff16155b8015612018575060155461201490600361380f565b4311155b1561208757600e546001600160a01b03838116911614156120875760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610b4d565b600e546001600160a01b0384811691161480156120bd57506001600160a01b03821660009081526004602052604090205460ff16155b80156120d2575060095462010000900460ff16155b1561218e576012548111156121295760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610b4d565b60145481612136846115dc565b612140919061380f565b111561218e5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b4d565b600e546001600160a01b038481169116148015906121c557506001600160a01b03821660009081526004602052604090205460ff16155b80156121ea57506001600160a01b03831660009081526004602052604090205460ff16155b80156121ff575060095462010000900460ff16155b15612362576013548111156122565760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610b4d565b600e546001600160a01b038381169116146122d05760145481612278846115dc565b612282919061380f565b11156122d05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b4d565b600b5460ff1615612362576001600160a01b0383166000908152600a60205260408120546122fe9042613956565b9050600c548110156123455760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610b4d565b506001600160a01b0383166000908152600a602052604090204290555b61236e6009600a61388c565b61237990600a613937565b81612383856115dc565b61238d9190613956565b116123d45761239b836115dc565b816123a86009600a61388c565b6123b390600a613937565b6123bd919061380f565b6123c79190613956565b6123d19082613956565b90505b60006011546123e2306115dc565b600954911115915062010000900460ff161580156124075750600954610100900460ff165b80156124105750805b801561242a5750600e546001600160a01b03858116911614155b801561244f57506001600160a01b03841660009081526004602052604090205460ff16155b801561247457506001600160a01b03831660009081526004602052604090205460ff16155b1561250057600e546001600160a01b03848116911614156124ca5760115460408051608081018252601c548152601d546020820152601e5491810191909152601f5460608201526124c5919061292d565b612500565b6011546040805160808101825260185481526019546020820152601a5491810191909152601b546060820152612500919061292d565b60095460019060009062010000900460ff168061253557506001600160a01b03861660009081526004602052604090205460ff165b8061255857506001600160a01b03851660009081526004602052604090205460ff165b1561256257600091505b600e546001600160a01b038681169116141561257c575060015b6125898686868585612610565b505050505050565b600080600061259e612a87565b90925090506125ad8183613827565b9250505090565b6125bc613284565b6125c7848484612c0a565b90506125dc8185856125d7612591565b612d7a565b6080860152606085015260408401526020830152815261260481846125ff612591565b612e29565b60a08201529392505050565b600061261d8484846125b4565b6001600160a01b03871660009081526005602052604090205490915060ff161561267f576001600160a01b038616600090815260026020526040902054612665908590613956565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156126e25760c08101516001600160a01b0386166000908152600260205260409020546126c8919061380f565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546127079190613956565b6001600160a01b038088166000908152600160209081526040808320949094558401519188168152919091205461273e919061380f565b6001600160a01b0386166000908152600160205260409081902091909155810151151580612770575060008160e00151115b156127875761278781604001518260e00151612e51565b60008160800151118061279f57506000816101200151115b15612824576127b78160800151826101200151612e86565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151612808919061380f565b612812919061380f565b60405190815260200160405180910390a35b60008160600151118061283c57506000816101000151115b15612854576128548160600151826101000151612efc565b60008160a00151118061286c57506000816101400151115b15612884576128848160a00151826101400151612f11565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516128cd91815260200190565b60405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff00001916620100001790556060810151602082015160408301516000929161295a9161380f565b612964919061380f565b61296f906002613937565b90506000818360400151856129849190613937565b61298e9190613827565b9050600061299c8286613956565b9050476129a882612f26565b60006129b48247613956565b905060008660400151866129c89190613956565b6129d29083613827565b905060008760400151826129e69190613937565b905080156129f8576129f88682613087565b6020880151600090612a0b846002613937565b612a159190613937565b90508015612a3357601654612a33906001600160a01b03168261316b565b6060890151600090612a46856002613937565b612a509190613937565b90508015612a6e57601754612a6e906001600160a01b03168261316b565b50506009805462ff000019169055505050505050505050565b601054600f546000918291825b600854811015612bd957826001600060088481548110612ab657612ab66139b4565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612b215750816002600060088481548110612afa57612afa6139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612b3757601054600f54945094505050509091565b6001600060088381548110612b4e57612b4e6139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b7d9084613956565b92506002600060088381548110612b9657612b966139b4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612bc59083613956565b915080612bd18161396d565b915050612a94565b50600f54601054612bea9190613827565b821015612c0157601054600f549350935050509091565b90939092509050565b612c12613284565b82612c235760c08101849052610dc4565b612c4e6040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612c83575060408051608081018252601c548152601d546020820152601e5491810191909152601f546060820152612cae565b506040805160808101825260185481526019546020820152601a5491810191909152601b5460608201525b8051606490612cbd9087613937565b612cc79190613827565b60e08301526020810151606490612cde9087613937565b612ce89190613827565b6101008301526040810151606490612d009087613937565b612d0a9190613827565b6101208301526060810151606490612d229087613937565b612d2c9190613827565b610140830181905261012083015161010084015160e0850151612d4f9089613956565b612d599190613956565b612d639190613956565b612d6d9190613956565b60c0830152509392505050565b600080808080612d8a8689613937565b945086612da257508392506000915081905080612e1e565b858960e00151612db29190613937565b925085896101000151612dc59190613937565b915085896101200151612dd89190613937565b90506000868a6101400151612ded9190613937565b9050808284612dfc878a613956565b612e069190613956565b612e109190613956565b612e1a9190613956565b9450505b945094509450945094565b600082612e3857506000610dc4565b81846101400151612e499190613937565b949350505050565b8160106000828254612e639190613956565b909155505060208054829190600090612e7d90849061380f565b90915550505050565b8060206002016000828254612e9b919061380f565b90915550503060009081526005602052604090205460ff1615612edd573060009081526002602052604081208054839290612ed790849061380f565b90915550505b3060009081526001602052604081208054849290612e7d90849061380f565b8060206001016000828254612e9b919061380f565b8060206003016000828254612e9b919061380f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612f5b57612f5b6139b4565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612faf57600080fd5b505afa158015612fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe79190613376565b81600181518110612ffa57612ffa6139b4565b6001600160a01b039283166020918202929092010152600d546130209130911684611bf3565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790613059908590600090869030904290600401613749565b600060405180830381600087803b15801561307357600080fd5b505af1158015612589573d6000803e3d6000fd5b600d5461309f9030906001600160a01b031684611bf3565b600d546001600160a01b031663f305d7198230856000806130c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561312b57600080fd5b505af115801561313f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131649190613628565b5050505050565b804710156131bb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b4d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613208576040519150601f19603f3d011682016040523d82523d6000602084013e61320d565b606091505b5050905080610bfc5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b4d565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f8301126132ef57600080fd5b813560206133046132ff836137eb565b6137ba565b80838252828201915082860187848660051b890101111561332457600080fd5b60005b8581101561334c57813561333a816139e0565b84529284019290840190600101613327565b5090979650505050505050565b60006020828403121561336b57600080fd5b8135610dc4816139e0565b60006020828403121561338857600080fd5b8151610dc4816139e0565b600080604083850312156133a657600080fd5b82356133b1816139e0565b915060208301356133c1816139e0565b809150509250929050565b6000806000606084860312156133e157600080fd5b83356133ec816139e0565b925060208401356133fc816139e0565b929592945050506040919091013590565b6000806040838503121561342057600080fd5b823561342b816139e0565b915060208301356133c1816139f5565b6000806040838503121561344e57600080fd5b8235613459816139e0565b946020939093013593505050565b6000806040838503121561347a57600080fd5b823567ffffffffffffffff8082111561349257600080fd5b61349e868387016132de565b93506020915081850135818111156134b557600080fd5b85019050601f810186136134c857600080fd5b80356134d66132ff826137eb565b80828252848201915084840189868560051b87010111156134f657600080fd5b600094505b838510156135195780358352600194909401939185019185016134fb565b5080955050505050509250929050565b6000806040838503121561353c57600080fd5b823567ffffffffffffffff81111561355357600080fd5b61355f858286016132de565b92505060208301356133c1816139f5565b60006020828403121561358257600080fd5b8135610dc4816139f5565b60006020828403121561359f57600080fd5b8151610dc4816139f5565b600080604083850312156135bd57600080fd5b8235613459816139f5565b6000602082840312156135da57600080fd5b5035919050565b600080604083850312156135f457600080fd5b8235915060208301356133c1816139f5565b6000806040838503121561361957600080fd5b50508035926020909101359150565b60008060006060848603121561363d57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561366c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156136b557858101830151858201604001528201613699565b818111156136c7576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137995784516001600160a01b031683529383019391830191600101613774565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156137e3576137e36139ca565b604052919050565b600067ffffffffffffffff821115613805576138056139ca565b5060051b60200190565b6000821982111561382257613822613988565b500190565b60008261384457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561388457816000190482111561386a5761386a613988565b8085161561387757918102915b93841c939080029061384e565b509250929050565b6000610dc460ff8416836000826138a557506001611243565b816138b257506000611243565b81600181146138c857600281146138d2576138ee565b6001915050611243565b60ff8411156138e3576138e3613988565b50506001821b611243565b5060208310610133831016604e8410600b8410161715613911575081810a611243565b61391b8383613849565b806000190482111561392f5761392f613988565b029392505050565b600081600019048311821515161561395157613951613988565b500290565b60008282101561396857613968613988565b500390565b600060001982141561398157613981613988565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610fe557600080fd5b8015158114610fe557600080fdfea264697066735822122026e95f60af6447c0cc6feeaa4dc6ab0f556764b9cb0fd1c3c4bc8af26d7ecddb64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
3389:21259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6948:83;;;;;;;;;;-1:-1:-1;7018:5:0;;;;;;;;;;;-1:-1:-1;;;7018:5:0;;;;6948:83;;;;7018:5;6948:83;:::i;:::-;;;;;;;;7708:181;;;;;;;;;;-1:-1:-1;7708:181:0;;;;;:::i;:::-;;:::i;:::-;;;8209:14:1;;8202:22;8184:41;;8172:2;8157:18;7708:181:0;8044:187:1;23321:209:0;;;;;;;;;;-1:-1:-1;23321:209:0;;;;;:::i;:::-;;:::i;:::-;;7244:95;;;;;;;;;;-1:-1:-1;7324:7:0;;7244:95;;;19077:25:1;;;19065:2;19050:18;7244:95:0;18931:177:1;7897:430:0;;;;;;;;;;-1:-1:-1;7897:430:0;;;;;:::i;:::-;;:::i;4831:28::-;;;;;;;;;;;;;;;;22646:112;;;;;;;;;;-1:-1:-1;22646:112:0;;;;;:::i;:::-;;:::i;9988:248::-;;;;;;;;;;-1:-1:-1;9988:248:0;;;;;:::i;:::-;;:::i;7130:83::-;;;;;;;;;;-1:-1:-1;7130:83:0;;4435:1;20636:36:1;;20624:2;20609:18;7130:83:0;20494:184:1;10585:475:0;;;;;;;;;;-1:-1:-1;10585:475:0;;;;;:::i;:::-;;:::i;9774:206::-;;;;;;;;;;-1:-1:-1;9774:206:0;;;;;:::i;:::-;;:::i;8335:228::-;;;;;;;;;;-1:-1:-1;8335:228:0;;;;;:::i;:::-;;:::i;24009:154::-;;;;;;;;;;-1:-1:-1;24009:154:0;;;;;:::i;:::-;;:::i;11068:111::-;;;;;;;;;;-1:-1:-1;11068:111:0;;;;;:::i;:::-;;:::i;24239:196::-;;;;;;;;;;-1:-1:-1;24239:196:0;;;;;:::i;:::-;;:::i;9296:470::-;;;;;;;;;;-1:-1:-1;9296:470:0;;;;;:::i;:::-;;:::i;24449:154::-;;;;;;;;;;-1:-1:-1;24449:154:0;;;;;:::i;:::-;;:::i;3922:26::-;;;;;;;;;;-1:-1:-1;3922:26:0;;;;;;;;10244:333;;;;;;;;;;-1:-1:-1;10244:333:0;;;;;:::i;:::-;;:::i;11305:123::-;;;;;;;;;;-1:-1:-1;11305:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11393:27:0;11369:4;11393:27;;;:18;:27;;;;;;;;;11305:123;23683:183;;;;;;;;;;-1:-1:-1;23683:183:0;;;;;:::i;:::-;;:::i;23183:126::-;;;;;;;;;;-1:-1:-1;23183:126:0;;;;;:::i;:::-;;:::i;3774:48::-;;;;;;;;;;-1:-1:-1;3774:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4715:47;;;;;;;;;;;;;;;;4769:49;;;;;;;;;;;;;;;;4662:46;;;;;;;;;;;;;;;;3955:23;;;;;;;;;;-1:-1:-1;3955:23:0;;;;;;;;;;;21960:331;;;;;;;;;;-1:-1:-1;21960:331:0;;;;;:::i;:::-;;:::i;7347:198::-;;;;;;;;;;-1:-1:-1;7347:198:0;;;;;:::i;:::-;;:::i;1818:94::-;;;;;;;;;;;;;:::i;5268:38::-;;;;;;;;;;-1:-1:-1;5268:38:0;;;;;;;;;;;;;;;;;;;20329:25:1;;;20385:2;20370:18;;20363:34;;;;20413:18;;;20406:34;20471:2;20456:18;;20449:34;20316:3;20301:19;5268:38:0;20098:391:1;4872:75:0;;;;;;;;;;-1:-1:-1;4872:75:0;;;;-1:-1:-1;;;;;4872:75:0;;;;;;-1:-1:-1;;;;;7109:32:1;;;7091:51;;7079:2;7064:18;4872:75:0;6945:203:1;9168:120:0;;;;;;;;;;-1:-1:-1;9168:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9260:20:0;9236:4;9260:20;;;:11;:20;;;;;;;;;9168:120;1595:87;;;;;;;;;;-1:-1:-1;1641:7:0;1668:6;-1:-1:-1;;;;;1668:6:0;1595:87;;22303:209;;;;;;;;;;-1:-1:-1;22303:209:0;;;;;:::i;:::-;;:::i;23070:101::-;;;;;;;;;;-1:-1:-1;23070:101:0;;;;;:::i;:::-;;:::i;5516:36::-;;;;;;;;;;-1:-1:-1;5516:36:0;;;;;;;;;;;;;;;11436:206;;;;;;;;;;-1:-1:-1;11436:206:0;;;;;:::i;:::-;;:::i;8571:390::-;;;;;;;;;;-1:-1:-1;8571:390:0;;;;;:::i;:::-;;:::i;4372:19::-;;;;;;;;;;-1:-1:-1;4372:19:0;;;;-1:-1:-1;;;;;4372:19:0;;;8973:187;;;;;;;;;;-1:-1:-1;8973:187:0;;;;;:::i;:::-;;:::i;22520:114::-;;;;;;;;;;-1:-1:-1;22520:114:0;;;;;:::i;:::-;;:::i;23542:129::-;;;;;;;;;;-1:-1:-1;23542:129:0;;;;;:::i;:::-;;:::i;22932:130::-;;;;;;;;;;-1:-1:-1;22932:130:0;;;;;:::i;:::-;;:::i;4142:39::-;;;;;;;;;;;;;;;;23878:123;;;;;;;;;;-1:-1:-1;23878:123:0;;;;;:::i;:::-;;:::i;7557:143::-;;;;;;;;;;-1:-1:-1;7557:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7665:18:0;;;7638:7;7665:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7557:143;4604:51;;;;;;;;;;;;;;;;22772:152;;;;;;;;;;-1:-1:-1;22772:152:0;;;;;:::i;:::-;;:::i;4954:74::-;;;;;;;;;;-1:-1:-1;4954:74:0;;;;-1:-1:-1;;;;;4954:74:0;;;11187:110;;;;;;;;;;-1:-1:-1;11187:110:0;;;;;:::i;:::-;;:::i;4100:35::-;;;;;;;;;;-1:-1:-1;4100:35:0;;;;;;;;1920:192;;;;;;;;;;-1:-1:-1;1920:192:0;;;;;:::i;:::-;;:::i;11654:214::-;;;;;;;;;;-1:-1:-1;11654:214:0;;;;;:::i;:::-;;:::i;5313:44::-;;;;;;;;;;-1:-1:-1;5313:44:0;;;;;;;;;;;;;;;4344:21;;;;;;;;;;-1:-1:-1;4344:21:0;;;;-1:-1:-1;;;;;4344:21:0;;;7708:181;4246:14;;7803:4;;7783:10;;4246:14;;;:42;;-1:-1:-1;;;;;;4264:24:0;;;;;;:15;:24;;;;;;;;4246:42;4238:78;;;;-1:-1:-1;;;4238:78:0;;;;;;;:::i;:::-;;;;;;;;;7820:39:::1;1096:10:::0;7843:7:::1;7852:6;7820:8;:39::i;:::-;-1:-1:-1::0;7877:4:0::1;::::0;7708:181;-1:-1:-1;;;7708:181:0:o;23321:209::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;23420:9:::1;23416:107;23438:8;:15;23434:1;:19;23416:107;;;23504:5;23474:14;:27;23489:8;23498:1;23489:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23474:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23474:27:0;:35;;-1:-1:-1;;23474:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23455:3;::::1;::::0;::::1;:::i;:::-;;;;23416:107;;;;23321:209:::0;;:::o;7897:430::-;4246:14;;8011:4;;7994:6;;4246:14;;;:42;;-1:-1:-1;;;;;;4264:24:0;;;;;;:15;:24;;;;;;;;4246:42;4238:78;;;;-1:-1:-1;;;4238:78:0;;;;;;;:::i;:::-;8028:36:::1;8038:6;8046:9;8057:6;8028:9;:36::i;:::-;-1:-1:-1::0;;;;;8104:19:0;::::1;8077:24;8104:19:::0;;;:11:::1;:19;::::0;;;;;;;1096:10;8104:33;;;;;;;;8156:26;;::::1;;8148:79;;;::::0;-1:-1:-1;;;8148:79:0;;14983:2:1;8148:79:0::1;::::0;::::1;14965:21:1::0;15022:2;15002:18;;;14995:30;15061:34;15041:18;;;15034:62;-1:-1:-1;;;15112:18:1;;;15105:38;15160:19;;8148:79:0::1;14781:404:1::0;8148:79:0::1;8238:57;8247:6:::0;1096:10;8269:25:::1;8288:6:::0;8269:16;:25:::1;:::i;:::-;8238:8;:57::i;:::-;-1:-1:-1::0;8315:4:0::1;::::0;7897:430;-1:-1:-1;;;;;7897:430:0:o;22646:112::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;22724:14:::1;:26:::0;;-1:-1:-1;;;;;;22724:26:0::1;-1:-1:-1::0;;;;;22724:26:0;;;::::1;::::0;;;::::1;::::0;;22646:112::o;9988:248::-;10054:7;10093;;10082;:18;;10074:73;;;;-1:-1:-1;;;10074:73:0;;10790:2:1;10074:73:0;;;10772:21:1;10829:2;10809:18;;;10802:30;10868:34;10848:18;;;10841:62;-1:-1:-1;;;10919:18:1;;;10912:40;10969:19;;10074:73:0;10588:406:1;10074:73:0;10158:19;10181:10;:8;:10::i;:::-;10158:33;-1:-1:-1;10209:19:0;10158:33;10209:7;:19;:::i;:::-;10202:26;9988:248;-1:-1:-1;;;9988:248:0:o;10585:475::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10667:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10659:56;;;::::0;-1:-1:-1;;;10659:56:0;;13560:2:1;10659:56:0::1;::::0;::::1;13542:21:1::0;13599:2;13579:18;;;13572:30;13638:25;13618:18;;;13611:53;13681:18;;10659:56:0::1;13358:347:1::0;10659:56:0::1;10731:9;10726:327;10750:9;:16:::0;10746:20;::::1;10726:327;;;10808:7;-1:-1:-1::0;;;;;10792:23:0::1;:9;10802:1;10792:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10792:12:0::1;:23;10788:254;;;10851:9;10861:16:::0;;:20:::1;::::0;10880:1:::1;::::0;10861:20:::1;:::i;:::-;10851:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10836:9:::1;:12:::0;;-1:-1:-1;;;;;10851:31:0;;::::1;::::0;10846:1;;10836:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10836:46:0::1;-1:-1:-1::0;;;;;10836:46:0;;::::1;;::::0;;10901:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10940:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10940:28:0::1;::::0;;10987:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10987:15:0;;;;;-1:-1:-1;;;;;;10987:15:0::1;::::0;;;;;10726:327:::1;10585:475:::0;:::o;10788:254::-:1;10768:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10726:327;;;;10585:475:::0;:::o;9774:206::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;9841:14:::1;:22:::0;;-1:-1:-1;;9874:19:0;-1:-1:-1;;9841:22:0;::::1;;9874:19:::0;;;;;;;9841:22:::1;9874:19:::0;::::1;;::::0;;;-1:-1:-1;9907:13:0::1;:35:::0;::::1;;;-1:-1:-1::0;9924:13:0::1;::::0;:18;9907:35:::1;9904:68;;;9960:12;9944:13;:28:::0;9904:68:::1;9774:206:::0;:::o;8335:228::-;4246:14;;8436:4;;8415:10;;4246:14;;;:42;;-1:-1:-1;;;;;;4264:24:0;;;;;;:15;:24;;;;;;;;4246:42;4238:78;;;;-1:-1:-1;;;4238:78:0;;;;;;;:::i;:::-;1096:10;8485:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8485:34:0;::::1;::::0;;;;;;;;8453:80:::1;::::0;1096:10;8476:7;;8485:47:::1;::::0;8522:10;;8485:47:::1;:::i;24009:154::-:0;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;24103:6:::1;:27:::0;;-1:-1:-1;;;;;24103:27:0;;::::1;-1:-1:-1::0;;;;;;24103:27:0;;::::1;;::::0;;;24141:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24009:154::o;11068:111::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11137:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;11137:34:0::1;11167:4;11137:34;::::0;;11068:111::o;24239:196::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;24339:9:::1;24314:21;:34;;24306:71;;;::::0;-1:-1:-1;;;24306:71:0;;14630:2:1;24306:71:0::1;::::0;::::1;14612:21:1::0;14669:2;14649:18;;;14642:30;14708:26;14688:18;;;14681:54;14752:18;;24306:71:0::1;14428:348:1::0;24306:71:0::1;24388:39;::::0;24396:10:::1;::::0;24388:39;::::1;;;::::0;24417:9;;24388:39:::1;::::0;;;24417:9;24396:10;24388:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;9296:470:::0;9386:7;9425;;9414;:18;;9406:62;;;;-1:-1:-1;;;9406:62:0;;14270:2:1;9406:62:0;;;14252:21:1;14309:2;14289:18;;;14282:30;14348:33;14328:18;;;14321:61;14399:18;;9406:62:0;14068:355:1;9406:62:0;9484:17;9479:280;;9518:28;9549:32;9560:7;9569:4;9575:5;9549:10;:32::i;:::-;9603:9;;-1:-1:-1;9596:16:0;;-1:-1:-1;9596:16:0;9479:280;9645:28;9676:32;9687:7;9696:4;9702:5;9676:10;:32::i;:::-;9730:17;;;;-1:-1:-1;9723:24:0;;-1:-1:-1;9723:24:0;9479:280;9296:470;;;;:::o;24449:154::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;24554:41:::1;::::0;-1:-1:-1;;;24554:41:0;;-1:-1:-1;;;;;7345:32:1;;;24554:41:0::1;::::0;::::1;7327:51:1::0;7394:18;;;7387:34;;;24554:27:0;::::1;::::0;::::1;::::0;7300:18:1;;24554:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24449:154:::0;;;:::o;10244:333::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10327:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10326:21;10318:61;;;::::0;-1:-1:-1;;;10318:61:0;;12011:2:1;10318:61:0::1;::::0;::::1;11993:21:1::0;12050:2;12030:18;;;12023:30;12089:29;12069:18;;;12062:57;12136:18;;10318:61:0::1;11809:351:1::0;10318:61:0::1;-1:-1:-1::0;;;;;10393:16:0;::::1;10412:1;10393:16:::0;;;:7:::1;:16;::::0;;;;;:20;10390:108:::1;;-1:-1:-1::0;;;;;10469:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10449:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10430:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10390:108:::1;-1:-1:-1::0;;;;;10508:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10508:27:0::1;10531:4;10508:27:::0;;::::1;::::0;;;10546:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10546:23:0::1;::::0;;::::1;::::0;;10244:333::o;23683:183::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;23794:14:::1;4435:1:::0;23794:2:::1;:14;:::i;:::-;23785:23;::::0;:6;:23:::1;:::i;:::-;23771:11;:37:::0;23844:14:::1;4435:1:::0;23844:2:::1;:14;:::i;:::-;23834:24;::::0;:7;:24:::1;:::i;:::-;23819:12;:39:::0;-1:-1:-1;;23683:183:0:o;23183:126::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23270:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;23270:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23183:126::o;21960:331::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;22092:7:::1;:14;22073:8;:15;:33;22065:72;;;::::0;-1:-1:-1;;;22065:72:0;;17319:2:1;22065:72:0::1;::::0;::::1;17301:21:1::0;17358:2;17338:18;;;17331:30;17397:28;17377:18;;;17370:56;17443:18;;22065:72:0::1;17117:350:1::0;22065:72:0::1;22152:9;22148:136;22171:8;:15;22167:1;:19;22148:136;;;22207:65;22222:10;22234:8;22243:1;22234:11;;;;;;;;:::i;:::-;;;;;;;22247:7;22255:1;22247:10;;;;;;;;:::i;:::-;;;;;;;22259:5;22266::::0;22207:14:::1;:65::i;:::-;22188:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22148:136;;7347:198:::0;-1:-1:-1;;;;;7437:20:0;;7413:7;7437:20;;;:11;:20;;;;;;;;7433:49;;;-1:-1:-1;;;;;;7466:16:0;;;;;:7;:16;;;;;;;7347:198::o;7433:49::-;-1:-1:-1;;;;;7520:16:0;;;;;;:7;:16;;;;;;7500:37;;:19;:37::i;1818:94::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;1883:21:::1;1901:1;1883:9;:21::i;:::-;1818:94::o:0;22303:209::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;22399:9:::1;22395:110;22418:8;:15;22414:1;:19;22395:110;;;22488:5;22454:18;:31;22473:8;22482:1;22473:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22454:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22454:31:0;:39;;-1:-1:-1;;22454:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22435:3;::::1;::::0;::::1;:::i;:::-;;;;22395:110;;23070:101:::0;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;23141:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;23141:22:0;;::::1;::::0;;;::::1;::::0;;23070:101::o;11436:206::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;11562:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;11554:5:::1;:51:::0;;;;;;;;;;;;;;;11621:13;::::1;::::0;-1:-1:-1;;11621:13:0::1;11436:206:::0;;;;:::o;8571:390::-;4246:14;;8677:4;;8656:10;;4246:14;;;:42;;-1:-1:-1;;;;;;4264:24:0;;;;;;:15;:24;;;;;;;;4246:42;4238:78;;;;-1:-1:-1;;;4238:78:0;;;;;;;:::i;:::-;1096:10;8694:24:::1;8721:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8721:34:0;::::1;::::0;;;;;;;;8774:35;;::::1;;8766:85;;;::::0;-1:-1:-1;;;8766:85:0;;18727:2:1;8766:85:0::1;::::0;::::1;18709:21:1::0;18766:2;18746:18;;;18739:30;18805:34;18785:18;;;18778:62;-1:-1:-1;;;18856:18:1;;;18849:35;18901:19;;8766:85:0::1;18525:401:1::0;8766:85:0::1;8862:67;1096:10:::0;8885:7;8894:34:::1;8913:15:::0;8894:16;:34:::1;:::i;8862:67::-;-1:-1:-1::0;8949:4:0::1;::::0;8571:390;-1:-1:-1;;;;8571:390:0:o;8973:187::-;4246:14;;9071:4;;9050:10;;4246:14;;;:42;;-1:-1:-1;;;;;;4264:24:0;;;;;;:15;:24;;;;;;;;4246:42;4238:78;;;;-1:-1:-1;;;4238:78:0;;;;;;;:::i;:::-;9092:40:::1;9102:10;9114:9;9125:6;9092:9;:40::i;22520:114::-:0;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;22599:15:::1;:27:::0;;-1:-1:-1;;;;;;22599:27:0::1;-1:-1:-1::0;;;;;22599:27:0;;;::::1;::::0;;;::::1;::::0;;22520:114::o;23542:129::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23631:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;23631:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23542:129::o;22932:130::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;23041:13:::1;4435:1;23041:2;:13;:::i;:::-;23032:22;::::0;:6;:22:::1;:::i;:::-;23011:18;:43:::0;-1:-1:-1;22932:130:0:o;23878:123::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;23979:14:::1;4435:1:::0;23979:2:::1;:14;:::i;:::-;23970:23;::::0;:6;:23:::1;:::i;:::-;23953:14;:40:::0;-1:-1:-1;23878:123:0:o;22772:152::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;22866:16:::1;:4:::0;22873:9:::1;22866:16;:::i;:::-;22851:12;:31:::0;-1:-1:-1;22893:15:0::1;:23:::0;;-1:-1:-1;;22893:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22772:152::o;11187:110::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11254:27:0::1;11284:5;11254:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11254:35:0::1;::::0;;11187:110::o;1920:192::-;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2009:22:0;::::1;2001:73;;;::::0;-1:-1:-1;;;2001:73:0;;11201:2:1;2001:73:0::1;::::0;::::1;11183:21:1::0;11240:2;11220:18;;;11213:30;11279:34;11259:18;;;11252:62;-1:-1:-1;;;11330:18:1;;;11323:36;11376:19;;2001:73:0::1;10999:402:1::0;2001:73:0::1;2085:19;2095:8;2085:9;:19::i;11654:214::-:0;1641:7;1668:6;-1:-1:-1;;;;;1668:6:0;1096:10;1730:23;1722:68;;;;-1:-1:-1;;;1722:68:0;;;;;;;:::i;:::-;11788:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;11776:9:::1;:55:::0;;;;;;;;;;;;;;;11847:13;::::1;::::0;-1:-1:-1;;11847:13:0::1;11654:214:::0;;;;:::o;15687:335::-;-1:-1:-1;;;;;15780:19:0;;15772:68;;;;-1:-1:-1;;;15772:68:0;;16914:2:1;15772:68:0;;;16896:21:1;16953:2;16933:18;;;16926:30;16992:34;16972:18;;;16965:62;-1:-1:-1;;;17043:18:1;;;17036:34;17087:19;;15772:68:0;16712:400:1;15772:68:0;-1:-1:-1;;;;;15859:21:0;;15851:68;;;;-1:-1:-1;;;15851:68:0;;11608:2:1;15851:68:0;;;11590:21:1;11647:2;11627:18;;;11620:30;11686:34;11666:18;;;11659:62;-1:-1:-1;;;11737:18:1;;;11730:32;11779:19;;15851:68:0;11406:398:1;15851:68:0;-1:-1:-1;;;;;15930:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15982:32;;19077:25:1;;;15982:32:0;;19050:18:1;15982:32:0;;;;;;;15687:335;;;:::o;16030:2449::-;-1:-1:-1;;;;;16118:18:0;;16110:68;;;;-1:-1:-1;;;16110:68:0;;16508:2:1;16110:68:0;;;16490:21:1;16547:2;16527:18;;;16520:30;16586:34;16566:18;;;16559:62;-1:-1:-1;;;16637:18:1;;;16630:35;16682:19;;16110:68:0;16306:401:1;16110:68:0;-1:-1:-1;;;;;16197:16:0;;16189:64;;;;-1:-1:-1;;;16189:64:0;;9263:2:1;16189:64:0;;;9245:21:1;9302:2;9282:18;;;9275:30;9341:34;9321:18;;;9314:62;-1:-1:-1;;;9392:18:1;;;9385:33;9435:19;;16189:64:0;9061:399:1;16189:64:0;16281:1;16272:6;:10;16264:64;;;;-1:-1:-1;;;16264:64:0;;15753:2:1;16264:64:0;;;15735:21:1;15792:2;15772:18;;;15765:30;15831:34;15811:18;;;15804:62;-1:-1:-1;;;15882:18:1;;;15875:39;15931:19;;16264:64:0;15551:405:1;16264:64:0;16357:15;16367:4;16357:9;:15::i;:::-;16347:6;:25;;16339:86;;;;-1:-1:-1;;;16339:86:0;;10372:2:1;16339:86:0;;;10354:21:1;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;-1:-1:-1;;;10501:18:1;;;10494:47;10558:19;;16339:86:0;10170:413:1;16339:86:0;-1:-1:-1;;;;;16445:20:0;;;;;;:14;:20;;;;;;;;16444:21;:44;;;;-1:-1:-1;;;;;;16470:18:0;;;;;;:14;:18;;;;;;;;16469:19;16444:44;16436:70;;;;-1:-1:-1;;;16436:70:0;;18026:2:1;16436:70:0;;;18008:21:1;18065:2;18045:18;;;18038:30;-1:-1:-1;;;18084:18:1;;;18077:43;18137:18;;16436:70:0;17824:337:1;16436:70:0;-1:-1:-1;;;;;16531:24:0;;;;;;:18;:24;;;;;;;;16530:25;:52;;;;-1:-1:-1;;;;;;16560:22:0;;;;;;:18;:22;;;;;;;;16559:23;16530:52;16527:128;;;16606:14;;;;16598:45;;;;-1:-1:-1;;;16598:45:0;;10025:2:1;16598:45:0;;;10007:21:1;10064:2;10044:18;;;10037:30;-1:-1:-1;;;10083:18:1;;;10076:48;10141:18;;16598:45:0;9823:342:1;16598:45:0;-1:-1:-1;;;;;16679:24:0;;;;;;:18;:24;;;;;;;;16678:25;:52;;;;-1:-1:-1;;;;;;16708:22:0;;;;;;:18;:22;;;;;;;;16707:23;16678:52;:89;;;;-1:-1:-1;16750:13:0;;:17;;16766:1;16750:17;:::i;:::-;16734:12;:33;;16678:89;16675:180;;;16798:4;;-1:-1:-1;;;;;16792:10:0;;;16798:4;;16792:10;;16784:59;;;;-1:-1:-1;;;16784:59:0;;12728:2:1;16784:59:0;;;12710:21:1;12767:2;12747:18;;;12740:30;12806:34;12786:18;;;12779:62;-1:-1:-1;;;12857:18:1;;;12850:34;12901:19;;16784:59:0;12526:400:1;16784:59:0;16886:4;;-1:-1:-1;;;;;16878:12:0;;;16886:4;;16878:12;:39;;;;-1:-1:-1;;;;;;16895:22:0;;;;;;:18;:22;;;;;;;;16894:23;16878:39;:52;;;;-1:-1:-1;16922:8:0;;;;;;;16921:9;16878:52;16875:246;;;16964:11;;16954:6;:21;;16946:63;;;;-1:-1:-1;;;16946:63:0;;9667:2:1;16946:63:0;;;9649:21:1;9706:2;9686:18;;;9679:30;9745:31;9725:18;;;9718:59;9794:18;;16946:63:0;9465:353:1;16946:63:0;17058:14;;17048:6;17032:13;17042:2;17032:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;17024:85;;;;-1:-1:-1;;;17024:85:0;;12367:2:1;17024:85:0;;;12349:21:1;;;12386:18;;;12379:30;12445:34;12425:18;;;12418:62;12497:18;;17024:85:0;12165:356:1;17024:85:0;17152:4;;-1:-1:-1;;;;;17144:12:0;;;17152:4;;17144:12;;;;:39;;-1:-1:-1;;;;;;17161:22:0;;;;;;:18;:22;;;;;;;;17160:23;17144:39;:68;;;;-1:-1:-1;;;;;;17188:24:0;;;;;;:18;:24;;;;;;;;17187:25;17144:68;:81;;;;-1:-1:-1;17217:8:0;;;;;;;17216:9;17144:81;17141:573;;;17259:12;;17249:6;:22;;17241:65;;;;-1:-1:-1;;;17241:65:0;;18368:2:1;17241:65:0;;;18350:21:1;18407:2;18387:18;;;18380:30;18446:32;18426:18;;;18419:60;18496:18;;17241:65:0;18166:354:1;17241:65:0;17330:4;;-1:-1:-1;;;;;17324:10:0;;;17330:4;;17324:10;17321:134;;17388:14;;17378:6;17362:13;17372:2;17362:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;17354:85;;;;-1:-1:-1;;;17354:85:0;;12367:2:1;17354:85:0;;;12349:21:1;;;12386:18;;;12379:30;12445:34;12425:18;;;12418:62;12497:18;;17354:85:0;12165:356:1;17354:85:0;17472:15;;;;17469:234;;;-1:-1:-1;;;;;17546:15:0;;17507:18;17546:15;;;:9;:15;;;;;;17528:33;;:15;:33;:::i;:::-;17507:54;;17602:12;;17588:10;:26;;17580:55;;;;-1:-1:-1;;;17580:55:0;;16163:2:1;17580:55:0;;;16145:21:1;16202:2;16182:18;;;16175:30;-1:-1:-1;;;16221:18:1;;;16214:46;16277:18;;17580:55:0;15961:340:1;17580:55:0;-1:-1:-1;;;;;;17654:15:0;;;;;;:9;:15;;;;;17672;17654:33;;17469:234;17781:14;4435:1;17781:2;:14;:::i;:::-;17775:20;;:2;:20;:::i;:::-;17765:6;17747:15;17757:4;17747:9;:15::i;:::-;:24;;;;:::i;:::-;:48;17744:111;;17839:15;17849:4;17839:9;:15::i;:::-;17830:6;17813:14;4435:1;17813:2;:14;:::i;:::-;17808:19;;:2;:19;:::i;:::-;:28;;;;:::i;:::-;:46;;;;:::i;:::-;17797:58;;;;:::i;:::-;;;17744:111;17885:12;17928:18;;17900:24;17918:4;17900:9;:24::i;:::-;17961:8;;-1:-1:-1;;17900:46:0;;-1:-1:-1;17961:8:0;;;;;17960:9;:24;;;;-1:-1:-1;17973:11:0;;;;;;;17960:24;:35;;;;;17988:7;17960:35;:51;;;;-1:-1:-1;18007:4:0;;-1:-1:-1;;;;;17999:12:0;;;18007:4;;17999:12;;17960:51;:80;;;;-1:-1:-1;;;;;;18016:24:0;;;;;;:18;:24;;;;;;;;18015:25;17960:80;:107;;;;-1:-1:-1;;;;;;18045:22:0;;;;;;:18;:22;;;;;;;;18044:23;17960:107;17957:261;;;18092:4;;-1:-1:-1;;;;;18086:10:0;;;18092:4;;18086:10;18083:123;;;18114:18;;18099:45;;;;;;;;18134:9;18099:45;;;;;;;;;;;;;;;;;;;;;;;;;;18114:18;18099:14;:45::i;:::-;18083:123;;;18180:18;;18165:41;;;;;;;;18200:5;18165:41;;;;;;;;;;;;;;;;;;;;;;;;;;18180:18;18165:14;:41::i;:::-;18291:8;;18243:4;;18228:12;;18291:8;;;;;;:36;;-1:-1:-1;;;;;;18303:24:0;;;;;;:18;:24;;;;;;;;18291:36;:62;;;-1:-1:-1;;;;;;18331:22:0;;;;;;:18;:22;;;;;;;;18291:62;18288:82;;;18365:5;18355:15;;18288:82;18390:4;;-1:-1:-1;;;;;18384:10:0;;;18390:4;;18384:10;18381:28;;;-1:-1:-1;18405:4:0;18381:28;18422:49;18437:4;18443:2;18447:6;18455:7;18464:6;18422:14;:49::i;:::-;16099:2380;;;16030:2449;;;:::o;14973:158::-;15014:7;15035:15;15052;15071:19;:17;:19::i;:::-;15034:56;;-1:-1:-1;15034:56:0;-1:-1:-1;15108:15:0;15034:56;;15108:15;:::i;:::-;15101:22;;;;14973:158;:::o;12888:471::-;12974:36;;:::i;:::-;13035:37;13047:7;13056;13065:6;13035:11;:37::i;:::-;13023:49;;13192:53;13205:9;13216:7;13225;13234:10;:8;:10::i;:::-;13192:12;:53::i;:::-;13168:20;;;13083:162;13146:20;;;13083:162;13130:14;;;13083:162;13103:25;;;13083:162;;;13280:44;13084:9;13304:7;13313:10;:8;:10::i;:::-;13280:12;:44::i;:::-;13257:19;;;13256:68;12888:471;;;;;:::o;18562:1135::-;18686:28;18717:36;18728:7;18737;18746:6;18717:10;:36::i;:::-;-1:-1:-1;;;;;18770:19:0;;;;;;:11;:19;;;;;;18686:67;;-1:-1:-1;18770:19:0;;18766:115;;;-1:-1:-1;;;;;18846:15:0;;;;;;:7;:15;;;;;;:23;;18862:7;;18846:23;:::i;:::-;-1:-1:-1;;;;;18828:15:0;;;;;;:7;:15;;;;;:41;18766:115;-1:-1:-1;;;;;18895:22:0;;;;;;:11;:22;;;;;;;;18891:130;;;18992:17;;;;-1:-1:-1;;;;;18973:18:0;;;;;;:7;:18;;;;;;:36;;18992:17;18973:36;:::i;:::-;-1:-1:-1;;;;;18952:18:0;;;;;;:7;:18;;;;;:57;18891:130;19067:9;;-1:-1:-1;;;;;19051:15:0;;19067:9;19051:15;;;:7;:15;;;;;;:25;;19067:9;19051:25;:::i;:::-;-1:-1:-1;;;;;19033:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;19127:17;;;19108:18;;;;;;;;;;:36;;19127:17;19108:36;:::i;:::-;-1:-1:-1;;;;;19087:18:0;;;;;;:7;:18;;;;;;;:57;;;;19168:6;;;:10;;;:24;;;19191:1;19182;:6;;;:10;19168:24;19165:56;;;19194:27;19206:1;:6;;;19214:1;:6;;;19194:11;:27::i;:::-;19250:1;19235;:12;;;:16;:36;;;;19270:1;19255;:12;;;:16;19235:36;19232:203;;;19288:41;19303:1;:12;;;19316:1;:12;;;19288:14;:41::i;:::-;19374:4;-1:-1:-1;;;;;19349:74:0;19358:6;-1:-1:-1;;;;;19349:74:0;;19411:1;:11;;;19396:1;:12;;;19381:1;:12;;;:27;;;;:::i;:::-;:41;;;;:::i;:::-;19349:74;;19077:25:1;;;19065:2;19050:18;19349:74:0;;;;;;;19232:203;19463:1;19448;:12;;;:16;:36;;;;19483:1;19468;:12;;;:16;19448:36;19445:83;;;19486:42;19501:1;:12;;;19515:1;:12;;;19486:14;:42::i;:::-;19556:1;19542;:11;;;:15;:34;;;;19575:1;19561;:11;;;:15;19542:34;19539:78;;;19578:39;19592:1;:11;;;19605:1;:11;;;19578:13;:39::i;:::-;19650:9;-1:-1:-1;;;;;19633:46:0;19642:6;-1:-1:-1;;;;;19633:46:0;;19661:1;:17;;;19633:46;;;;19077:25:1;;19065:2;19050:18;;18931:177;19633:46:0;;;;;;;;18673:1024;18562:1135;;;;;:::o;2120:173::-;2176:16;2195:6;;-1:-1:-1;;;;;2212:17:0;;;-1:-1:-1;;;;;;2212:17:0;;;;;;2245:40;;2195:6;;;;;;;2245:40;;2176:16;2245:40;2165:128;2120:173;:::o;19705:1170::-;6017:8;:15;;-1:-1:-1;;6017:15:0;;;;;19860:13:::1;::::0;::::1;::::0;19843:14:::1;::::0;::::1;::::0;19826::::1;::::0;::::1;::::0;6017:15;;19860:13;19826:31:::1;::::0;::::1;:::i;:::-;:47;;;;:::i;:::-;19825:53;::::0;19877:1:::1;19825:53;:::i;:::-;19803:75;;19889:32;19959:11;19942:4;:14;;;19924:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;19889:81:::0;-1:-1:-1;19981:14:0::1;19998:42;19889:81:::0;19998:15;:42:::1;:::i;:::-;19981:59:::0;-1:-1:-1;20078:21:0::1;20112:24;19981:59:::0;20112:16:::1;:24::i;:::-;20149:20;20172:38;20196:14:::0;20172:21:::1;:38;:::i;:::-;20149:61;;20221:19;20272:4;:14;;;20258:11;:28;;;;:::i;:::-;20242:45;::::0;:12;:45:::1;:::i;:::-;20221:66;;20298:29;20344:4;:14;;;20330:11;:28;;;;:::i;:::-;20298:60:::0;-1:-1:-1;20374:25:0;;20371:158:::1;;20456:61;20469:24;20495:21;20456:12;:61::i;:::-;20582:14;::::0;::::1;::::0;20541:20:::1;::::0;20564:15:::1;:11:::0;20578:1:::1;20564:15;:::i;:::-;:32;;;;:::i;:::-;20541:55:::0;-1:-1:-1;20610:16:0;;20607:95:::1;;20650:15;::::0;20642:48:::1;::::0;-1:-1:-1;;;;;20650:15:0::1;20677:12:::0;20642:34:::1;:48::i;:::-;20752:13;::::0;::::1;::::0;20712:19:::1;::::0;20734:15:::1;:11:::0;20748:1:::1;20734:15;:::i;:::-;:31;;;;:::i;:::-;20712:53:::0;-1:-1:-1;20779:15:0;;20776:92:::1;;20818:14;::::0;20810:46:::1;::::0;-1:-1:-1;;;;;20818:14:0::1;20844:11:::0;20810:33:::1;:46::i;:::-;-1:-1:-1::0;;6055:8:0;:16;;-1:-1:-1;;6055:16:0;;;-1:-1:-1;;;;;;;;;19705:1170:0:o;15139:540::-;15236:7;;15272;;15189;;;;;15290:279;15314:9;:16;15310:20;;15290:279;;;15380:7;15356;:21;15364:9;15374:1;15364:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15364:12:0;15356:21;;;;;;;;;;;;;:31;;:66;;;15415:7;15391;:21;15399:9;15409:1;15399:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15399:12:0;15391:21;;;;;;;;;;;;;:31;15356:66;15352:97;;;15432:7;;15441;;15424:25;;;;;;;15139:540;;:::o;15352:97::-;15482:7;:21;15490:9;15500:1;15490:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15490:12:0;15482:21;;;;;;;;;;;;;15474:29;;:7;:29;:::i;:::-;15464:39;;15536:7;:21;15544:9;15554:1;15544:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15544:12:0;15536:21;;;;;;;;;;;;;15528:29;;:7;:29;:::i;:::-;15518:39;-1:-1:-1;15332:3:0;;;;:::i;:::-;;;;15290:279;;;;15601:7;;15593;;:15;;;;:::i;:::-;15583:7;:25;15579:56;;;15618:7;;15627;;15610:25;;;;;;15139:540;;:::o;15579:56::-;15654:7;;15663;;-1:-1:-1;15139:540:0;-1:-1:-1;15139:540:0:o;13367:623::-;13454:28;;:::i;:::-;13501:7;13497:86;;13523:17;;;:27;;;13563:8;;13497:86;13593:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13593:17:0;13624:6;13621:55;;;-1:-1:-1;13632:16:0;;;;;;;;13639:9;13632:16;;;;;;;;;;;;;;;;;;;;;;;;13621:55;;;-1:-1:-1;13664:12:0;;;;;;;;13671:5;13664:12;;;;;;;;;;;;;;;;;;;;;;;;13621:55;13714:8;;13723:3;;13706:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;13697:6;;;:29;13760:14;;;;13775:3;;13752:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13737:12;;;:41;13812:14;;;;13827:3;;13804:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13789:12;;;:41;13863:13;;;;13877:3;;13855:21;;:7;:21;:::i;:::-;:25;;;;:::i;:::-;13841:11;;;:39;;;13939:12;;;;13926;;;;13919:6;;;;13911:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:52;;;;:::i;:::-;13891:17;;;:72;-1:-1:-1;13367:623:0;;;;;:::o;13998:683::-;14124:15;;;;;14239:19;14247:11;14239:7;:19;:::i;:::-;14229:29;;14275:7;14271:69;;-1:-1:-1;14304:7:0;;-1:-1:-1;14322:1:0;;-1:-1:-1;14322:1:0;;-1:-1:-1;14322:1:0;14297:31;;14271:69;14366:11;14359:1;:6;;;:18;;;;:::i;:::-;14352:25;;14414:11;14401:1;:12;;;:24;;;;:::i;:::-;14388:37;;14462:11;14449:1;:12;;;:24;;;;:::i;:::-;14436:37;;14484:17;14516:11;14504:1;:11;;;:23;;;;:::i;:::-;14484:43;-1:-1:-1;14484:43:0;14581:10;14570;14557:12;14565:4;14557:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:44;;;;:::i;:::-;14538:63;;14612:61;13998:683;;;;;;;;;;:::o;14693:272::-;14802:17;14838:7;14834:47;;-1:-1:-1;14867:1:0;14860:9;;14834:47;14917:11;14905:1;:11;;;:23;;;;:::i;:::-;14893:35;14693:272;-1:-1:-1;;;;14693:272:0:o;11876:123::-;11954:4;11944:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;11969:11:0;:22;;11987:4;;11969:11;:15;;:22;;11987:4;;11969:22;:::i;:::-;;;;-1:-1:-1;;;;11876:123:0:o;12007:284::-;12114:10;12090:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;12160:4:0;12140:26;;;;:11;:26;;;;;;;;12137:101;;;12208:4;12192:22;;;;:7;:22;;;;;:34;;12216:10;;12192:22;:34;;12216:10;;12192:34;:::i;:::-;;;;-1:-1:-1;;12137:101:0;12264:4;12248:22;;;;:7;:22;;;;;:35;;12273:10;;12248:22;:35;;12273:10;;12248:35;:::i;12299:284::-;12406:10;12382:11;:21;;;:34;;;;;;;:::i;12595:277::-;12698:9;12675:11;:20;;;:32;;;;;;;:::i;21386:562::-;21536:16;;;21550:1;21536:16;;;;;;;;21512:21;;21536:16;;;;;;;;;;-1:-1:-1;21536:16:0;21512:40;;21581:4;21563;21568:1;21563:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21563:23:0;;;:7;;;;;;;;;;:23;;;;21607:6;;:13;;;-1:-1:-1;;;21607:13:0;;;;:6;;;;;:11;;:13;;;;;21563:7;;21607:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21597:4;21602:1;21597:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21597:23:0;;;:7;;;;;;;;;:23;21665:6;;21633:53;;21650:4;;21665:6;21674:11;21633:8;:53::i;:::-;21725:6;;:215;;-1:-1:-1;;;21725:215:0;;-1:-1:-1;;;;;21725:6:0;;;;:57;;:215;;21797:11;;21725:6;;21867:4;;21894;;21914:15;;21725:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20883:495;21063:6;;21031:53;;21048:4;;-1:-1:-1;;;;;21063:6:0;21072:11;21031:8;:53::i;:::-;21127:6;;-1:-1:-1;;;;;21127:6:0;:22;21157:9;21190:4;21210:11;21127:6;;21322:7;1641;1668:6;-1:-1:-1;;;;;1668:6:0;;1595:87;21322:7;21127:243;;;;;;-1:-1:-1;;;;;;21127:243:0;;;-1:-1:-1;;;;;7791:15:1;;;21127:243:0;;;7773:34:1;7823:18;;;7816:34;;;;7866:18;;;7859:34;;;;7909:18;;;7902:34;7973:15;;;7952:19;;;7945:44;21344:15:0;8005:19:1;;;7998:35;7707:19;;21127:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20883:495;;:::o;3063:317::-;3178:6;3153:21;:31;;3145:73;;;;-1:-1:-1;;;3145:73:0;;13912:2:1;3145:73:0;;;13894:21:1;13951:2;13931:18;;;13924:30;13990:31;13970:18;;;13963:59;14039:18;;3145:73:0;13710:353:1;3145:73:0;3232:12;3250:9;-1:-1:-1;;;;;3250:14:0;3272:6;3250:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3231:52;;;3302:7;3294:78;;;;-1:-1:-1;;;3294:78:0;;13133:2:1;3294:78:0;;;13115:21:1;13172:2;13152:18;;;13145:30;13211:34;13191:18;;;13184:62;13282:28;13262:18;;;13255:56;13328:19;;3294:78:0;12931:422:1;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:748:1:-;68:5;121:3;114:4;106:6;102:17;98:27;88:55;;139:1;136;129:12;88:55;175:6;162:20;201:4;225:60;241:43;281:2;241:43;:::i;:::-;225:60;:::i;:::-;307:3;331:2;326:3;319:15;359:2;354:3;350:12;343:19;;394:2;386:6;382:15;446:3;441:2;435;432:1;428:10;420:6;416:23;412:32;409:41;406:61;;;463:1;460;453:12;406:61;485:1;495:238;509:2;506:1;503:9;495:238;;;580:3;567:17;597:31;622:5;597:31;:::i;:::-;641:18;;679:12;;;;711;;;;527:1;520:9;495:238;;;-1:-1:-1;751:5:1;;14:748;-1:-1:-1;;;;;;;14:748:1:o;767:247::-;826:6;879:2;867:9;858:7;854:23;850:32;847:52;;;895:1;892;885:12;847:52;934:9;921:23;953:31;978:5;953:31;:::i;1019:251::-;1089:6;1142:2;1130:9;1121:7;1117:23;1113:32;1110:52;;;1158:1;1155;1148:12;1110:52;1190:9;1184:16;1209:31;1234:5;1209:31;:::i;1275:388::-;1343:6;1351;1404:2;1392:9;1383:7;1379:23;1375:32;1372:52;;;1420:1;1417;1410:12;1372:52;1459:9;1446:23;1478:31;1503:5;1478:31;:::i;:::-;1528:5;-1:-1:-1;1585:2:1;1570:18;;1557:32;1598:33;1557:32;1598:33;:::i;:::-;1650:7;1640:17;;;1275:388;;;;;:::o;1668:456::-;1745:6;1753;1761;1814:2;1802:9;1793:7;1789:23;1785:32;1782:52;;;1830:1;1827;1820:12;1782:52;1869:9;1856:23;1888:31;1913:5;1888:31;:::i;:::-;1938:5;-1:-1:-1;1995:2:1;1980:18;;1967:32;2008:33;1967:32;2008:33;:::i;:::-;1668:456;;2060:7;;-1:-1:-1;;;2114:2:1;2099:18;;;;2086:32;;1668:456::o;2129:382::-;2194:6;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:30;2408:32;2449:30;:::i;2516:315::-;2584:6;2592;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;2700:9;2687:23;2719:31;2744:5;2719:31;:::i;:::-;2769:5;2821:2;2806:18;;;;2793:32;;-1:-1:-1;;;2516:315:1:o;2836:1149::-;2954:6;2962;3015:2;3003:9;2994:7;2990:23;2986:32;2983:52;;;3031:1;3028;3021:12;2983:52;3071:9;3058:23;3100:18;3141:2;3133:6;3130:14;3127:34;;;3157:1;3154;3147:12;3127:34;3180:61;3233:7;3224:6;3213:9;3209:22;3180:61;:::i;:::-;3170:71;;3260:2;3250:12;;3315:2;3304:9;3300:18;3287:32;3344:2;3334:8;3331:16;3328:36;;;3360:1;3357;3350:12;3328:36;3383:24;;;-1:-1:-1;3438:4:1;3430:13;;3426:27;-1:-1:-1;3416:55:1;;3467:1;3464;3457:12;3416:55;3503:2;3490:16;3526:60;3542:43;3582:2;3542:43;:::i;3526:60::-;3608:3;3632:2;3627:3;3620:15;3660:2;3655:3;3651:12;3644:19;;3691:2;3687;3683:11;3739:7;3734:2;3728;3725:1;3721:10;3717:2;3713:19;3709:28;3706:41;3703:61;;;3760:1;3757;3750:12;3703:61;3782:1;3773:10;;3792:163;3806:2;3803:1;3800:9;3792:163;;;3863:17;;3851:30;;3824:1;3817:9;;;;;3901:12;;;;3933;;3792:163;;;3796:3;3974:5;3964:15;;;;;;;2836:1149;;;;;:::o;3990:477::-;4080:6;4088;4141:2;4129:9;4120:7;4116:23;4112:32;4109:52;;;4157:1;4154;4147:12;4109:52;4197:9;4184:23;4230:18;4222:6;4219:30;4216:50;;;4262:1;4259;4252:12;4216:50;4285:61;4338:7;4329:6;4318:9;4314:22;4285:61;:::i;:::-;4275:71;;;4396:2;4385:9;4381:18;4368:32;4409:28;4431:5;4409:28;:::i;4472:241::-;4528:6;4581:2;4569:9;4560:7;4556:23;4552:32;4549:52;;;4597:1;4594;4587:12;4549:52;4636:9;4623:23;4655:28;4677:5;4655:28;:::i;4718:245::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4905:28;4927:5;4905:28;:::i;4968:309::-;5033:6;5041;5094:2;5082:9;5073:7;5069:23;5065:32;5062:52;;;5110:1;5107;5100:12;5062:52;5149:9;5136:23;5168:28;5190:5;5168:28;:::i;5282:180::-;5341:6;5394:2;5382:9;5373:7;5369:23;5365:32;5362:52;;;5410:1;5407;5400:12;5362:52;-1:-1:-1;5433:23:1;;5282:180;-1:-1:-1;5282:180:1:o;5467:309::-;5532:6;5540;5593:2;5581:9;5572:7;5568:23;5564:32;5561:52;;;5609:1;5606;5599:12;5561:52;5645:9;5632:23;5622:33;;5705:2;5694:9;5690:18;5677:32;5718:28;5740:5;5718:28;:::i;5781:248::-;5849:6;5857;5910:2;5898:9;5889:7;5885:23;5881:32;5878:52;;;5926:1;5923;5916:12;5878:52;-1:-1:-1;;5949:23:1;;;6019:2;6004:18;;;5991:32;;-1:-1:-1;5781:248:1:o;6034:306::-;6122:6;6130;6138;6191:2;6179:9;6170:7;6166:23;6162:32;6159:52;;;6207:1;6204;6197:12;6159:52;6236:9;6230:16;6220:26;;6286:2;6275:9;6271:18;6265:25;6255:35;;6330:2;6319:9;6315:18;6309:25;6299:35;;6034:306;;;;;:::o;6345:385::-;6431:6;6439;6447;6455;6508:3;6496:9;6487:7;6483:23;6479:33;6476:53;;;6525:1;6522;6515:12;6476:53;-1:-1:-1;;6548:23:1;;;6618:2;6603:18;;6590:32;;-1:-1:-1;6669:2:1;6654:18;;6641:32;;6720:2;6705:18;6692:32;;-1:-1:-1;6345:385:1;-1:-1:-1;6345:385:1:o;8459:597::-;8571:4;8600:2;8629;8618:9;8611:21;8661:6;8655:13;8704:6;8699:2;8688:9;8684:18;8677:34;8729:1;8739:140;8753:6;8750:1;8747:13;8739:140;;;8848:14;;;8844:23;;8838:30;8814:17;;;8833:2;8810:26;8803:66;8768:10;;8739:140;;;8897:6;8894:1;8891:13;8888:91;;;8967:1;8962:2;8953:6;8942:9;8938:22;8934:31;8927:42;8888:91;-1:-1:-1;9040:2:1;9019:15;-1:-1:-1;;9015:29:1;9000:45;;;;9047:2;8996:54;;8459:597;-1:-1:-1;;;8459:597:1:o;15190:356::-;15392:2;15374:21;;;15411:18;;;15404:30;15470:34;15465:2;15450:18;;15443:62;15537:2;15522:18;;15190:356::o;17472:347::-;17674:2;17656:21;;;17713:2;17693:18;;;17686:30;17752:25;17747:2;17732:18;;17725:53;17810:2;17795:18;;17472:347::o;19113:980::-;19375:4;19423:3;19412:9;19408:19;19454:6;19443:9;19436:25;19480:2;19518:6;19513:2;19502:9;19498:18;19491:34;19561:3;19556:2;19545:9;19541:18;19534:31;19585:6;19620;19614:13;19651:6;19643;19636:22;19689:3;19678:9;19674:19;19667:26;;19728:2;19720:6;19716:15;19702:29;;19749:1;19759:195;19773:6;19770:1;19767:13;19759:195;;;19838:13;;-1:-1:-1;;;;;19834:39:1;19822:52;;19929:15;;;;19894:12;;;;19870:1;19788:9;19759:195;;;-1:-1:-1;;;;;;;20010:32:1;;;;20005:2;19990:18;;19983:60;-1:-1:-1;;;20074:3:1;20059:19;20052:35;19971:3;19113:980;-1:-1:-1;;;19113:980:1:o;20683:275::-;20754:2;20748:9;20819:2;20800:13;;-1:-1:-1;;20796:27:1;20784:40;;20854:18;20839:34;;20875:22;;;20836:62;20833:88;;;20901:18;;:::i;:::-;20937:2;20930:22;20683:275;;-1:-1:-1;20683:275:1:o;20963:183::-;21023:4;21056:18;21048:6;21045:30;21042:56;;;21078:18;;:::i;:::-;-1:-1:-1;21123:1:1;21119:14;21135:4;21115:25;;20963:183::o;21151:128::-;21191:3;21222:1;21218:6;21215:1;21212:13;21209:39;;;21228:18;;:::i;:::-;-1:-1:-1;21264:9:1;;21151:128::o;21284:217::-;21324:1;21350;21340:132;;21394:10;21389:3;21385:20;21382:1;21375:31;21429:4;21426:1;21419:15;21457:4;21454:1;21447:15;21340:132;-1:-1:-1;21486:9:1;;21284:217::o;21506:422::-;21595:1;21638:5;21595:1;21652:270;21673:7;21663:8;21660:21;21652:270;;;21732:4;21728:1;21724:6;21720:17;21714:4;21711:27;21708:53;;;21741:18;;:::i;:::-;21791:7;21781:8;21777:22;21774:55;;;21811:16;;;;21774:55;21890:22;;;;21850:15;;;;21652:270;;;21656:3;21506:422;;;;;:::o;21933:140::-;21991:5;22020:47;22061:4;22051:8;22047:19;22041:4;22127:5;22157:8;22147:80;;-1:-1:-1;22198:1:1;22212:5;;22147:80;22246:4;22236:76;;-1:-1:-1;22283:1:1;22297:5;;22236:76;22328:4;22346:1;22341:59;;;;22414:1;22409:130;;;;22321:218;;22341:59;22371:1;22362:10;;22385:5;;;22409:130;22446:3;22436:8;22433:17;22430:43;;;22453:18;;:::i;:::-;-1:-1:-1;;22509:1:1;22495:16;;22524:5;;22321:218;;22623:2;22613:8;22610:16;22604:3;22598:4;22595:13;22591:36;22585:2;22575:8;22572:16;22567:2;22561:4;22558:12;22554:35;22551:77;22548:159;;;-1:-1:-1;22660:19:1;;;22692:5;;22548:159;22739:34;22764:8;22758:4;22739:34;:::i;:::-;22809:6;22805:1;22801:6;22797:19;22788:7;22785:32;22782:58;;;22820:18;;:::i;:::-;22858:20;;22078:806;-1:-1:-1;;;22078:806:1:o;22889:168::-;22929:7;22995:1;22991;22987:6;22983:14;22980:1;22977:21;22972:1;22965:9;22958:17;22954:45;22951:71;;;23002:18;;:::i;:::-;-1:-1:-1;23042:9:1;;22889:168::o;23062:125::-;23102:4;23130:1;23127;23124:8;23121:34;;;23135:18;;:::i;:::-;-1:-1:-1;23172:9:1;;23062:125::o;23192:135::-;23231:3;-1:-1:-1;;23252:17:1;;23249:43;;;23272:18;;:::i;:::-;-1:-1:-1;23319:1:1;23308:13;;23192:135::o;23332:127::-;23393:10;23388:3;23384:20;23381:1;23374:31;23424:4;23421:1;23414:15;23448:4;23445:1;23438:15;23464:127;23525:10;23520:3;23516:20;23513:1;23506:31;23556:4;23553:1;23546:15;23580:4;23577:1;23570:15;23596:127;23657:10;23652:3;23648:20;23645:1;23638:31;23688:4;23685:1;23678:15;23712:4;23709:1;23702:15;23728:127;23789:10;23784:3;23780:20;23777:1;23770:31;23820:4;23817:1;23810:15;23844:4;23841:1;23834:15;23860:131;-1:-1:-1;;;;;23935:31:1;;23925:42;;23915:70;;23981:1;23978;23971:12;23996:118;24082:5;24075:13;24068:21;24061:5;24058:32;24048:60;;24104:1;24101;24094:12
Swarm Source
ipfs://26e95f60af6447c0cc6feeaa4dc6ab0f556764b9cb0fd1c3c4bc8af26d7ecddb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,488.67 | 0.000000000000000553 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.