More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 40 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18244656 | 370 days ago | IN | 0 ETH | 0.00019973 | ||||
Approve | 18244655 | 370 days ago | IN | 0 ETH | 0.0003074 | ||||
Approve | 18045867 | 397 days ago | IN | 0 ETH | 0.00045383 | ||||
Approve | 18041805 | 398 days ago | IN | 0 ETH | 0.00068789 | ||||
Approve | 18041620 | 398 days ago | IN | 0 ETH | 0.00081751 | ||||
Remove Limits | 18037748 | 399 days ago | IN | 0 ETH | 0.00038774 | ||||
Disable Transfer... | 18037745 | 399 days ago | IN | 0 ETH | 0.00040579 | ||||
Approve | 18037732 | 399 days ago | IN | 0 ETH | 0.00089614 | ||||
Approve | 18037494 | 399 days ago | IN | 0 ETH | 0.00097831 | ||||
Approve | 18037461 | 399 days ago | IN | 0 ETH | 0.00102192 | ||||
Approve | 18037461 | 399 days ago | IN | 0 ETH | 0.00102192 | ||||
Approve | 18037451 | 399 days ago | IN | 0 ETH | 0.00120506 | ||||
Approve | 18037451 | 399 days ago | IN | 0 ETH | 0.00129816 | ||||
Approve | 18037449 | 399 days ago | IN | 0 ETH | 0.00116867 | ||||
Approve | 18037446 | 399 days ago | IN | 0 ETH | 0.00113681 | ||||
Approve | 18037446 | 399 days ago | IN | 0 ETH | 0.0015092 | ||||
Approve | 18037445 | 399 days ago | IN | 0 ETH | 0.00115139 | ||||
Approve | 18037443 | 399 days ago | IN | 0 ETH | 0.00121085 | ||||
Approve | 18037442 | 399 days ago | IN | 0 ETH | 0.00119979 | ||||
Approve | 18037441 | 399 days ago | IN | 0 ETH | 0.0012204 | ||||
Approve | 18037441 | 399 days ago | IN | 0 ETH | 0.00131349 | ||||
Approve | 18037440 | 399 days ago | IN | 0 ETH | 0.00119999 | ||||
Approve | 18037440 | 399 days ago | IN | 0 ETH | 0.00119999 | ||||
Approve | 18037440 | 399 days ago | IN | 0 ETH | 0.00129308 | ||||
Approve | 18037435 | 399 days ago | IN | 0 ETH | 0.0012386 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18244675 | 370 days ago | 0.01114738 ETH | ||||
18244675 | 370 days ago | 0.01114738 ETH | ||||
18244619 | 370 days ago | 0.01116646 ETH | ||||
18244619 | 370 days ago | 0.01116646 ETH | ||||
18045868 | 397 days ago | 0.01150852 ETH | ||||
18045868 | 397 days ago | 0.01150852 ETH | ||||
18041806 | 398 days ago | 0.01181261 ETH | ||||
18041806 | 398 days ago | 0.01181261 ETH | ||||
18041623 | 398 days ago | 0.01188051 ETH | ||||
18041623 | 398 days ago | 0.01188051 ETH | ||||
18040908 | 398 days ago | 0.01190151 ETH | ||||
18040908 | 398 days ago | 0.01190151 ETH | ||||
18040319 | 398 days ago | 0.01212531 ETH | ||||
18040319 | 398 days ago | 0.01212531 ETH | ||||
18039444 | 398 days ago | 0.01252521 ETH | ||||
18039444 | 398 days ago | 0.01252521 ETH | ||||
18038128 | 398 days ago | 0.01273287 ETH | ||||
18038128 | 398 days ago | 0.01273287 ETH | ||||
18037560 | 399 days ago | 0.01262071 ETH | ||||
18037560 | 399 days ago | 0.01262071 ETH | ||||
18037497 | 399 days ago | 0.0127586 ETH | ||||
18037497 | 399 days ago | 0.0127586 ETH | ||||
18037495 | 399 days ago | 0.01321753 ETH | ||||
18037495 | 399 days ago | 0.01321753 ETH | ||||
18037495 | 399 days ago | 0.01517378 ETH |
Loading...
Loading
Contract Name:
FriendShares
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-31 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * SAFEMATH LIBRARY */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function owner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner_; mapping (address => bool) internal authorizations; constructor(address _owner) { owner_ = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public authorized { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public authorized { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner_; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner_ = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract FriendShares is IBEP20, Auth { using SafeMath for uint256; uint256 public constant MASK = type(uint128).max; address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD; string constant _name = "Friend"; string constant _symbol = "FRIEND"; uint8 constant _decimals = 9; uint256 _totalSupply = 100_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply.div(20); // 5% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping(address => bool) public isPair; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isDividendExempt; uint256 liquidityFee = 0; uint256 buybackFee = 0; uint256 reflectionFee = 0; uint256 devFee = 200; uint256 totalFee = 200; uint256 feeDenominator = 10000; address public autoLiquidityReceiver; address public devFeeReceiver; uint256 targetLiquidity = 25; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; IDividendDistributor public distributor; address public distributorAddress; IDividendDistributor public distributor2; address public distributor2Address; uint256 public launchedAt; uint256 public launchedAtTimestamp; uint256 buybackMultiplierNumerator = 200; uint256 buybackMultiplierDenominator = 100; uint256 buybackMultiplierTriggeredAt; uint256 buybackMultiplierLength = 30 minutes; bool public autoBuybackEnabled = false; bool public tradingEnabled = false; mapping (address => bool) buyBacker; uint256 autoBuybackCap; uint256 autoBuybackAccumulator; uint256 autoBuybackAmount; uint256 autoBuybackBlockPeriod; uint256 autoBuybackBlockLast; uint256 distributorGas = 500000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 2000; // 0.005% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } bool public limitsInEffect = true; bool public walletFee = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; constructor ( address _dexRouter ) Auth(msg.sender) { router = IDEXRouter(_dexRouter); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = _totalSupply; WETH = router.WETH(); distributorAddress = msg.sender; distributor = IDividendDistributor(distributorAddress); distributor2Address = address(0); isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; buyBacker[msg.sender] = true; authorizations[msg.sender] = true; isPair[pair] = true; autoLiquidityReceiver = msg.sender; devFeeReceiver = msg.sender; approve(_dexRouter, _totalSupply); approve(address(pair), _totalSupply); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function owner() external view override returns (address) { return owner_; } modifier onlyBuybacker() { require(buyBacker[msg.sender] == true, ""); _; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "ADDRESS_INVALID"); _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { require(spender != address(0), "ADDRESS_INVALID"); return approve(spender, _totalSupply); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != _totalSupply){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(limitsInEffect){ if ( sender != owner_ && recipient != owner_ && recipient != ZERO && recipient != DEAD ){ if(!tradingEnabled){ require(isFeeExempt[sender] || isFeeExempt[recipient], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (recipient != owner_ && recipient != address(router) && !isPair[recipient]){ require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } } } if(!isFeeExempt[sender]) { checkTxLimit(sender, amount); } if(shouldSwapBack()){ swapBack(); } if(shouldAutoBuyback()){ triggerAutoBuyback(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); bool shouldtax = !inSwap; uint256 amountReceived; // if any account belongs to isFeeExempt account then remove the fee if(isFeeExempt[sender] || isFeeExempt[recipient]) { shouldtax = false; amountReceived = amount; } // only take fees on buys/sells if(shouldtax){ if (isPair[recipient] || isPair[sender] || walletFee){ amountReceived = takeFee(sender, recipient, amount); } else { amountReceived = amount; } } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); handleDividend(sender); handleDividend(recipient); return true; } function handleDividend(address account) internal { if(!isDividendExempt[account]) { if(distributorAddress != address(0)) setShareForDistributor(distributor, account); if(distributor2Address != address(0)) setShareForDistributor(distributor2, account); } } function setShareForDistributor(IDividendDistributor dist, address account) internal { try dist.setShare(account, _balances[account]) { // Successful call } catch Error(string memory reason) { emit ErrorHandled("setShare", reason); } catch (bytes memory /*lowLevelData*/) { emit ErrorHandled("setShare", "Failed to set share"); } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); // emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(sender != address(0), "ADDRESS_INVALID"); require(amount <= _maxTxAmount || isTxLimitExempt[sender], "5% TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); } if(selling){ return getMultipliedFee(); } return totalFee; } function getMultipliedFee() public view returns (uint256) { if (launchedAtTimestamp + 1 days > block.timestamp) { return totalFee.mul(10000).div(feeDenominator); } else if (buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp) { uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp); uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee); return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength)); } return totalFee; } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee(isPair[receiver])).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return !isPair[msg.sender] && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance.sub(balanceBefore); uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2); uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee); uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee); try distributor.deposit{value: amountBNBReflection}() {} catch {} payable(devFeeReceiver).transfer(amountBNBDev); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function shouldAutoBuyback() internal view returns (bool) { return !isPair[msg.sender] && !inSwap && autoBuybackEnabled && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number // After N blocks from last buyback && address(this).balance >= autoBuybackAmount; } function triggerZeusBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized { buyTokens(amount, DEAD); if(triggerBuybackMultiplier){ buybackMultiplierTriggeredAt = block.timestamp; emit BuybackMultiplierActive(buybackMultiplierLength); } } function clearBuybackMultiplier() external authorized { buybackMultiplierTriggeredAt = 0; } function triggerAutoBuyback() internal { buyTokens(autoBuybackAmount, DEAD); autoBuybackBlockLast = block.number; autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount); if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = WETH; path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external authorized { autoBuybackEnabled = _enabled; autoBuybackCap = _cap; autoBuybackAccumulator = 0; autoBuybackAmount = _amount; autoBuybackBlockPeriod = _period; autoBuybackBlockLast = block.number; } function enableTrading() external onlyOwner { require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; } function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized { require(numerator / denominator <= 2 && numerator > denominator); buybackMultiplierNumerator = numerator; buybackMultiplierDenominator = denominator; buybackMultiplierLength = length; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() public authorized { require(launchedAt == 0, "Already launched"); launchedAt = block.number; launchedAtTimestamp = block.timestamp; } function setTxLimit(uint256 amount) external onlyOwner { require(amount >= _totalSupply / 1000); _maxTxAmount = amount; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != DEAD); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _devFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; reflectionFee = _reflectionFee; devFee = _devFee; totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_devFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/4); } function setFeeReceivers(address _autoLiquidityReceiver, address _devFeeReceiver) external authorized { require(_autoLiquidityReceiver != address(0) && _devFeeReceiver != address(0)); autoLiquidityReceiver = _autoLiquidityReceiver; devFeeReceiver = _devFeeReceiver; } function SetWalletFeeStatus(bool isenabled) external authorized { walletFee = isenabled; } // Remove Bot limits after token is stable function removeLimits() external authorized returns (bool){ limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external authorized returns (bool){ transferDelayEnabled = false; return true; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } function updateDistributor(address newDistributor) external authorized { distributorAddress = newDistributor; distributor = IDividendDistributor(newDistributor); } function setDistributorFriend(address _distributor2Address) external authorized { distributor2Address = _distributor2Address; distributor2 = IDividendDistributor(_distributor2Address); } function setPairStatus(address pairAddress, bool status) external authorized { isPair[pairAddress] = status; isDividendExempt[pairAddress] = true; approve(address(pairAddress), _totalSupply); } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); event BuybackMultiplierActive(uint256 duration); event ErrorHandled(string functionCalled, string reason); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dexRouter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"functionCalled","type":"string"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"ErrorHandled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isenabled","type":"bool"}],"name":"SetWalletFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract IDividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor2","outputs":[{"internalType":"contract IDividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_distributor2Address","type":"address"}],"name":"setDistributorFriend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDistributor","type":"address"}],"name":"updateDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560038054821661dead9081179091556004805483169055600580549092161790556200005c6009600a6200065a565b6200006d9064174876e8006200066b565b6006556200008d60146006546200047d60201b620018c61790919060201c565b6007556000600e819055600f81905560105560c8601181905560128190556127106013556019601655606460178190556020919091556021556107086023556024805461ffff191690556207a120602b55602c805460ff19166001179055600654620000fd906107d09062000685565b602d55602e805462ffff0019166101001790556030805460ff191660011790553480156200012a57600080fd5b506040516200338d3803806200338d8339810160408190526200014d91620006a8565b600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601880546001600160a01b038616931683179055825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef9190620006a8565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002679190620006a8565b601980546001600160a01b0319166001600160a01b0392831617905560065430600090815260096020908152604080832060188054871685529083529281902093909355905482516315ab88c960e31b8152925193169263ad5c46489260048082019392918290030181865afa158015620002e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030c9190620006a8565b600280546001600160a01b039283166001600160a01b031991821617909155601b8054821633908117909155601a8054831682179055601d8054831690556000818152600b60209081526040808320805460ff199081166001908117909255600c845282852080548216831790556019805489168652600d8552838620805483168417905530865283862080548316841790556003548916865283862080548316841790558686526025855283862080548316841790558285528386208054831684179055549097168452600a909252909120805490941617909255601480548216831790556015805490911690911790556006546200040e90829062000494565b506019546006546200042a916001600160a01b03169062000494565b5060065433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620006da565b60006200048b828462000685565b90505b92915050565b60006001600160a01b038316620004e35760405162461bcd60e51b815260206004820152600f60248201526e105111149154d4d7d2539590531251608a1b604482015260640160405180910390fd5b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200059e57816000190482111562000582576200058262000547565b808516156200059057918102915b93841c939080029062000562565b509250929050565b600082620005b7575060016200048e565b81620005c6575060006200048e565b8160018114620005df5760028114620005ea576200060a565b60019150506200048e565b60ff841115620005fe57620005fe62000547565b50506001821b6200048e565b5060208310610133831016604e8410600b84101617156200062f575081810a6200048e565b6200063b83836200055d565b806000190482111562000652576200065262000547565b029392505050565b60006200048b60ff841683620005a6565b80820281158282048414176200048e576200048e62000547565b600082620006a357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006bb57600080fd5b81516001600160a01b0381168114620006d357600080fd5b9392505050565b612ca380620006ea6000396000f3fe6080604052600436106103c75760003560e01c8063a4b45c00116101f2578063d51ed1c81161010d578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f14610b7c578063f84ba65d14610b9c578063f887ea4014610bbc578063fe9fbb8014610bdc57600080fd5b8063f0b37c0414610afc578063f1f3bca314610b1c578063f2fde38b14610b3c578063f5cfec0a14610b5c57600080fd5b8063df20fd49116100dc578063df20fd4914610a73578063e5e31b1314610a93578063e884f26014610ac3578063e91f214e14610ad857600080fd5b8063d51ed1c8146109d8578063d806d12f146109f8578063dab84ee714610a0d578063dd62ed3e14610a2d57600080fd5b8063b6a5d7de11610185578063c6d2577d11610154578063c6d2577d14610968578063c876d0b91461097e578063ca2bb6de14610998578063ca33e64c146109b857600080fd5b8063b6a5d7de146108f2578063bc30a61814610912578063bf56b37114610932578063bfe109281461094857600080fd5b8063a9059cbb116101c1578063a9059cbb1461087d578063ac557f661461089d578063ad5c4648146108bd578063b210b06d146108dd57600080fd5b8063a4b45c00146107fd578063a51af4c51461081d578063a71b2fee1461083d578063a8aa1b311461085d57600080fd5b80634a62bb65116102e257806370a08231116102755780638da5cb5b116102445780638da5cb5b1461077057806395d89b411461078e5780639ba81bc5146107bd5780639d1944f5146107dd57600080fd5b806370a08231146106fa578063751039fc146107305780637d1db4a5146107455780638a8c523c1461075b57600080fd5b80635c4a0e54116102b15780635c4a0e54146106685780635c85974f146106a0578063658d4b7f146106c05780636ddd1713146106e057600080fd5b80634a62bb65146105ea5780634ada218b14610609578063571ac8b0146106285780635a0d12291461064857600080fd5b8063201e79911161035a5780632d48e896116103295780632d48e896146105655780632f54bf6e14610585578063313ce567146105b45780633bb8a8d4146105d057600080fd5b8063201e7991146104f05780632375ce401461051057806323b872dd146105305780632b112e491461055057600080fd5b806306fdde031161039657806306fdde0314610453578063095ea7b31461048b5780631161ae39146104bb57806318160ddd146104db57600080fd5b806301339c21146103d35780630445b667146103ea578063048c7baf1461041357806304a66b481461043357600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bfc565b005b3480156103f657600080fd5b50610400602d5481565b6040519081526020015b60405180910390f35b34801561041f57600080fd5b506103e861042e36600461267a565b610c77565b34801561043f57600080fd5b506103e861044e3660046126b3565b610cc5565b34801561045f57600080fd5b50604080518082019091526006815265119c9a595b9960d21b60208201525b60405161040a9190612734565b34801561049757600080fd5b506104ab6104a636600461275c565b610d40565b604051901515815260200161040a565b3480156104c757600080fd5b506104ab6104d6366004612788565b610dcd565b3480156104e757600080fd5b50600654610400565b3480156104fc57600080fd5b506103e861050b366004612788565b610de1565b34801561051c57600080fd5b506103e861052b3660046127aa565b610e11565b34801561053c57600080fd5b506104ab61054b3660046127d6565b610e66565b34801561055c57600080fd5b50610400610f2a565b34801561057157600080fd5b506103e8610580366004612788565b610f7c565b34801561059157600080fd5b506104ab6105a0366004612817565b6000546001600160a01b0391821691161490565b3480156105c057600080fd5b506040516009815260200161040a565b3480156105dc57600080fd5b506024546104ab9060ff1681565b3480156105f657600080fd5b50602e546104ab90610100900460ff1681565b34801561061557600080fd5b506024546104ab90610100900460ff1681565b34801561063457600080fd5b506104ab610643366004612817565b61100b565b34801561065457600080fd5b506103e8610663366004612834565b61103f565b34801561067457600080fd5b50601d54610688906001600160a01b031681565b6040516001600160a01b03909116815260200161040a565b3480156106ac57600080fd5b506103e86106bb366004612869565b6110b3565b3480156106cc57600080fd5b506103e86106db366004612834565b6110fe565b3480156106ec57600080fd5b50602c546104ab9060ff1681565b34801561070657600080fd5b50610400610715366004612817565b6001600160a01b031660009081526008602052604090205490565b34801561073c57600080fd5b506104ab61114e565b34801561075157600080fd5b5061040060075481565b34801561076757600080fd5b506103e8611187565b34801561077c57600080fd5b506000546001600160a01b0316610688565b34801561079a57600080fd5b5060408051808201909152600681526511949251539160d21b602082015261047e565b3480156107c957600080fd5b506103e86107d8366004612882565b61121a565b3480156107e957600080fd5b506103e86107f8366004612869565b61125b565b34801561080957600080fd5b506103e861081836600461289d565b611294565b34801561082957600080fd5b50601b54610688906001600160a01b031681565b34801561084957600080fd5b50601c54610688906001600160a01b031681565b34801561086957600080fd5b50601954610688906001600160a01b031681565b34801561088957600080fd5b506104ab61089836600461275c565b611310565b3480156108a957600080fd5b50602e546104ab9062010000900460ff1681565b3480156108c957600080fd5b50600254610688906001600160a01b031681565b3480156108e957600080fd5b506103e861131d565b3480156108fe57600080fd5b506103e861090d366004612817565b611349565b34801561091e57600080fd5b506103e861092d366004612817565b611395565b34801561093e57600080fd5b50610400601e5481565b34801561095457600080fd5b50601a54610688906001600160a01b031681565b34801561097457600080fd5b50610400601f5481565b34801561098a57600080fd5b506030546104ab9060ff1681565b3480156109a457600080fd5b506103e86109b3366004612817565b6113e6565b3480156109c457600080fd5b50601454610688906001600160a01b031681565b3480156109e457600080fd5b506104006109f3366004612869565b611437565b348015610a0457600080fd5b5061040061147b565b348015610a1957600080fd5b50601554610688906001600160a01b031681565b348015610a3957600080fd5b50610400610a4836600461289d565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a7f57600080fd5b506103e8610a8e3660046128d6565b611549565b348015610a9f57600080fd5b506104ab610aae366004612817565b600a6020526000908152604090205460ff1681565b348015610acf57600080fd5b506104ab611585565b348015610ae457600080fd5b506104006fffffffffffffffffffffffffffffffff81565b348015610b0857600080fd5b506103e8610b17366004612817565b6115bc565b348015610b2857600080fd5b50610400610b37366004612882565b611602565b348015610b4857600080fd5b506103e8610b57366004612817565b61163d565b348015610b6857600080fd5b506103e8610b773660046128f2565b6116d3565b348015610b8857600080fd5b506103e8610b97366004612834565b611754565b348015610ba857600080fd5b506103e8610bb7366004612834565b611858565b348015610bc857600080fd5b50601854610688906001600160a01b031681565b348015610be857600080fd5b506104ab610bf7366004612817565b6118a8565b610c05336118a8565b610c2a5760405162461bcd60e51b8152600401610c2190612915565b60405180910390fd5b601e5415610c6d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610c21565b43601e5542601f55565b610c80336118a8565b610c9c5760405162461bcd60e51b8152600401610c2190612915565b6024805460ff191694151594909417909355602691909155600060275560285560295543602a55565b6000546001600160a01b03163314610cef5760405162461bcd60e51b8152600401610c219061293a565b600e859055600f84905560108390556011829055610d1982610d13858189896118d2565b906118d2565b6012556013819055610d2c600482612970565b60125410610d3957600080fd5b5050505050565b60006001600160a01b038316610d685760405162461bcd60e51b8152600401610c2190612992565b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600082610dd983611437565b119392505050565b610dea336118a8565b610e065760405162461bcd60e51b8152600401610c2190612915565b601691909155601755565b610e1a336118a8565b610e365760405162461bcd60e51b8152600401610c2190612915565b6002610e428385612970565b11158015610e4f57508183115b610e5857600080fd5b602092909255602155602355565b6006546001600160a01b0384166000908152600960209081526040808320338452909152812054909114610f15576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ef09184906118de565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610f2084848461190a565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610f77906003546001600160a01b0316600090815260086020526040902054610f719060065490611d52565b90611d52565b905090565b610f85336118a8565b610fa15760405162461bcd60e51b8152600401610c2190612915565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050505050565b60006001600160a01b0382166110335760405162461bcd60e51b8152600401610c2190612992565b610dc782600654610d40565b611048336118a8565b6110645760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b0382166000908152600a60209081526040808320805485151560ff1991821617909155600d909252909120805490911660011790556006546110ae908390610d40565b505050565b6000546001600160a01b031633146110dd5760405162461bcd60e51b8152600401610c219061293a565b6103e86006546110ed9190612970565b8110156110f957600080fd5b600755565b611107336118a8565b6111235760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000611159336118a8565b6111755760405162461bcd60e51b8152600401610c2190612915565b50602e805461ff001916905560015b90565b6000546001600160a01b031633146111b15760405162461bcd60e51b8152600401610c219061293a565b602454610100900460ff16156112095760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610c21565b6024805461ff001916610100179055565b611223336118a8565b61123f5760405162461bcd60e51b8152600401610c2190612915565b602e8054911515620100000262ff000019909216919091179055565b611264336118a8565b6112805760405162461bcd60e51b8152600401610c2190612915565b620b71b0811061128f57600080fd5b602b55565b61129d336118a8565b6112b95760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b038216158015906112d957506001600160a01b03811615155b6112e257600080fd5b601480546001600160a01b039384166001600160a01b03199182161790915560158054929093169116179055565b6000610f2333848461190a565b611326336118a8565b6113425760405162461bcd60e51b8152600401610c2190612915565b6000602255565b611352336118a8565b61136e5760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61139e336118a8565b6113ba5760405162461bcd60e51b8152600401610c2190612915565b601b80546001600160a01b039092166001600160a01b03199283168117909155601a8054909216179055565b6113ef336118a8565b61140b5760405162461bcd60e51b8152600401610c2190612915565b601d80546001600160a01b039092166001600160a01b03199283168117909155601c8054909216179055565b6000610dc7611444610f2a565b6019546001600160a01b03166000908152600860205260409020546114759061146e906002611d5e565b8590611d5e565b906118c6565b600042601f546201518061148f91906129bb565b11156114b257610f77601354611475612710601254611d5e90919063ffffffff16565b426114ca6023546022546118d290919063ffffffff16565b11156115425760006114ed42610f716023546022546118d290919063ffffffff16565b90506000611514601254610f71602154611475602054601254611d5e90919063ffffffff16565b905061153b6115326023546114758585611d5e90919063ffffffff16565b601254906118d2565b9250505090565b5060125490565b611552336118a8565b61156e5760405162461bcd60e51b8152600401610c2190612915565b602c805460ff191692151592909217909155602d55565b6000611590336118a8565b6115ac5760405162461bcd60e51b8152600401610c2190612915565b506030805460ff19169055600190565b6115c5336118a8565b6115e15760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601e54600161161491906129bb565b1061162757601354610dc7906001611d52565b811561163557610dc761147b565b505060125490565b6000546001600160a01b031633146116675760405162461bcd60e51b8152600401610c219061293a565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6116dc336118a8565b6116f85760405162461bcd60e51b8152600401610c2190612915565b60035461170f9083906001600160a01b0316611d6a565b801561175057426022556023546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b61175d336118a8565b6117795760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03821630148015906117a057506003546001600160a01b03838116911614155b6117a957600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff1916821580159190911790915561180f57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610fd5565b601a546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610fd5565b611861336118a8565b61187d5760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610f238284612970565b6000610f2382846129bb565b600081848411156119025760405162461bcd60e51b8152600401610c219190612734565b505050900390565b602e5460009060ff161561192a57611923848484611e73565b9050610f23565b602e54610100900460ff1615611b3b576000546001600160a01b0385811691161480159061196657506000546001600160a01b03848116911614155b801561198057506004546001600160a01b03848116911614155b801561199a57506003546001600160a01b03848116911614155b15611b3b57602454610100900460ff16611a32576001600160a01b0384166000908152600b602052604090205460ff16806119ed57506001600160a01b0383166000908152600b602052604090205460ff165b611a325760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c21565b60305460ff1615611b3b576000546001600160a01b03848116911614801590611a6957506018546001600160a01b03848116911614155b8015611a8e57506001600160a01b0383166000908152600a602052604090205460ff16155b15611b3b57326000908152602f60205260409020544311611b285760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a205472616e736665722044656c617920656e61626c6560448201527f642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a401610c21565b326000908152602f602052604090204390555b6001600160a01b0384166000908152600b602052604090205460ff16611b6557611b658483611f16565b611b6d611fa8565b15611b7a57611b7a611ff9565b611b82612358565b15611b8f57611b8f6123b5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611be19184906118de565b6001600160a01b038516600090815260086020908152604080832093909355602e54600b9091529181205460ff92831615921680611c3757506001600160a01b0385166000908152600b602052604090205460ff165b15611c43575060009050825b8115611cb5576001600160a01b0385166000908152600a602052604090205460ff1680611c8857506001600160a01b0386166000908152600a602052604090205460ff165b80611c9b5750602e5462010000900460ff165b15611cb257611cab8686866123fc565b9050611cb5565b50825b6001600160a01b038516600090815260086020526040902054611cd890826118d2565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9085815260200190565b60405180910390a3611d3d866124c1565b611d46856124c1565b50600195945050505050565b6000610f2382846129ce565b6000610f2382846129e1565b602e805460ff19166001179055604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b031691839150600090611db857611db86129f8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611dec57611dec6129f8565b6001600160a01b03928316602091820292909201015260185460405163b6f9de9560e01b815291169063b6f9de95908590611e3290600090869088904290600401612a52565b6000604051808303818588803b158015611e4b57600080fd5b505af1158015611e5f573d6000803e3d6000fd5b5050602e805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ec49184906118de565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611ef390836118d2565b6001600160a01b0384166000908152600860205260409020555060019392505050565b6001600160a01b038216611f3c5760405162461bcd60e51b8152600401610c2190612992565b60075481111580611f6557506001600160a01b0382166000908152600c602052604090205460ff165b6117505760405162461bcd60e51b81526020600482015260146024820152730d4948151608131a5b5a5d08115e18d95959195960621b6044820152606401610c21565b336000908152600a602052604081205460ff16158015611fcb5750602e5460ff16155b8015611fd95750602c5460ff165b8015610f77575050602d5430600090815260086020526040902054101590565b602e805460ff1916600117905560165460175460009161201891610dcd565b61202457600e54612027565b60005b9050600061204b600261147560125461147586602d54611d5e90919063ffffffff16565b9050600061206482602d54611d5290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061209e5761209e6129f8565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106120cf576120cf6129f8565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b81524792919091169063791ac94790612119908690600090879030904290600401612a87565b600060405180830381600087803b15801561213357600080fd5b505af1158015612147573d6000803e3d6000fd5b5050505060006121608247611d5290919063ffffffff16565b9050600061217b6121728860026118c6565b60125490611d52565b9050600061219060026114758481878d611d5e565b905060006121ad8361147560105487611d5e90919063ffffffff16565b905060006121ca8461147560115488611d5e90919063ffffffff16565b9050601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561221c57600080fd5b505af19350505050801561222e575060015b506015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612269573d6000803e3d6000fd5b5088156123425760185460145460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af11580156122e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123059190612ac3565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602e805460ff191690555050505050505050565b336000908152600a602052604081205460ff1615801561237b5750602e5460ff16155b8015612389575060245460ff165b80156123a4575043602954602a546123a191906129bb565b11155b8015610f7757505060285447101590565b6028546003546123ce91906001600160a01b0316611d6a565b43602a556028546027546123e1916118d2565b602781905560265410156123fa576024805460ff191690555b565b6013546001600160a01b0383166000908152600a6020526040812054909182916124389190611475906124319060ff16611602565b8690611d5e565b3060009081526008602052604090205490915061245590826118d2565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124a69085815260200190565b60405180910390a36124b88382611d52565b95945050505050565b6001600160a01b0381166000908152600d602052604090205460ff1661252f57601b546001600160a01b03161561250857601a54612508906001600160a01b031682612532565b601d546001600160a01b03161561252f57601c5461252f906001600160a01b031682612532565b50565b6001600160a01b0381811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092526024820152908316906314b6ca9690604401600060405180830381600087803b15801561258e57600080fd5b505af192505050801561259f575060015b611750576125ab612af1565b806308c379a00361260657506125bf612b47565b806125ca5750612608565b7fa9271b3d7fb616790499aa1aea5ffe912965851a6a3431c82edd7639babb1817816040516125f99190612bd1565b60405180910390a1505050565b505b3d808015612632576040519150601f19603f3d011682016040523d82523d6000602084013e612637565b606091505b507fa9271b3d7fb616790499aa1aea5ffe912965851a6a3431c82edd7639babb18176040516125f990612c13565b8035801515811461267557600080fd5b919050565b6000806000806080858703121561269057600080fd5b61269985612665565b966020860135965060408601359560600135945092505050565b600080600080600060a086880312156126cb57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000815180845260005b81811015612714576020818501810151868301820152016126f8565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610f2360208301846126ee565b6001600160a01b038116811461252f57600080fd5b6000806040838503121561276f57600080fd5b823561277a81612747565b946020939093013593505050565b6000806040838503121561279b57600080fd5b50508035926020909101359150565b6000806000606084860312156127bf57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156127eb57600080fd5b83356127f681612747565b9250602084013561280681612747565b929592945050506040919091013590565b60006020828403121561282957600080fd5b8135610f2381612747565b6000806040838503121561284757600080fd5b823561285281612747565b915061286060208401612665565b90509250929050565b60006020828403121561287b57600080fd5b5035919050565b60006020828403121561289457600080fd5b610f2382612665565b600080604083850312156128b057600080fd5b82356128bb81612747565b915060208301356128cb81612747565b809150509250929050565b600080604083850312156128e957600080fd5b61277a83612665565b6000806040838503121561290557600080fd5b8235915061286060208401612665565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261298d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600f908201526e105111149154d4d7d2539590531251608a1b604082015260600190565b80820180821115610dc757610dc761295a565b81810381811115610dc757610dc761295a565b8082028115828204841417610dc757610dc761295a565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612a475781516001600160a01b031687529582019590820190600101612a22565b509495945050505050565b848152608060208201526000612a6b6080830186612a0e565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a060408201526000612aa660a0830186612a0e565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ad857600080fd5b8351925060208401519150604084015190509250925092565b600060033d11156111845760046000803e5060005160e01c90565b601f8201601f1916810167ffffffffffffffff81118282101715612b4057634e487b7160e01b600052604160045260246000fd5b6040525050565b600060443d1015612b555790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612b8557505050505090565b8285019150815181811115612b9d5750505050505090565b843d8701016020828501011115612bb75750505050505090565b612bc660208286010187612b0c565b509095945050505050565b604081526000612bf9604083016008815267736574536861726560c01b602082015260400190565b8281036020840152612c0b81856126ee565b949350505050565b604081526000612c3b604083016008815267736574536861726560c01b602082015260400190565b82810360209384015260138152724661696c656420746f2073657420736861726560681b92810192909252506040019056fea26469706673582212201b444ef754f26ed4e15c353c0877c2f504669c6f9e235779a29982b3d615f03d64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106103c75760003560e01c8063a4b45c00116101f2578063d51ed1c81161010d578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f14610b7c578063f84ba65d14610b9c578063f887ea4014610bbc578063fe9fbb8014610bdc57600080fd5b8063f0b37c0414610afc578063f1f3bca314610b1c578063f2fde38b14610b3c578063f5cfec0a14610b5c57600080fd5b8063df20fd49116100dc578063df20fd4914610a73578063e5e31b1314610a93578063e884f26014610ac3578063e91f214e14610ad857600080fd5b8063d51ed1c8146109d8578063d806d12f146109f8578063dab84ee714610a0d578063dd62ed3e14610a2d57600080fd5b8063b6a5d7de11610185578063c6d2577d11610154578063c6d2577d14610968578063c876d0b91461097e578063ca2bb6de14610998578063ca33e64c146109b857600080fd5b8063b6a5d7de146108f2578063bc30a61814610912578063bf56b37114610932578063bfe109281461094857600080fd5b8063a9059cbb116101c1578063a9059cbb1461087d578063ac557f661461089d578063ad5c4648146108bd578063b210b06d146108dd57600080fd5b8063a4b45c00146107fd578063a51af4c51461081d578063a71b2fee1461083d578063a8aa1b311461085d57600080fd5b80634a62bb65116102e257806370a08231116102755780638da5cb5b116102445780638da5cb5b1461077057806395d89b411461078e5780639ba81bc5146107bd5780639d1944f5146107dd57600080fd5b806370a08231146106fa578063751039fc146107305780637d1db4a5146107455780638a8c523c1461075b57600080fd5b80635c4a0e54116102b15780635c4a0e54146106685780635c85974f146106a0578063658d4b7f146106c05780636ddd1713146106e057600080fd5b80634a62bb65146105ea5780634ada218b14610609578063571ac8b0146106285780635a0d12291461064857600080fd5b8063201e79911161035a5780632d48e896116103295780632d48e896146105655780632f54bf6e14610585578063313ce567146105b45780633bb8a8d4146105d057600080fd5b8063201e7991146104f05780632375ce401461051057806323b872dd146105305780632b112e491461055057600080fd5b806306fdde031161039657806306fdde0314610453578063095ea7b31461048b5780631161ae39146104bb57806318160ddd146104db57600080fd5b806301339c21146103d35780630445b667146103ea578063048c7baf1461041357806304a66b481461043357600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bfc565b005b3480156103f657600080fd5b50610400602d5481565b6040519081526020015b60405180910390f35b34801561041f57600080fd5b506103e861042e36600461267a565b610c77565b34801561043f57600080fd5b506103e861044e3660046126b3565b610cc5565b34801561045f57600080fd5b50604080518082019091526006815265119c9a595b9960d21b60208201525b60405161040a9190612734565b34801561049757600080fd5b506104ab6104a636600461275c565b610d40565b604051901515815260200161040a565b3480156104c757600080fd5b506104ab6104d6366004612788565b610dcd565b3480156104e757600080fd5b50600654610400565b3480156104fc57600080fd5b506103e861050b366004612788565b610de1565b34801561051c57600080fd5b506103e861052b3660046127aa565b610e11565b34801561053c57600080fd5b506104ab61054b3660046127d6565b610e66565b34801561055c57600080fd5b50610400610f2a565b34801561057157600080fd5b506103e8610580366004612788565b610f7c565b34801561059157600080fd5b506104ab6105a0366004612817565b6000546001600160a01b0391821691161490565b3480156105c057600080fd5b506040516009815260200161040a565b3480156105dc57600080fd5b506024546104ab9060ff1681565b3480156105f657600080fd5b50602e546104ab90610100900460ff1681565b34801561061557600080fd5b506024546104ab90610100900460ff1681565b34801561063457600080fd5b506104ab610643366004612817565b61100b565b34801561065457600080fd5b506103e8610663366004612834565b61103f565b34801561067457600080fd5b50601d54610688906001600160a01b031681565b6040516001600160a01b03909116815260200161040a565b3480156106ac57600080fd5b506103e86106bb366004612869565b6110b3565b3480156106cc57600080fd5b506103e86106db366004612834565b6110fe565b3480156106ec57600080fd5b50602c546104ab9060ff1681565b34801561070657600080fd5b50610400610715366004612817565b6001600160a01b031660009081526008602052604090205490565b34801561073c57600080fd5b506104ab61114e565b34801561075157600080fd5b5061040060075481565b34801561076757600080fd5b506103e8611187565b34801561077c57600080fd5b506000546001600160a01b0316610688565b34801561079a57600080fd5b5060408051808201909152600681526511949251539160d21b602082015261047e565b3480156107c957600080fd5b506103e86107d8366004612882565b61121a565b3480156107e957600080fd5b506103e86107f8366004612869565b61125b565b34801561080957600080fd5b506103e861081836600461289d565b611294565b34801561082957600080fd5b50601b54610688906001600160a01b031681565b34801561084957600080fd5b50601c54610688906001600160a01b031681565b34801561086957600080fd5b50601954610688906001600160a01b031681565b34801561088957600080fd5b506104ab61089836600461275c565b611310565b3480156108a957600080fd5b50602e546104ab9062010000900460ff1681565b3480156108c957600080fd5b50600254610688906001600160a01b031681565b3480156108e957600080fd5b506103e861131d565b3480156108fe57600080fd5b506103e861090d366004612817565b611349565b34801561091e57600080fd5b506103e861092d366004612817565b611395565b34801561093e57600080fd5b50610400601e5481565b34801561095457600080fd5b50601a54610688906001600160a01b031681565b34801561097457600080fd5b50610400601f5481565b34801561098a57600080fd5b506030546104ab9060ff1681565b3480156109a457600080fd5b506103e86109b3366004612817565b6113e6565b3480156109c457600080fd5b50601454610688906001600160a01b031681565b3480156109e457600080fd5b506104006109f3366004612869565b611437565b348015610a0457600080fd5b5061040061147b565b348015610a1957600080fd5b50601554610688906001600160a01b031681565b348015610a3957600080fd5b50610400610a4836600461289d565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a7f57600080fd5b506103e8610a8e3660046128d6565b611549565b348015610a9f57600080fd5b506104ab610aae366004612817565b600a6020526000908152604090205460ff1681565b348015610acf57600080fd5b506104ab611585565b348015610ae457600080fd5b506104006fffffffffffffffffffffffffffffffff81565b348015610b0857600080fd5b506103e8610b17366004612817565b6115bc565b348015610b2857600080fd5b50610400610b37366004612882565b611602565b348015610b4857600080fd5b506103e8610b57366004612817565b61163d565b348015610b6857600080fd5b506103e8610b773660046128f2565b6116d3565b348015610b8857600080fd5b506103e8610b97366004612834565b611754565b348015610ba857600080fd5b506103e8610bb7366004612834565b611858565b348015610bc857600080fd5b50601854610688906001600160a01b031681565b348015610be857600080fd5b506104ab610bf7366004612817565b6118a8565b610c05336118a8565b610c2a5760405162461bcd60e51b8152600401610c2190612915565b60405180910390fd5b601e5415610c6d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610c21565b43601e5542601f55565b610c80336118a8565b610c9c5760405162461bcd60e51b8152600401610c2190612915565b6024805460ff191694151594909417909355602691909155600060275560285560295543602a55565b6000546001600160a01b03163314610cef5760405162461bcd60e51b8152600401610c219061293a565b600e859055600f84905560108390556011829055610d1982610d13858189896118d2565b906118d2565b6012556013819055610d2c600482612970565b60125410610d3957600080fd5b5050505050565b60006001600160a01b038316610d685760405162461bcd60e51b8152600401610c2190612992565b3360008181526009602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600082610dd983611437565b119392505050565b610dea336118a8565b610e065760405162461bcd60e51b8152600401610c2190612915565b601691909155601755565b610e1a336118a8565b610e365760405162461bcd60e51b8152600401610c2190612915565b6002610e428385612970565b11158015610e4f57508183115b610e5857600080fd5b602092909255602155602355565b6006546001600160a01b0384166000908152600960209081526040808320338452909152812054909114610f15576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ef09184906118de565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610f2084848461190a565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610f77906003546001600160a01b0316600090815260086020526040902054610f719060065490611d52565b90611d52565b905090565b610f85336118a8565b610fa15760405162461bcd60e51b8152600401610c2190612915565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050505050565b60006001600160a01b0382166110335760405162461bcd60e51b8152600401610c2190612992565b610dc782600654610d40565b611048336118a8565b6110645760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b0382166000908152600a60209081526040808320805485151560ff1991821617909155600d909252909120805490911660011790556006546110ae908390610d40565b505050565b6000546001600160a01b031633146110dd5760405162461bcd60e51b8152600401610c219061293a565b6103e86006546110ed9190612970565b8110156110f957600080fd5b600755565b611107336118a8565b6111235760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000611159336118a8565b6111755760405162461bcd60e51b8152600401610c2190612915565b50602e805461ff001916905560015b90565b6000546001600160a01b031633146111b15760405162461bcd60e51b8152600401610c219061293a565b602454610100900460ff16156112095760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610c21565b6024805461ff001916610100179055565b611223336118a8565b61123f5760405162461bcd60e51b8152600401610c2190612915565b602e8054911515620100000262ff000019909216919091179055565b611264336118a8565b6112805760405162461bcd60e51b8152600401610c2190612915565b620b71b0811061128f57600080fd5b602b55565b61129d336118a8565b6112b95760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b038216158015906112d957506001600160a01b03811615155b6112e257600080fd5b601480546001600160a01b039384166001600160a01b03199182161790915560158054929093169116179055565b6000610f2333848461190a565b611326336118a8565b6113425760405162461bcd60e51b8152600401610c2190612915565b6000602255565b611352336118a8565b61136e5760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61139e336118a8565b6113ba5760405162461bcd60e51b8152600401610c2190612915565b601b80546001600160a01b039092166001600160a01b03199283168117909155601a8054909216179055565b6113ef336118a8565b61140b5760405162461bcd60e51b8152600401610c2190612915565b601d80546001600160a01b039092166001600160a01b03199283168117909155601c8054909216179055565b6000610dc7611444610f2a565b6019546001600160a01b03166000908152600860205260409020546114759061146e906002611d5e565b8590611d5e565b906118c6565b600042601f546201518061148f91906129bb565b11156114b257610f77601354611475612710601254611d5e90919063ffffffff16565b426114ca6023546022546118d290919063ffffffff16565b11156115425760006114ed42610f716023546022546118d290919063ffffffff16565b90506000611514601254610f71602154611475602054601254611d5e90919063ffffffff16565b905061153b6115326023546114758585611d5e90919063ffffffff16565b601254906118d2565b9250505090565b5060125490565b611552336118a8565b61156e5760405162461bcd60e51b8152600401610c2190612915565b602c805460ff191692151592909217909155602d55565b6000611590336118a8565b6115ac5760405162461bcd60e51b8152600401610c2190612915565b506030805460ff19169055600190565b6115c5336118a8565b6115e15760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601e54600161161491906129bb565b1061162757601354610dc7906001611d52565b811561163557610dc761147b565b505060125490565b6000546001600160a01b031633146116675760405162461bcd60e51b8152600401610c219061293a565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6116dc336118a8565b6116f85760405162461bcd60e51b8152600401610c2190612915565b60035461170f9083906001600160a01b0316611d6a565b801561175057426022556023546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b61175d336118a8565b6117795760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03821630148015906117a057506003546001600160a01b03838116911614155b6117a957600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff1916821580159190911790915561180f57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610fd5565b601a546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610fd5565b611861336118a8565b61187d5760405162461bcd60e51b8152600401610c2190612915565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610f238284612970565b6000610f2382846129bb565b600081848411156119025760405162461bcd60e51b8152600401610c219190612734565b505050900390565b602e5460009060ff161561192a57611923848484611e73565b9050610f23565b602e54610100900460ff1615611b3b576000546001600160a01b0385811691161480159061196657506000546001600160a01b03848116911614155b801561198057506004546001600160a01b03848116911614155b801561199a57506003546001600160a01b03848116911614155b15611b3b57602454610100900460ff16611a32576001600160a01b0384166000908152600b602052604090205460ff16806119ed57506001600160a01b0383166000908152600b602052604090205460ff165b611a325760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c21565b60305460ff1615611b3b576000546001600160a01b03848116911614801590611a6957506018546001600160a01b03848116911614155b8015611a8e57506001600160a01b0383166000908152600a602052604090205460ff16155b15611b3b57326000908152602f60205260409020544311611b285760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a205472616e736665722044656c617920656e61626c6560448201527f642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a401610c21565b326000908152602f602052604090204390555b6001600160a01b0384166000908152600b602052604090205460ff16611b6557611b658483611f16565b611b6d611fa8565b15611b7a57611b7a611ff9565b611b82612358565b15611b8f57611b8f6123b5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611be19184906118de565b6001600160a01b038516600090815260086020908152604080832093909355602e54600b9091529181205460ff92831615921680611c3757506001600160a01b0385166000908152600b602052604090205460ff165b15611c43575060009050825b8115611cb5576001600160a01b0385166000908152600a602052604090205460ff1680611c8857506001600160a01b0386166000908152600a602052604090205460ff165b80611c9b5750602e5462010000900460ff165b15611cb257611cab8686866123fc565b9050611cb5565b50825b6001600160a01b038516600090815260086020526040902054611cd890826118d2565b6001600160a01b0380871660008181526008602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d2c9085815260200190565b60405180910390a3611d3d866124c1565b611d46856124c1565b50600195945050505050565b6000610f2382846129ce565b6000610f2382846129e1565b602e805460ff19166001179055604080516002808252606082018352600092602083019080368337505060025482519293506001600160a01b031691839150600090611db857611db86129f8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611dec57611dec6129f8565b6001600160a01b03928316602091820292909201015260185460405163b6f9de9560e01b815291169063b6f9de95908590611e3290600090869088904290600401612a52565b6000604051808303818588803b158015611e4b57600080fd5b505af1158015611e5f573d6000803e3d6000fd5b5050602e805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ec49184906118de565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611ef390836118d2565b6001600160a01b0384166000908152600860205260409020555060019392505050565b6001600160a01b038216611f3c5760405162461bcd60e51b8152600401610c2190612992565b60075481111580611f6557506001600160a01b0382166000908152600c602052604090205460ff165b6117505760405162461bcd60e51b81526020600482015260146024820152730d4948151608131a5b5a5d08115e18d95959195960621b6044820152606401610c21565b336000908152600a602052604081205460ff16158015611fcb5750602e5460ff16155b8015611fd95750602c5460ff165b8015610f77575050602d5430600090815260086020526040902054101590565b602e805460ff1916600117905560165460175460009161201891610dcd565b61202457600e54612027565b60005b9050600061204b600261147560125461147586602d54611d5e90919063ffffffff16565b9050600061206482602d54611d5290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061209e5761209e6129f8565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106120cf576120cf6129f8565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b81524792919091169063791ac94790612119908690600090879030904290600401612a87565b600060405180830381600087803b15801561213357600080fd5b505af1158015612147573d6000803e3d6000fd5b5050505060006121608247611d5290919063ffffffff16565b9050600061217b6121728860026118c6565b60125490611d52565b9050600061219060026114758481878d611d5e565b905060006121ad8361147560105487611d5e90919063ffffffff16565b905060006121ca8461147560115488611d5e90919063ffffffff16565b9050601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561221c57600080fd5b505af19350505050801561222e575060015b506015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612269573d6000803e3d6000fd5b5088156123425760185460145460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af11580156122e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123059190612ac3565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602e805460ff191690555050505050505050565b336000908152600a602052604081205460ff1615801561237b5750602e5460ff16155b8015612389575060245460ff165b80156123a4575043602954602a546123a191906129bb565b11155b8015610f7757505060285447101590565b6028546003546123ce91906001600160a01b0316611d6a565b43602a556028546027546123e1916118d2565b602781905560265410156123fa576024805460ff191690555b565b6013546001600160a01b0383166000908152600a6020526040812054909182916124389190611475906124319060ff16611602565b8690611d5e565b3060009081526008602052604090205490915061245590826118d2565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124a69085815260200190565b60405180910390a36124b88382611d52565b95945050505050565b6001600160a01b0381166000908152600d602052604090205460ff1661252f57601b546001600160a01b03161561250857601a54612508906001600160a01b031682612532565b601d546001600160a01b03161561252f57601c5461252f906001600160a01b031682612532565b50565b6001600160a01b0381811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092526024820152908316906314b6ca9690604401600060405180830381600087803b15801561258e57600080fd5b505af192505050801561259f575060015b611750576125ab612af1565b806308c379a00361260657506125bf612b47565b806125ca5750612608565b7fa9271b3d7fb616790499aa1aea5ffe912965851a6a3431c82edd7639babb1817816040516125f99190612bd1565b60405180910390a1505050565b505b3d808015612632576040519150601f19603f3d011682016040523d82523d6000602084013e612637565b606091505b507fa9271b3d7fb616790499aa1aea5ffe912965851a6a3431c82edd7639babb18176040516125f990612c13565b8035801515811461267557600080fd5b919050565b6000806000806080858703121561269057600080fd5b61269985612665565b966020860135965060408601359560600135945092505050565b600080600080600060a086880312156126cb57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000815180845260005b81811015612714576020818501810151868301820152016126f8565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610f2360208301846126ee565b6001600160a01b038116811461252f57600080fd5b6000806040838503121561276f57600080fd5b823561277a81612747565b946020939093013593505050565b6000806040838503121561279b57600080fd5b50508035926020909101359150565b6000806000606084860312156127bf57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156127eb57600080fd5b83356127f681612747565b9250602084013561280681612747565b929592945050506040919091013590565b60006020828403121561282957600080fd5b8135610f2381612747565b6000806040838503121561284757600080fd5b823561285281612747565b915061286060208401612665565b90509250929050565b60006020828403121561287b57600080fd5b5035919050565b60006020828403121561289457600080fd5b610f2382612665565b600080604083850312156128b057600080fd5b82356128bb81612747565b915060208301356128cb81612747565b809150509250929050565b600080604083850312156128e957600080fd5b61277a83612665565b6000806040838503121561290557600080fd5b8235915061286060208401612665565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261298d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600f908201526e105111149154d4d7d2539590531251608a1b604082015260600190565b80820180821115610dc757610dc761295a565b81810381811115610dc757610dc761295a565b8082028115828204841417610dc757610dc761295a565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612a475781516001600160a01b031687529582019590820190600101612a22565b509495945050505050565b848152608060208201526000612a6b6080830186612a0e565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a060408201526000612aa660a0830186612a0e565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ad857600080fd5b8351925060208401519150604084015190509250925092565b600060033d11156111845760046000803e5060005160e01c90565b601f8201601f1916810167ffffffffffffffff81118282101715612b4057634e487b7160e01b600052604160045260246000fd5b6040525050565b600060443d1015612b555790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612b8557505050505090565b8285019150815181811115612b9d5750505050505090565b843d8701016020828501011115612bb75750505050505090565b612bc660208286010187612b0c565b509095945050505050565b604081526000612bf9604083016008815267736574536861726560c01b602082015260400190565b8281036020840152612c0b81856126ee565b949350505050565b604081526000612c3b604083016008815267736574536861726560c01b602082015260400190565b82810360209384015260138152724661696c656420746f2073657420736861726560681b92810192909252506040019056fea26469706673582212201b444ef754f26ed4e15c353c0877c2f504669c6f9e235779a29982b3d615f03d64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _dexRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
6918:19251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21920:183;;;;;;;;;;;;;:::i;:::-;;9141:50;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9141:50:0;;;;;;;;20948:359;;;;;;;;;;-1:-1:-1;20948:359:0;;;;;:::i;:::-;;:::i;22914:471::-;;;;;;;;;;-1:-1:-1;22914:471:0;;;;;:::i;:::-;;:::i;10980:80::-;;;;;;;;;;-1:-1:-1;11052:5:0;;;;;;;;;;;;-1:-1:-1;;;11052:5:0;;;;10980:80;;;;;;;:::i;11481:285::-;;;;;;;;;;-1:-1:-1;11481:285:0;;;;;:::i;:::-;;:::i;:::-;;;2484:14:1;;2477:22;2459:41;;2447:2;2432:18;11481:285:0;2319:187:1;25215:150:0;;;;;;;;;;-1:-1:-1;25215:150:0;;;;;:::i;:::-;;:::i;10710:88::-;;;;;;;;;;-1:-1:-1;10783:12:0;;10710:88;;24364:183;;;;;;;;;;-1:-1:-1;24364:183:0;;;;;:::i;:::-;;:::i;21472:342::-;;;;;;;;;;-1:-1:-1;21472:342:0;;;;;:::i;:::-;;:::i;12132:359::-;;;;;;;;;;-1:-1:-1;12132:359:0;;;;;:::i;:::-;;:::i;24890:142::-;;;;;;;;;;;;;:::i;24555:183::-;;;;;;;;;;-1:-1:-1;24555:183:0;;;;;:::i;:::-;;:::i;4519:104::-;;;;;;;;;;-1:-1:-1;4519:104:0;;;;;:::i;:::-;4574:4;4609:6;-1:-1:-1;;;;;4598:17:0;;;4609:6;;4598:17;;4519:104;10804:80;;;;;;;;;;-1:-1:-1;10804:80:0;;7454:1;3940:36:1;;3928:2;3913:18;10804:80:0;3798:184:1;8762:38:0;;;;;;;;;;-1:-1:-1;8762:38:0;;;;;;;;9291:33;;;;;;;;;;-1:-1:-1;9291:33:0;;;;;;;;;;;8807:34;;;;;;;;;;-1:-1:-1;8807:34:0;;;;;;;;;;;11774:186;;;;;;;;;;-1:-1:-1;11774:186:0;;;;;:::i;:::-;;:::i;25768:213::-;;;;;;;;;;-1:-1:-1;25768:213:0;;;;;:::i;:::-;;:::i;8451:34::-;;;;;;;;;;-1:-1:-1;8451:34:0;;;;-1:-1:-1;;;;;8451:34:0;;;;;;-1:-1:-1;;;;;4471:32:1;;;4453:51;;4441:2;4426:18;8451:34:0;4307:203:1;22111:144:0;;;;;;;;;;-1:-1:-1;22111:144:0;;;;;:::i;:::-;;:::i;22625:132::-;;;;;;;;;;-1:-1:-1;22625:132:0;;;;;:::i;:::-;;:::i;9104:30::-;;;;;;;;;;-1:-1:-1;9104:30:0;;;;;;;;11229:105;;;;;;;;;;-1:-1:-1;11229:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11313:18:0;11295:7;11313:18;;;:9;:18;;;;;;;11229:105;23875:121;;;;;;;;;;;;;:::i;7529:50::-;;;;;;;;;;;;;;;;21315:147;;;;;;;;;;;;;:::i;11066:76::-;;;;;;;;;;-1:-1:-1;11115:7:0;11133:6;-1:-1:-1;;;;;11133:6:0;11066:76;;10890:84;;;;;;;;;;-1:-1:-1;10964:7:0;;;;;;;;;;;;-1:-1:-1;;;10964:7:0;;;;10890:84;;23706:113;;;;;;;;;;-1:-1:-1;23706:113:0;;;;;:::i;:::-;;:::i;24746:136::-;;;;;;;;;;-1:-1:-1;24746:136:0;;;;;:::i;:::-;;:::i;23393:305::-;;;;;;;;;;-1:-1:-1;23393:305:0;;;;;:::i;:::-;;:::i;8360:33::-;;;;;;;;;;-1:-1:-1;8360:33:0;;;;-1:-1:-1;;;;;8360:33:0;;;8402:40;;;;;;;;;;-1:-1:-1;8402:40:0;;;;-1:-1:-1;;;;;8402:40:0;;;8286:19;;;;;;;;;;-1:-1:-1;8286:19:0;;;;-1:-1:-1;;;;;8286:19:0;;;11968:156;;;;;;;;;;-1:-1:-1;11968:156:0;;;;;:::i;:::-;;:::i;9333:29::-;;;;;;;;;;-1:-1:-1;9333:29:0;;;;;;;;;;;7053:64;;;;;;;;;;-1:-1:-1;7053:64:0;;;;-1:-1:-1;;;;;7053:64:0;;;20140:105;;;;;;;;;;;;;:::i;4190:95::-;;;;;;;;;;-1:-1:-1;4190:95:0;;;;;:::i;:::-;;:::i;25373:178::-;;;;;;;;;;-1:-1:-1;25373:178:0;;;;;:::i;:::-;;:::i;8495:25::-;;;;;;;;;;;;;;;;8314:39;;;;;;;;;;-1:-1:-1;8314:39:0;;;;-1:-1:-1;;;;;8314:39:0;;;8527:34;;;;;;;;;;;;;;;;9554:39;;;;;;;;;;-1:-1:-1;9554:39:0;;;;;;;;25559:201;;;;;;;;;;-1:-1:-1;25559:201:0;;;;;:::i;:::-;;:::i;8084:36::-;;;;;;;;;;-1:-1:-1;8084:36:0;;;;-1:-1:-1;;;;;8084:36:0;;;25040:167;;;;;;;;;;-1:-1:-1;25040:167:0;;;;;:::i;:::-;;:::i;16548:663::-;;;;;;;;;;;;;:::i;8127:29::-;;;;;;;;;;-1:-1:-1;8127:29:0;;;;-1:-1:-1;;;;;8127:29:0;;;11340:133;;;;;;;;;;-1:-1:-1;11340:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11442:19:0;;;11424:7;11442:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11340:133;24200:156;;;;;;;;;;-1:-1:-1;24200:156:0;;;;;:::i;:::-;;:::i;7707:38::-;;;;;;;;;;-1:-1:-1;7707:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24057:135;;;;;;;;;;;;;:::i;6998:48::-;;;;;;;;;;-1:-1:-1;6998:48:0;7029:17;6998:48;;4361:98;;;;;;;;;;-1:-1:-1;4361:98:0;;;;;:::i;:::-;;:::i;16313:227::-;;;;;;;;;;-1:-1:-1;16313:227:0;;;;;:::i;:::-;;:::i;4920:176::-;;;;;;;;;;-1:-1:-1;4920:176:0;;;;;:::i;:::-;;:::i;19816:316::-;;;;;;;;;;-1:-1:-1;19816:316:0;;;;;:::i;:::-;;:::i;22263:354::-;;;;;;;;;;-1:-1:-1;22263:354:0;;;;;:::i;:::-;;:::i;22765:141::-;;;;;;;;;;-1:-1:-1;22765:141:0;;;;;:::i;:::-;;:::i;8255:24::-;;;;;;;;;;-1:-1:-1;8255:24:0;;;;-1:-1:-1;;;;;8255:24:0;;;4694:107;;;;;;;;;;-1:-1:-1;4694:107:0;;;;;:::i;:::-;;:::i;21920:183::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;;;;;;;;;21975:10:::1;::::0;:15;21967:44:::1;;;::::0;-1:-1:-1;;;21967:44:0;;7048:2:1;21967:44:0::1;::::0;::::1;7030:21:1::0;7087:2;7067:18;;;7060:30;-1:-1:-1;;;7106:18:1;;;7099:46;7162:18;;21967:44:0::1;6846:340:1::0;21967:44:0::1;22035:12;22022:10;:25:::0;22080:15:::1;22058:19;:37:::0;21920:183::o;20948:359::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;21074:18:::1;:29:::0;;-1:-1:-1;;21074:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21114:14:::1;:21:::0;;;;-1:-1:-1;21146:22:0::1;:26:::0;21183:17:::1;:27:::0;21221:22:::1;:32:::0;21287:12:::1;21264:20;:35:::0;20948:359::o;22914:471::-;4574:4;4609:6;-1:-1:-1;;;;;4609:6:0;3914:10;4598:17;3898:38;;;;-1:-1:-1;;;3898:38:0;;;;;;;:::i;:::-;23071:12:::1;:28:::0;;;23110:10:::1;:24:::0;;;23145:13:::1;:30:::0;;;23186:6:::1;:16:::0;;;23224:63:::1;23195:7:::0;23224:50:::1;23161:14:::0;23224:50;23086:13;23123:11;23224:17:::1;:30::i;:::-;:34:::0;::::1;:50::i;:63::-;23213:8;:74:::0;23298:14:::1;:32:::0;;;23360:16:::1;23375:1;23315:15:::0;23360:16:::1;:::i;:::-;23349:8;;:27;23341:36;;;::::0;::::1;;22914:471:::0;;;;;:::o;11481:285::-;11556:4;-1:-1:-1;;;;;11575:21:0;;11567:49;;;;-1:-1:-1;;;11567:49:0;;;;;;;:::i;:::-;11654:10;11642:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11642:32:0;;;;;;;;;;;;:41;;;11699:37;160:25:1;;;11642:32:0;;11654:10;11699:37;;133:18:1;11699:37:0;;;;;;;-1:-1:-1;11754:4:0;11481:285;;;;;:::o;25215:150::-;25295:4;25351:6;25319:29;25339:8;25319:19;:29::i;:::-;:38;;25215:150;-1:-1:-1;;;25215:150:0:o;24364:183::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;24462:15:::1;:25:::0;;;;24498:26:::1;:41:::0;24364:183::o;21472:342::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;21632:1:::1;21605:23;21617:11:::0;21605:9;:23:::1;:::i;:::-;:28;;:55;;;;;21649:11;21637:9;:23;21605:55;21597:64;;;::::0;::::1;;21672:26;:38:::0;;;;21721:28:::1;:42:::0;21774:23:::1;:32:::0;21472:342::o;12132:359::-;12281:12;;-1:-1:-1;;;;;12246:19:0;;12232:4;12246:19;;;:11;:19;;;;;;;;12266:10;12246:31;;;;;;;;12232:4;;12246:47;12243:181;;12343:69;;;;;;;;;;;-1:-1:-1;;;12343:69:0;;;;;;;;-1:-1:-1;;;;;12343:19:0;;-1:-1:-1;12343:19:0;;;:11;:19;;;;;12363:10;12343:31;;;;;;;;;;:69;;12379:6;;12343:35;:69::i;:::-;-1:-1:-1;;;;;12309:19:0;;;;;;:11;:19;;;;;;;;12329:10;12309:31;;;;;;;:103;12243:181;12443:40;12457:6;12465:9;12476:6;12443:13;:40::i;:::-;12436:47;;12132:359;;;;;;:::o;24890:142::-;25018:4;;-1:-1:-1;;;;;25018:4:0;24943:7;11313:18;;;:9;:18;;;;;;24970:54;;24997:4;;-1:-1:-1;;;;;24997:4:0;11295:7;11313:18;;;:9;:18;;;;;;24970:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;24963:61;;24890:142;:::o;24555:183::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;24665:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;24665:65:0;;::::1;::::0;::::1;8397:25:1::0;;;8438:18;;;8431:34;;;-1:-1:-1;;;;;24665:11:0;;::::1;::::0;:35:::1;::::0;8370:18:1;;24665:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24555:183:::0;;:::o;11774:186::-;11829:4;-1:-1:-1;;;;;11848:21:0;;11840:49;;;;-1:-1:-1;;;11840:49:0;;;;;;;:::i;:::-;11922:30;11930:7;11939:12;;11922:7;:30::i;25768:213::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25852:19:0;::::1;;::::0;;;:6:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;25852:28:0;;::::1;;::::0;;;25887:16:::1;:29:::0;;;;;;:36;;;;::::1;25852:28:::0;25887:36:::1;::::0;;25960:12:::1;::::0;25930:43:::1;::::0;25859:11;;25930:7:::1;:43::i;:::-;;25768:213:::0;;:::o;22111:144::-;4574:4;4609:6;-1:-1:-1;;;;;4609:6:0;3914:10;4598:17;3898:38;;;;-1:-1:-1;;;3898:38:0;;;;;;;:::i;:::-;22210:4:::1;22195:12;;:19;;;;:::i;:::-;22185:6;:29;;22177:38;;;::::0;::::1;;22226:12;:21:::0;22111:144::o;22625:132::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22721:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;22721:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22625:132::o;23875:121::-;23928:4;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;23944:14:0::1;:22:::0;;-1:-1:-1;;23944:22:0::1;::::0;;:14:::1;4117:1;23875:121:::0;:::o;21315:147::-;4574:4;4609:6;-1:-1:-1;;;;;4609:6:0;3914:10;4598:17;3898:38;;;;-1:-1:-1;;;3898:38:0;;;;;;;:::i;:::-;21378:14:::1;::::0;::::1;::::0;::::1;;;21377:15;21369:54;;;::::0;-1:-1:-1;;;21369:54:0;;8678:2:1;21369:54:0::1;::::0;::::1;8660:21:1::0;8717:2;8697:18;;;8690:30;8756:28;8736:18;;;8729:56;8802:18;;21369:54:0::1;8476:350:1::0;21369:54:0::1;21433:14;:21:::0;;-1:-1:-1;;21433:21:0::1;;;::::0;;21315:147::o;23706:113::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;23790:9:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;23790:21:0;;::::1;::::0;;;::::1;::::0;;23706:113::o;24746:136::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;24836:6:::1;24830:3;:12;24822:21;;;::::0;::::1;;24854:14;:20:::0;24746:136::o;23393:305::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23514:36:0;::::1;::::0;;::::1;::::0;:75:::1;;-1:-1:-1::0;;;;;;23560:29:0;::::1;::::0;::::1;23514:75;23506:84;;;::::0;::::1;;23601:21;:46:::0;;-1:-1:-1;;;;;23601:46:0;;::::1;-1:-1:-1::0;;;;;;23601:46:0;;::::1;;::::0;;;23658:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;23393:305::o;11968:156::-;12048:4;12072:44;12086:10;12098:9;12109:6;12072:13;:44::i;20140:105::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;20236:1:::1;20205:28;:32:::0;20140:105::o;4190:95::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4251:19:0::1;;::::0;;;4273:4:::1;4251:19;::::0;;;;;;;:26;;-1:-1:-1;;4251:26:0::1;::::0;;::::1;::::0;;4190:95::o;25373:178::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;25451:18:::1;:35:::0;;-1:-1:-1;;;;;25451:35:0;;::::1;-1:-1:-1::0;;;;;;25451:35:0;;::::1;::::0;::::1;::::0;;;25493:11:::1;:50:::0;;;;::::1;;::::0;;25373:178::o;25559:201::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;25646:19:::1;:42:::0;;-1:-1:-1;;;;;25646:42:0;;::::1;-1:-1:-1::0;;;;;;25646:42:0;;::::1;::::0;::::1;::::0;;;25695:12:::1;:57:::0;;;;::::1;;::::0;;25559:201::o;25040:167::-;25108:7;25135:64;25176:22;:20;:22::i;:::-;25158:4;;-1:-1:-1;;;;;25158:4:0;11295:7;11313:18;;;:9;:18;;;;;;25135:36;;25148:22;;25168:1;25148:19;:22::i;:::-;25135:8;;:12;:36::i;:::-;:40;;:64::i;16548:663::-;16597:7;16652:15;16621:19;;16643:6;16621:28;;;;:::i;:::-;:46;16617:561;;;16691:39;16715:14;;16691:19;16704:5;16691:8;;:12;;:19;;;;:::i;16617:561::-;16812:15;16752:57;16785:23;;16752:28;;:32;;:57;;;;:::i;:::-;:75;16748:430;;;16844:21;16868:78;16930:15;16868:57;16901:23;;16868:28;;:32;;:57;;;;:::i;:78::-;16844:102;;16961:19;16983:88;17062:8;;16983:74;17028:28;;16983:40;16996:26;;16983:8;;:12;;:40;;;;:::i;:88::-;16961:110;;17093:73;17106:59;17141:23;;17106:30;17122:13;17106:11;:15;;:30;;;;:::i;:59::-;17093:8;;;:12;:73::i;:::-;17086:80;;;;16548:663;:::o;16748:430::-;-1:-1:-1;17195:8:0;;;16548:663::o;24200:156::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;24292:11:::1;:22:::0;;-1:-1:-1;;24292:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;24325:13:::1;:23:::0;24200:156::o;24057:135::-;24118:4;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;24134:20:0::1;:28:::0;;-1:-1:-1;;24134:28:0::1;::::0;;;24057:135;:::o;4361:98::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4424:19:0::1;4446:5;4424:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4424:27:0::1;::::0;;4361:98::o;16313:227::-;16369:7;16410:12;16392:10;;16405:1;16392:14;;;;:::i;:::-;:30;16389:67;;16432:14;;:21;;16451:1;16432:18;:21::i;16389:67::-;16469:7;16466:41;;;16486:18;:16;:18::i;16466:41::-;-1:-1:-1;;16524:8:0;;;16313:227::o;4920:176::-;4574:4;4609:6;-1:-1:-1;;;;;4609:6:0;3914:10;4598:17;3898:38;;;;-1:-1:-1;;;3898:38:0;;;;;;;:::i;:::-;4998:6:::1;:12:::0;;-1:-1:-1;;;;;;4998:12:0::1;-1:-1:-1::0;;;;;4998:12:0;::::1;::::0;;::::1;::::0;;5021:19;;;-1:-1:-1;5021:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;5021:26:0::1;::::0;;::::1;::::0;;;5063:25;;4453:51:1;;;5063:25:0::1;::::0;4426:18:1;5063:25:0::1;;;;;;;4920:176:::0;:::o;19816:316::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;19940:4:::1;::::0;19922:23:::1;::::0;19932:6;;-1:-1:-1;;;;;19940:4:0::1;19922:9;:23::i;:::-;19959:24;19956:169;;;20030:15;19999:28;:46:::0;20089:23:::1;::::0;20065:48:::1;::::0;160:25:1;;;20065:48:0::1;::::0;148:2:1;133:18;20065:48:0::1;;;;;;;19956:169;19816:316:::0;;:::o;22263:354::-;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22360:23:0;::::1;22378:4;22360:23;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;22404:4:0::1;::::0;-1:-1:-1;;;;;22394:14:0;;::::1;22404:4:::0;::::1;22394:14;;22360:48;22352:57;;;::::0;::::1;;-1:-1:-1::0;;;;;22420:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;22420:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;22464:146:::1;;22489:11;::::0;:31:::1;::::0;-1:-1:-1;;;22489:31:0;;-1:-1:-1;;;;;9377:32:1;;;22489:31:0::1;::::0;::::1;9359:51:1::0;22489:11:0::1;9426:18:1::0;;;9419:34;22489:11:0;;::::1;::::0;:20:::1;::::0;9332:18:1;;22489:31:0::1;9177:282:1::0;22464:146:0::1;22551:11;::::0;-1:-1:-1;;;;;22580:17:0;;::::1;22551:11;22580:17:::0;;;:9:::1;:17;::::0;;;;;;;22551:47;;-1:-1:-1;;;22551:47:0;;::::1;::::0;::::1;9359:51:1::0;;;;9426:18;;;9419:34;22551:11:0;::::1;::::0;:20:::1;::::0;9332:18:1;;22551:47:0::1;9177:282:1::0;22765:141:0;4075:24;4088:10;4075:12;:24::i;:::-;4067:48;;;;-1:-1:-1;;;4067:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22866:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;22866:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22765:141::o;4694:107::-;-1:-1:-1;;;;;4774:19:0;4750:4;4774:19;;;:14;:19;;;;;;;;;4694:107::o;1793:98::-;1851:7;1878:5;1882:1;1878;:5;:::i;1475:98::-;1533:7;1560:5;1564:1;1560;:5;:::i;2005:206::-;2091:7;2152:12;2144:6;;;;2136:29;;;;-1:-1:-1;;;2136:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2187:5:0;;;2005:206::o;12499:2297::-;12605:6;;12591:4;;12605:6;;12602:63;;;12621:41;12636:6;12644:9;12655:6;12621:14;:41::i;:::-;12614:48;;;;12602:63;12696:14;;;;;;;12693:961;;;12758:6;;-1:-1:-1;;;;;12748:16:0;;;12758:6;;12748:16;;;;:56;;-1:-1:-1;12798:6:0;;-1:-1:-1;;;;;12785:19:0;;;12798:6;;12785:19;;12748:56;:94;;;;-1:-1:-1;12838:4:0;;-1:-1:-1;;;;;12825:17:0;;;12838:4;;12825:17;;12748:94;:132;;;;-1:-1:-1;12876:4:0;;-1:-1:-1;;;;;12863:17:0;;;12876:4;;12863:17;;12748:132;12726:917;;;12918:14;;;;;;;12914:142;;-1:-1:-1;;;;;12964:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12987:22:0;;;;;;:11;:22;;;;;;;;12964:45;12956:80;;;;-1:-1:-1;;;12956:80:0;;9945:2:1;12956:80:0;;;9927:21:1;9984:2;9964:18;;;9957:30;-1:-1:-1;;;10003:18:1;;;9996:52;10065:18;;12956:80:0;9743:346:1;12956:80:0;13214:20;;;;13210:416;;;13275:6;;-1:-1:-1;;;;;13262:19:0;;;13275:6;;13262:19;;;;:51;;-1:-1:-1;13306:6:0;;-1:-1:-1;;;;;13285:28:0;;;13306:6;;13285:28;;13262:51;:73;;;;-1:-1:-1;;;;;;13318:17:0;;;;;;:6;:17;;;;;;;;13317:18;13262:73;13258:349;;;13400:9;13371:39;;;;:28;:39;;;;;;13413:12;-1:-1:-1;13363:139:0;;;;-1:-1:-1;;;13363:139:0;;10296:2:1;13363:139:0;;;10278:21:1;10335:2;10315:18;;;10308:30;10374:34;10354:18;;;10347:62;10445:34;10425:18;;;10418:62;-1:-1:-1;;;10496:19:1;;;10489:39;10545:19;;13363:139:0;10094:476:1;13363:139:0;13558:9;13529:39;;;;:28;:39;;;;;13571:12;13529:54;;13258:349;-1:-1:-1;;;;;13670:19:0;;;;;;:11;:19;;;;;;;;13666:76;;13702:28;13715:6;13723;13702:12;:28::i;:::-;13757:16;:14;:16::i;:::-;13754:35;;;13776:10;:8;:10::i;:::-;13802:19;:17;:19::i;:::-;13799:48;;;13824:20;:18;:20::i;:::-;13879:53;;;;;;;;;;;-1:-1:-1;;;13879:53:0;;;;;;;;-1:-1:-1;;;;;13879:17:0;;-1:-1:-1;13879:17:0;;;:9;:17;;;;;;;;:53;;13901:6;;13879:21;:53::i;:::-;-1:-1:-1;;;;;13859:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13963:6;;14096:11;:19;;;;;;;13963:6;;;;13962:7;;14096:19;;:45;;-1:-1:-1;;;;;;14119:22:0;;;;;;:11;:22;;;;;;;;14096:45;14093:132;;;-1:-1:-1;14170:5:0;;-1:-1:-1;14207:6:0;14093:132;14289:9;14286:271;;;-1:-1:-1;;;;;14320:17:0;;;;;;:6;:17;;;;;;;;;:35;;-1:-1:-1;;;;;;14341:14:0;;;;;;:6;:14;;;;;;;;14320:35;:48;;;-1:-1:-1;14359:9:0;;;;;;;14320:48;14316:216;;;14407:34;14415:6;14423:9;14434:6;14407:7;:34::i;:::-;14390:51;;14316:216;;;-1:-1:-1;14510:6:0;14316:216;-1:-1:-1;;;;;14592:20:0;;;;;;:9;:20;;;;;;:40;;14617:14;14592:24;:40::i;:::-;-1:-1:-1;;;;;14569:20:0;;;;;;;:9;:20;;;;;;;:63;;;;14650:43;;;;;;;;;;14678:14;160:25:1;;148:2;133:18;;14:177;14650:43:0;;;;;;;;14706:22;14721:6;14706:14;:22::i;:::-;14739:25;14754:9;14739:14;:25::i;:::-;-1:-1:-1;14784:4:0;;12499:2297;-1:-1:-1;;;;;12499:2297:0:o;1581:98::-;1639:7;1666:5;1670:1;1666;:5;:::i;1687:98::-;1745:7;1772:5;1776:1;1772;:5;:::i;20564:376::-;9248:6;:13;;-1:-1:-1;;9248:13:0;9257:4;9248:13;;;20679:16:::1;::::0;;20693:1:::1;20679:16:::0;;;;;::::1;::::0;;-1:-1:-1;;20679:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;20716:4:0::1;::::0;20706:7;;;;-1:-1:-1;;;;;;20716:4:0::1;::::0;20706:7;;-1:-1:-1;20716:4:0::1;::::0;20706:7:::1;;;;:::i;:::-;;;;;;:14;-1:-1:-1::0;;;;;20706:14:0::1;;;-1:-1:-1::0;;;;;20706:14:0::1;;;::::0;::::1;20749:4;20731;20736:1;20731:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20731:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;20767:6:::1;::::0;:165:::1;::::0;-1:-1:-1;;;20767:165:0;;:6;::::1;::::0;:57:::1;::::0;20832:6;;20767:165:::1;::::0;:6:::1;::::0;20870:4;;20889:2;;20906:15:::1;::::0;20767:165:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9266:6:0;:14;;-1:-1:-1;;9266:14:0;;;-1:-1:-1;;;;;;20564:376:0:o;15548:373::-;15719:53;;;;;;;;;;;-1:-1:-1;;;15719:53:0;;;;;;;;-1:-1:-1;;;;;15719:17:0;;15641:4;15719:17;;;:9;:17;;;;;;;:53;;15741:6;;15719:21;:53::i;:::-;-1:-1:-1;;;;;15699:17:0;;;;;;;:9;:17;;;;;;:73;;;;15806:20;;;;;;;:32;;15831:6;15806:24;:32::i;:::-;-1:-1:-1;;;;;15783:20:0;;;;;;:9;:20;;;;;:55;-1:-1:-1;15909:4:0;15548:373;;;;;:::o;15933:239::-;-1:-1:-1;;;;;16014:20:0;;16006:48;;;;-1:-1:-1;;;16006:48:0;;;;;;;:::i;:::-;16100:12;;16090:6;:22;;:49;;;-1:-1:-1;;;;;;16116:23:0;;;;;;:15;:23;;;;;;;;16090:49;16082:82;;;;-1:-1:-1;;;16082:82:0;;12328:2:1;16082:82:0;;;12310:21:1;12367:2;12347:18;;;12340:30;-1:-1:-1;;;12386:18:1;;;12379:50;12446:18;;16082:82:0;12126:344:1;17634:198:0;17715:10;17683:4;17708:18;;;:6;:18;;;;;;;;17707:19;:39;;;;-1:-1:-1;17740:6:0;;;;17739:7;17707:39;:63;;;;-1:-1:-1;17759:11:0;;;;17707:63;:117;;;;-1:-1:-1;;17811:13:0;;17801:4;17783:24;;;;:9;:24;;;;;;:41;;;17634:198::o;17842:1637::-;9248:6;:13;;-1:-1:-1;;9248:13:0;9257:4;9248:13;;;17937:15:::1;::::0;17954:26:::1;::::0;9248:6;;17921:60:::1;::::0;:15:::1;:60::i;:::-;:79;;17988:12;;17921:79;;;17984:1;17921:79;17891:109;;18011:23;18037:59;18094:1;18037:52;18080:8;;18037:38;18055:19;18037:13;;:17;;:38;;;;:::i;:59::-;18011:85;;18107:20;18130:34;18148:15;18130:13;;:17;;:34;;;;:::i;:::-;18201:16;::::0;;18215:1:::1;18201:16:::0;;;;;::::1;::::0;;18107:57;;-1:-1:-1;18177:21:0::1;::::0;18201:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18201:16:0::1;18177:40;;18246:4;18228;18233:1;18228:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18228:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;18272:4:::1;::::0;18262:7;;18272:4;::::1;::::0;18262;;18272;;18262:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;18262:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;18345:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18345:188:0;;18311:21:::1;::::0;18345:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;18417:12;;18287:21:::1;::::0;18460:4;;18487::::1;::::0;18507:15:::1;::::0;18345:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18546:17;18566:40;18592:13;18566:21;:25;;:40;;;;:::i;:::-;18546:60:::0;-1:-1:-1;18619:19:0::1;18641:40;18654:26;:19:::0;18678:1:::1;18654:23;:26::i;:::-;18641:8;::::0;;:12:::1;:40::i;:::-;18619:62:::0;-1:-1:-1;18694:26:0::1;18723:58;18779:1;18723:51;18619:62:::0;18723:51;:9;18737:19;18723:13:::1;:34::i;:58::-;18694:87;;18792:27;18822:45;18855:11;18822:28;18836:13;;18822:9;:13;;:28;;;;:::i;:45::-;18792:75;;18878:20;18901:38;18927:11;18901:21;18915:6;;18901:9;:13;;:21;;;;:::i;:38::-;18878:61;;18956:11;;;;;;;;;-1:-1:-1::0;;;;;18956:11:0::1;-1:-1:-1::0;;;;;18956:19:0::1;;18983;18956:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;18952:65:::0;19035:14:::1;::::0;19027:46:::1;::::0;-1:-1:-1;;;;;19035:14:0;;::::1;::::0;19027:46;::::1;;;::::0;19060:12;;19035:14:::1;19027:46:::0;19035:14;19027:46;19060:12;19035:14;19027:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19113:19:0;;19110:362:::1;;19148:6;::::0;19322:21:::1;::::0;19148:244:::1;::::0;-1:-1:-1;;;19148:244:0;;19224:4:::1;19148:244;::::0;::::1;13403:34:1::0;13453:18;;;13446:34;;;19148:6:0::1;13496:18:1::0;;;13489:34;;;13539:18;;;13532:34;-1:-1:-1;;;;;19322:21:0;;::::1;13582:19:1::0;;;13575:44;19362:15:0::1;13635:19:1::0;;;13628:35;19148:6:0;::::1;::::0;:22:::1;::::0;19178:18;;13337:19:1;;19148:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19412:48:0::1;::::0;;8397:25:1;;;8453:2;8438:18;;8431:34;;;19412:48:0::1;::::0;-1:-1:-1;8370:18:1;19412:48:0::1;;;;;;;19110:362;-1:-1:-1::0;;9266:6:0;:14;;-1:-1:-1;;9266:14:0;;;-1:-1:-1;;;;;;;;17842:1637:0:o;19487:319::-;19571:10;19539:4;19564:18;;;:6;:18;;;;;;;;19563:19;:39;;;;-1:-1:-1;19596:6:0;;;;19595:7;19563:39;:70;;;;-1:-1:-1;19615:18:0;;;;19563:70;:144;;;;;19695:12;19669:22;;19646:20;;:45;;;;:::i;:::-;:61;;19563:144;:235;;;;-1:-1:-1;;19781:17:0;;19756:21;:42;;;19487:319::o;20253:303::-;20313:17;;20332:4;;20303:34;;20313:17;-1:-1:-1;;;;;20332:4:0;20303:9;:34::i;:::-;20371:12;20348:20;:35;20446:17;;20419:22;;:45;;:26;:45::i;:::-;20394:22;:70;;;20503:14;;-1:-1:-1;20475:74:0;;;20520:18;:26;;-1:-1:-1;;20520:26:0;;;20475:74;20253:303::o;17219:407::-;17429:14;;-1:-1:-1;;;;;17406:16:0;;17304:7;17406:16;;;:6;:16;;;;;;17304:7;;;;17383:61;;17429:14;17383:41;;17394:29;;17406:16;;17394:11;:29::i;:::-;17383:6;;:10;:41::i;:61::-;17500:4;17482:24;;;;:9;:24;;;;;;17363:81;;-1:-1:-1;17482:39:0;;17363:81;17482:28;:39::i;:::-;17473:4;17455:24;;;;:9;:24;;;;;;;:66;;;;17537:42;;-1:-1:-1;;;;;17537:42:0;;;;;;;17569:9;160:25:1;;148:2;133:18;;14:177;17537:42:0;;;;;;;;17597:21;:6;17608:9;17597:10;:21::i;:::-;17590:28;17219:407;-1:-1:-1;;;;;17219:407:0:o;14806:331::-;-1:-1:-1;;;;;14867:25:0;;;;;;:16;:25;;;;;;;;14863:267;;14908:18;;-1:-1:-1;;;;;14908:18:0;:32;14905:95;;14979:11;;14956:44;;-1:-1:-1;;;;;14979:11:0;14992:7;14956:22;:44::i;:::-;15024:19;;-1:-1:-1;;;;;15024:19:0;:33;15021:97;;15096:12;;15073:45;;-1:-1:-1;;;;;15096:12:0;15110:7;15073:22;:45::i;:::-;14806:331;:::o;15147:387::-;-1:-1:-1;;;;;15266:18:0;;;;;;;:9;:18;;;;;;;;15243:42;;-1:-1:-1;;;15243:42:0;;;;;9359:51:1;;;;9426:18;;;9419:34;15243:13:0;;;;;;9332:18:1;;15243:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15239:288;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15373:32;15398:6;15373:32;;;;;;:::i;:::-;;;;;;;;15323:90;19816:316;;:::o;15239:288::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15468:47;;;;;;:::i;196:160:1:-;261:20;;317:13;;310:21;300:32;;290:60;;346:1;343;336:12;290:60;196:160;;;:::o;361:385::-;444:6;452;460;468;521:3;509:9;500:7;496:23;492:33;489:53;;;538:1;535;528:12;489:53;561:26;577:9;561:26;:::i;:::-;551:36;634:2;619:18;;606:32;;-1:-1:-1;685:2:1;670:18;;657:32;;736:2;721:18;708:32;;-1:-1:-1;361:385:1;-1:-1:-1;;;361:385:1:o;751:454::-;846:6;854;862;870;878;931:3;919:9;910:7;906:23;902:33;899:53;;;948:1;945;938:12;899:53;-1:-1:-1;;971:23:1;;;1041:2;1026:18;;1013:32;;-1:-1:-1;1092:2:1;1077:18;;1064:32;;1143:2;1128:18;;1115:32;;-1:-1:-1;1194:3:1;1179:19;1166:33;;-1:-1:-1;751:454:1;-1:-1:-1;751:454:1:o;1210:423::-;1252:3;1290:5;1284:12;1317:6;1312:3;1305:19;1342:1;1352:162;1366:6;1363:1;1360:13;1352:162;;;1428:4;1484:13;;;1480:22;;1474:29;1456:11;;;1452:20;;1445:59;1381:12;1352:162;;;1356:3;1559:1;1552:4;1543:6;1538:3;1534:16;1530:27;1523:38;1622:4;1615:2;1611:7;1606:2;1598:6;1594:15;1590:29;1585:3;1581:39;1577:50;1570:57;;;1210:423;;;;:::o;1638:220::-;1787:2;1776:9;1769:21;1750:4;1807:45;1848:2;1837:9;1833:18;1825:6;1807:45;:::i;1863:131::-;-1:-1:-1;;;;;1938:31:1;;1928:42;;1918:70;;1984:1;1981;1974:12;1999:315;2067:6;2075;2128:2;2116:9;2107:7;2103:23;2099:32;2096:52;;;2144:1;2141;2134:12;2096:52;2183:9;2170:23;2202:31;2227:5;2202:31;:::i;:::-;2252:5;2304:2;2289:18;;;;2276:32;;-1:-1:-1;;;1999:315:1:o;2511:248::-;2579:6;2587;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;-1:-1:-1;;2679:23:1;;;2749:2;2734:18;;;2721:32;;-1:-1:-1;2511:248:1:o;2764:316::-;2841:6;2849;2857;2910:2;2898:9;2889:7;2885:23;2881:32;2878:52;;;2926:1;2923;2916:12;2878:52;-1:-1:-1;;2949:23:1;;;3019:2;3004:18;;2991:32;;-1:-1:-1;3070:2:1;3055:18;;;3042:32;;2764:316;-1:-1:-1;2764:316:1:o;3085:456::-;3162:6;3170;3178;3231:2;3219:9;3210:7;3206:23;3202:32;3199:52;;;3247:1;3244;3237:12;3199:52;3286:9;3273:23;3305:31;3330:5;3305:31;:::i;:::-;3355:5;-1:-1:-1;3412:2:1;3397:18;;3384:32;3425:33;3384:32;3425:33;:::i;:::-;3085:456;;3477:7;;-1:-1:-1;;;3531:2:1;3516:18;;;;3503:32;;3085:456::o;3546:247::-;3605:6;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3713:9;3700:23;3732:31;3757:5;3732:31;:::i;3987:315::-;4052:6;4060;4113:2;4101:9;4092:7;4088:23;4084:32;4081:52;;;4129:1;4126;4119:12;4081:52;4168:9;4155:23;4187:31;4212:5;4187:31;:::i;:::-;4237:5;-1:-1:-1;4261:35:1;4292:2;4277:18;;4261:35;:::i;:::-;4251:45;;3987:315;;;;;:::o;4515:180::-;4574:6;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;-1:-1:-1;4666:23:1;;4515:180;-1:-1:-1;4515:180:1:o;4700:::-;4756:6;4809:2;4797:9;4788:7;4784:23;4780:32;4777:52;;;4825:1;4822;4815:12;4777:52;4848:26;4864:9;4848:26;:::i;4885:388::-;4953:6;4961;5014:2;5002:9;4993:7;4989:23;4985:32;4982:52;;;5030:1;5027;5020:12;4982:52;5069:9;5056:23;5088:31;5113:5;5088:31;:::i;:::-;5138:5;-1:-1:-1;5195:2:1;5180:18;;5167:32;5208:33;5167:32;5208:33;:::i;:::-;5260:7;5250:17;;;4885:388;;;;;:::o;5514:248::-;5579:6;5587;5640:2;5628:9;5619:7;5615:23;5611:32;5608:52;;;5656:1;5653;5646:12;5608:52;5679:26;5695:9;5679:26;:::i;6027:248::-;6092:6;6100;6153:2;6141:9;6132:7;6128:23;6124:32;6121:52;;;6169:1;6166;6159:12;6121:52;6205:9;6192:23;6182:33;;6234:35;6265:2;6254:9;6250:18;6234:35;:::i;6506:335::-;6708:2;6690:21;;;6747:2;6727:18;;;6720:30;-1:-1:-1;;;6781:2:1;6766:18;;6759:41;6832:2;6817:18;;6506:335::o;7191:329::-;7393:2;7375:21;;;7432:1;7412:18;;;7405:29;-1:-1:-1;;;7465:2:1;7450:18;;7443:36;7511:2;7496:18;;7191:329::o;7525:127::-;7586:10;7581:3;7577:20;7574:1;7567:31;7617:4;7614:1;7607:15;7641:4;7638:1;7631:15;7657:217;7697:1;7723;7713:132;;7767:10;7762:3;7758:20;7755:1;7748:31;7802:4;7799:1;7792:15;7830:4;7827:1;7820:15;7713:132;-1:-1:-1;7859:9:1;;7657:217::o;7879:339::-;8081:2;8063:21;;;8120:2;8100:18;;;8093:30;-1:-1:-1;;;8154:2:1;8139:18;;8132:45;8209:2;8194:18;;7879:339::o;8831:125::-;8896:9;;;8917:10;;;8914:36;;;8930:18;;:::i;10575:128::-;10642:9;;;10663:11;;;10660:37;;;10677:18;;:::i;10708:168::-;10781:9;;;10812;;10829:15;;;10823:22;;10809:37;10799:71;;10850:18;;:::i;11013:127::-;11074:10;11069:3;11065:20;11062:1;11055:31;11105:4;11102:1;11095:15;11129:4;11126:1;11119:15;11145:461;11198:3;11236:5;11230:12;11263:6;11258:3;11251:19;11289:4;11318:2;11313:3;11309:12;11302:19;;11355:2;11348:5;11344:14;11376:1;11386:195;11400:6;11397:1;11394:13;11386:195;;;11465:13;;-1:-1:-1;;;;;11461:39:1;11449:52;;11521:12;;;;11556:15;;;;11497:1;11415:9;11386:195;;;-1:-1:-1;11597:3:1;;11145:461;-1:-1:-1;;;;;11145:461:1:o;11611:510::-;11882:6;11871:9;11864:25;11925:3;11920:2;11909:9;11905:18;11898:31;11845:4;11946:57;11998:3;11987:9;11983:19;11975:6;11946:57;:::i;:::-;-1:-1:-1;;;;;12039:32:1;;;;12034:2;12019:18;;12012:60;-1:-1:-1;12103:2:1;12088:18;12081:34;11938:65;11611:510;-1:-1:-1;;11611:510:1:o;12475:582::-;12774:6;12763:9;12756:25;12817:6;12812:2;12801:9;12797:18;12790:34;12860:3;12855:2;12844:9;12840:18;12833:31;12737:4;12881:57;12933:3;12922:9;12918:19;12910:6;12881:57;:::i;:::-;-1:-1:-1;;;;;12974:32:1;;;;12969:2;12954:18;;12947:60;-1:-1:-1;13038:3:1;13023:19;13016:35;12873:65;12475:582;-1:-1:-1;;;12475:582:1:o;13674:306::-;13762:6;13770;13778;13831:2;13819:9;13810:7;13806:23;13802:32;13799:52;;;13847:1;13844;13837:12;13799:52;13876:9;13870:16;13860:26;;13926:2;13915:9;13911:18;13905:25;13895:35;;13970:2;13959:9;13955:18;13949:25;13939:35;;13674:306;;;;;:::o;13985:179::-;14020:3;14062:1;14044:16;14041:23;14038:120;;;14108:1;14105;14102;14087:23;-1:-1:-1;14145:1:1;14139:8;14134:3;14130:18;13985:179;:::o;14169:346::-;14279:2;14260:13;;-1:-1:-1;;14256:27:1;14244:40;;14314:18;14299:34;;14335:22;;;14296:62;14293:185;;;14400:10;14395:3;14391:20;14388:1;14381:31;14435:4;14432:1;14425:15;14463:4;14460:1;14453:15;14293:185;14494:2;14487:22;-1:-1:-1;;14169:346:1:o;14520:671::-;14559:3;14601:4;14583:16;14580:26;14577:39;;;14520:671;:::o;14577:39::-;14643:2;14637:9;-1:-1:-1;;14708:16:1;14704:25;;14701:1;14637:9;14680:50;14759:4;14753:11;14783:16;14818:18;14889:2;14882:4;14874:6;14870:17;14867:25;14862:2;14854:6;14851:14;14848:45;14845:58;;;14896:5;;;;;14520:671;:::o;14845:58::-;14933:6;14927:4;14923:17;14912:28;;14969:3;14963:10;14996:2;14988:6;14985:14;14982:27;;;15002:5;;;;;;14520:671;:::o;14982:27::-;15086:2;15067:16;15061:4;15057:27;15053:36;15046:4;15037:6;15032:3;15028:16;15024:27;15021:69;15018:82;;;15093:5;;;;;;14520:671;:::o;15018:82::-;15109:57;15160:4;15151:6;15143;15139:19;15135:30;15129:4;15109:57;:::i;:::-;-1:-1:-1;15182:3:1;;14520:671;-1:-1:-1;;;;;14520:671:1:o;15357:440::-;15607:2;15596:9;15589:21;15570:4;15633:49;15678:2;15667:9;15663:18;15273:1;15261:14;;-1:-1:-1;;;15300:4:1;15291:14;;15284:34;15343:2;15334:12;;15196:156;15633:49;15730:9;15722:6;15718:22;15713:2;15702:9;15698:18;15691:50;15758:33;15784:6;15776;15758:33;:::i;:::-;15750:41;15357:440;-1:-1:-1;;;;15357:440:1:o;15802:557::-;16105:2;16094:9;16087:21;16068:4;16131:49;16176:2;16165:9;16161:18;15273:1;15261:14;;-1:-1:-1;;;15300:4:1;15291:14;;15284:34;15343:2;15334:12;;15196:156;16131:49;16216:22;;;16211:2;16196:18;;;16189:50;16263:2;16248:18;;-1:-1:-1;;;16282:15:1;;;16275:46;;;;-1:-1:-1;16350:2:1;16338:15;;15802:557::o
Swarm Source
ipfs://1b444ef754f26ed4e15c353c0877c2f504669c6f9e235779a29982b3d615f03d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.