ERC-20
Overview
Max Total Supply
1,000,000 TWIBA
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TwibaInu
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-30 */ //SPDX-License-Identifier: MIT /** Twiba Inu presents the first ever decentralised token that rewards its holders in Shiba’s $BONE. Total supply - 1,000,000 Max wallet - 20,000 (2%) Max txn - 20,000 (2%) Tax Distribution - 6% Rewards - 2% Marketing - 2% Liquidity - 2% Telegram - https://t.me/TwibaInuETH Twitter - https://t.me/TwibaInuETH */ pragma solidity 0.8.10; library TransferHelper { function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0x095ea7b3, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: APPROVE_FAILED" ); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0xa9059cbb, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: TRANSFER_FAILED" ); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0x23b872dd, from, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper: TRANSFER_FROM_FAILED" ); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, "TransferHelper: ETH_TRANSFER_FAILED"); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface 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 getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function 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 DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IDEXRouter router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IBEP20 RewardToken = IBEP20(0x9813037ee2218799597d83D4a5B6F3b6778218d9); //BONE REWARDS address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 1 * (10 ** 18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress); _token = msg.sender; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { require(shouldDistribute(msg.sender), "Too quick. Please wait for a bit!"); distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } 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 onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { 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 RenounceOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract TwibaInu is IBEP20, Auth { using SafeMath for uint256; string constant _name = "Twiba Inu"; string constant _symbol = "TWIBA"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address marketingAddress = 0x0dE50b221B658750cc6593F8F26E0f7fB01D4e8D; //Marketing Funds uint256 _totalSupply = 1 * 1000000 * (10 ** _decimals); uint256 public _maxTxAmount = 20000 * 10**18 ; uint256 public _walletMax = 20000 * 10**18 ; bool public restrictWhales = true; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; mapping (address => bool) public blackList; mapping (address => bool) public exchangePairs; uint256 public liquidityFee = 2; uint256 public rewardsFee = 2; uint256 public marketingFee = 2; //sell extra add 0% fee. uint256 public extraFeeOnSell = 93; uint256 public burnPercentage = 1; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver = marketingAddress; IDEXRouter public router; address public pair; uint256 public launchedAt; uint256 public silentBlockNumber = 0; bool public tradingOpen = true; bool public antiBotOpen = true; DividendDistributor public dividendDistributor; uint256 distributorGas = 200000; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; address[] private burnAddressList; uint256 public swapThreshold = _totalSupply * 5 / 4000; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = 2**256 - 1; exchangePairs[pair] = true; dividendDistributor = new DividendDistributor(address(router)); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isDividendExempt[pair] = true; isDividendExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; totalFee = liquidityFee.add(rewardsFee).add(marketingFee); totalFeeIfSelling = totalFee.add(extraFeeOnSell); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function isExistAccount(address account) private view returns(bool) { bool isExistAcc = false; uint256 index = 0; for (index; index < burnAddressList.length; index++) { if (burnAddressList[index] == account) { isExistAcc = true; break; } } return isExistAcc; } function addToBurnList(address account) external onlyOwner { require(!isExistAccount(account), "You already added this address"); burnAddressList.push(account); } function removeToBurnList(address account) external onlyOwner { uint256 index = 0; for (index; index < burnAddressList.length; index++) { if (burnAddressList[index] == account) { burnAddressList[index]=burnAddressList[burnAddressList.length-1]; break; } } if(index != burnAddressList.length){ burnAddressList.pop(); } } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function _burn(address account, uint256 amount) internal { require(account != address(0), 'BEP20: burn from the zero address'); _balances[account] = _balances[account].sub(amount, 'BEP20: burn amount exceeds balance'); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function burn() public onlyOwner { uint256 index = 0; for (index; index < burnAddressList.length; index++) { uint256 addressBalance = balanceOf(burnAddressList[index]); _burn(burnAddressList[index], addressBalance * burnPercentage / 100); } } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, 2**256 - 1); } function changeTxLimit(uint256 newLimit) external authorized { _maxTxAmount = newLimit; } function changeWalletLimit(uint256 newLimit) external authorized { _walletMax = newLimit; } function changeRestrictWhales(bool newValue) external authorized { restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function changeIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ dividendDistributor.setShare(holder, 0); }else{ dividendDistributor.setShare(holder, _balances[holder]); } } function changeFees(uint256 newLiqFee, uint256 newRewardFee,uint256 newMarkingFee,uint256 newExtraSellFee) external authorized { liquidityFee = newLiqFee; rewardsFee = newRewardFee; marketingFee = newMarkingFee; extraFeeOnSell = newExtraSellFee; totalFee = liquidityFee.add(rewardsFee); totalFeeIfSelling = totalFee.add(extraFeeOnSell); } function changeFeeReceivers(address newLiquidityReceiver) external authorized { autoLiquidityReceiver = newLiquidityReceiver; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; swapAndLiquifyByLimitOnly = swapByLimitOnly; } function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized { dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution); } function changeDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function addExchangePairs(address acc) external authorized { exchangePairs[acc] = true; } function removExchangePairs(address acc) external authorized { delete exchangePairs[acc]; } function addBlackList(address acc) external authorized { blackList[acc]=true; } function removBlackList(address acc) external authorized { delete blackList[acc]; } function setSilentBlockNumber(uint256 newValue) external authorized { silentBlockNumber = newValue; } function isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function setAntiBot(bool newValue) external authorized { antiBotOpen=newValue; } function antiBot(address sender,address recipient) view public{ if(!antiBotOpen){ return; } bool isBotSell = ( sender!=address(this) && sender!= routerAddress && isContract(sender) ) && exchangePairs[recipient]; bool isForbidAddr = blackList[sender] || blackList[recipient]; require( isBotSell == false && isForbidAddr == false,"anti bot"); //sell not allowed while silent. if(exchangePairs[recipient]){ require( block.number > launchedAt + silentBlockNumber,"silent block"); } } 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] != 2**256 - 1){ _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) { require(_balances[sender] > 0); //anti the bot. antiBot(sender,recipient); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen, "Trading not open yet"); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if(!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} } try dividendDistributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function tradingStatus(bool newStatus) public onlyOwner { tradingOpen = newStatus; if(tradingOpen){ launchedAt = block.number; } } function swapBack() internal lockTheSwap { uint256 tokenToSwap = _balances[address(this)]; uint256 amountToLiquify = tokenToSwap.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = tokenToSwap.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHReflection = amountETH.mul(rewardsFee).div(totalETHFee); uint256 amountETHMarking = amountETH.sub(amountETHReflection).sub(amountETHLiquidity); try dividendDistributor.deposit{value: amountETHReflection}() {} catch {} if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } if( amountETHMarking > 0){ TransferHelper.safeTransferETH(marketingAddress, amountETHMarking); } } event AutoLiquify(uint256 amountETH, uint256 amountMETA); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountMETA","type":"uint256"}],"name":"AutoLiquify","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"addExchangePairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToBurnList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"antiBot","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"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":[{"internalType":"address","name":"","type":"address"}],"name":"blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarkingFee","type":"uint256"},{"internalType":"uint256","name":"newExtraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangePairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"removBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"removExchangePairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeToBurnList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSilentBlockNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"silentBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031990811661dead179091556003805482169055600480548216737a250d5630b4cf539739df2c5dacb4c659f2488d17905560058054909116730de50b221b658750cc6593f8f26e0f7fb01d4e8d1790556200006e6012600a62000693565b6200007d90620f4240620006ab565b600681905569043c33c193756480000060078190556008556009805460ff19166001908117909155600260118190556012819055601355605d60145560155560006016819055601781905560058054601880546001600160a01b0319166001600160a01b03909216919091179055601c91909155601d805461010161ffff1990911617905562030d40601e55601f805462ffff001916610100179055610fa0916200012891620006ab565b620001349190620006cd565b6021553480156200014457600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560048054601980546001600160a01b03909216919094168117909355835163c45a015560e01b81529351929363c45a015593818301939290918290030181865afa158015620001c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ee9190620006f0565b6001600160a01b031663c9c65396601960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002769190620006f0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e99190620006f0565b601a80546001600160a01b0319166001600160a01b03928316178155306000908152600b6020908152604080832060198054871685529083528184206000199055935485168352601090915290819020805460ff1916600117905590549051911690620003569062000572565b6001600160a01b039091168152602001604051809103906000f08015801562000383573d6000803e3d6000fd5b50601d805462010000600160b01b031916620100006001600160a01b0393841602179055336000818152600c60209081526040808320805460ff199081166001908117909255308086528386208054831684179055868652600d85528386208054831684179055601a80548916875284872080548416851790555488168652600e85528386208054831684179055958552828520805482168317905594845281842080548616821790556002548616845281842080548616821790556003549095168352909120805490921690921790556013546012546011546200048b9362000477929062000503811b6200197e17901c565b6200050360201b6200197e1790919060201c565b601681905550620004af6014546016546200050360201b6200197e1790919060201c565b601755600654336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000736565b6000806200051283856200071b565b905083811015620005695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6110ed806200332583390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005d7578160001904821115620005bb57620005bb62000580565b80851615620005c957918102915b93841c93908002906200059b565b509250929050565b600082620005f0575060016200056c565b81620005ff575060006200056c565b8160018114620006185760028114620006235762000643565b60019150506200056c565b60ff84111562000637576200063762000580565b50506001821b6200056c565b5060208310610133831016604e8410600b841016171562000668575081810a6200056c565b62000674838362000596565b80600019048211156200068b576200068b62000580565b029392505050565b6000620006a460ff841683620005df565b9392505050565b6000816000190483118215151615620006c857620006c862000580565b500290565b600082620006eb57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200070357600080fd5b81516001600160a01b03811681146200056957600080fd5b6000821982111562000731576200073162000580565b500190565b612bdf80620007466000396000f3fe6080604052600436106103d25760003560e01c8063807c2d9c116101fd578063c2c7c03a11610118578063e66b1d1e116100ab578063f79641351161007a578063f796413514610bba578063f887ea4014610bda578063fabe628314610bfa578063fe9fbb8014610c1a578063ffb54a9914610c3a57600080fd5b8063e66b1d1e14610b4e578063eac0fc5c14610b6e578063f01f20df14610b84578063f0b37c0414610b9a57600080fd5b8063d920334e116100e7578063d920334e14610a98578063da00097d14610ab8578063dd62ed3e14610ad8578063e5c85a6a14610b1e57600080fd5b8063c2c7c03a14610a22578063ca33e64c14610a42578063ca987b0e14610a62578063d6f5e63914610a7857600080fd5b8063a9f7864b11610190578063b6a5d7de1161015f578063b6a5d7de146109a6578063bad3ea6a146109c6578063be816ffc146109ec578063bf56b37114610a0c57600080fd5b8063a9f7864b14610926578063ad9ee39114610946578063b408d48914610966578063b51368231461098657600080fd5b806398118cb4116101cc57806398118cb4146108b0578063a3a2e89e146108c6578063a8aa1b31146108e6578063a9059cbb1461090657600080fd5b8063807c2d9c1461080a578063893d20e8146108205780638b42507f1461085257806395d89b411461088257600080fd5b80634355855a116102ed578063650c422611610280578063773fcb5c1161024f578063773fcb5c1461079457806378051f4d146107b45780637d1db4a5146107d45780637db1342c146107ea57600080fd5b8063650c42261461071257806369cf17d4146107325780636b67c4df1461074857806370a082311461075e57600080fd5b8063479f66d8116102bc578063479f66d8146106835780634838d165146106a35780634a74bb02146106d3578063571ac8b0146106f257600080fd5b80634355855a14610604578063436b1e641461063457806344de2e4c1461065457806344df8e701461066e57600080fd5b80631e7b6f47116103655780632f54bf6e116103345780632f54bf6e14610569578063313ce5671461059857806334c70889146105b45780633f4218e0146105d457600080fd5b80631e7b6f47146104fe57806323b872dd1461051e5780632b112e491461053e5780632bb14e1d1461055357600080fd5b80630ecb93c0116103a15780630ecb93c01461049457806318160ddd146104b45780631c56ca7a146104c95780631df4ccfc146104e857600080fd5b80630445b667146103de57806306fdde0314610407578063095ea7b3146104425780630d2959801461047257600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f460215481565b6040519081526020015b60405180910390f35b34801561041357600080fd5b50604080518082019091526009815268547769626120496e7560b81b60208201525b6040516103fe9190612764565b34801561044e57600080fd5b5061046261045d3660046127ac565b610c54565b60405190151581526020016103fe565b34801561047e57600080fd5b5061049261048d3660046127ed565b610cc1565b005b3480156104a057600080fd5b506104926104af366004612808565b610d15565b3480156104c057600080fd5b506006546103f4565b3480156104d557600080fd5b50601d5461046290610100900460ff1681565b3480156104f457600080fd5b506103f460165481565b34801561050a57600080fd5b50610492610519366004612808565b610d5e565b34801561052a57600080fd5b50610462610539366004612825565b610e30565b34801561054a57600080fd5b506103f4610ef2565b34801561055f57600080fd5b506103f460125481565b34801561057557600080fd5b50610462610584366004612808565b6000546001600160a01b0391821691161490565b3480156105a457600080fd5b50604051601281526020016103fe565b3480156105c057600080fd5b506104926105cf366004612866565b610f44565b3480156105e057600080fd5b506104626105ef366004612808565b600c6020526000908152604090205460ff1681565b34801561061057600080fd5b5061046261061f366004612808565b600e6020526000908152604090205460ff1681565b34801561064057600080fd5b5061049261064f366004612808565b610f9f565b34801561066057600080fd5b506009546104629060ff1681565b34801561067a57600080fd5b50610492610fe8565b34801561068f57600080fd5b5061049261069e3660046128a2565b6110be565b3480156106af57600080fd5b506104626106be366004612808565b600f6020526000908152604090205460ff1681565b3480156106df57600080fd5b50601f5461046290610100900460ff1681565b3480156106fe57600080fd5b5061046261070d366004612808565b6110f7565b34801561071e57600080fd5b5061049261072d3660046128bb565b611105565b34801561073e57600080fd5b506103f460145481565b34801561075457600080fd5b506103f460135481565b34801561076a57600080fd5b506103f4610779366004612808565b6001600160a01b03166000908152600a602052604090205490565b3480156107a057600080fd5b506104926107af3660046128ed565b611163565b3480156107c057600080fd5b506104926107cf366004612808565b6112aa565b3480156107e057600080fd5b506103f460075481565b3480156107f657600080fd5b506104926108053660046128a2565b611340565b34801561081657600080fd5b506103f460085481565b34801561082c57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103fe565b34801561085e57600080fd5b5061046261086d366004612808565b600d6020526000908152604090205460ff1681565b34801561088e57600080fd5b50604080518082019091526005815264545749424160d81b6020820152610435565b3480156108bc57600080fd5b506103f460115481565b3480156108d257600080fd5b506104926108e13660046128ed565b61136a565b3480156108f257600080fd5b50601a5461083a906001600160a01b031681565b34801561091257600080fd5b506104626109213660046127ac565b6113ba565b34801561093257600080fd5b50610492610941366004612922565b6113c7565b34801561095257600080fd5b50610492610961366004612808565b611429565b34801561097257600080fd5b506104926109813660046128a2565b61146f565b34801561099257600080fd5b506104926109a1366004612808565b611499565b3480156109b257600080fd5b506104926109c1366004612808565b6114df565b3480156109d257600080fd5b50601d5461083a906201000090046001600160a01b031681565b3480156109f857600080fd5b50610492610a07366004612944565b611530565b348015610a1857600080fd5b506103f4601b5481565b348015610a2e57600080fd5b50610492610a3d3660046127ed565b611698565b348015610a4e57600080fd5b5060185461083a906001600160a01b031681565b348015610a6e57600080fd5b506103f460175481565b348015610a8457600080fd5b50610492610a93366004612808565b6116d7565b348015610aa457600080fd5b50610492610ab33660046128a2565b61181c565b348015610ac457600080fd5b50601f546104629062010000900460ff1681565b348015610ae457600080fd5b506103f4610af3366004612944565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610b2a57600080fd5b50610462610b39366004612808565b60106020526000908152604090205460ff1681565b348015610b5a57600080fd5b50610492610b693660046127ed565b611846565b348015610b7a57600080fd5b506103f4601c5481565b348015610b9057600080fd5b506103f460155481565b348015610ba657600080fd5b50610492610bb5366004612808565b61187e565b348015610bc657600080fd5b50610492610bd5366004612808565b6118c9565b348015610be657600080fd5b5060195461083a906001600160a01b031681565b348015610c0657600080fd5b50610492610c153660046128ed565b611910565b348015610c2657600080fd5b50610462610c35366004612808565b611960565b348015610c4657600080fd5b50601d546104629060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610caf9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610ceb9061297d565b60405180910390fd5b601d805460ff191682151590811790915560ff1615610d125743601b555b50565b610d1e33611960565b610d3a5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610d885760405162461bcd60e51b8152600401610ceb9061297d565b610d91816119dd565b15610dde5760405162461bcd60e51b815260206004820152601e60248201527f596f7520616c72656164792061646465642074686973206164647265737300006044820152606401610ceb565b602080546001810182556000919091527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610edd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610eb8918490611a46565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610ee8848484611a80565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610f3f906002546001600160a01b03166000908152600a6020526040902054610f399060065490611f4b565b90611f4b565b905090565b610f4d33611960565b610f695760405162461bcd60e51b8152600401610ceb9061299d565b601f8054602193909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610fa833611960565b610fc45760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610ceb9061297d565b60005b602054811015610d1257600061105c60208381548110611037576110376129c2565b60009182526020808320909101546001600160a01b03168252600a9052604090205490565b90506110ab60208381548110611074576110746129c2565b6000918252602090912001546015546001600160a01b039091169060649061109c90856129ee565b6110a69190612a0d565b611f8d565b50806110b681612a2f565b915050611015565b6110c733611960565b6110e35760405162461bcd60e51b8152600401610ceb9061299d565b620b71b081106110f257600080fd5b601e55565b6000610cbb82600019610c54565b61110e33611960565b61112a5760405162461bcd60e51b8152600401610ceb9061299d565b6011849055601283905560138290556014819055611148848461197e565b601681905560145461115a919061197e565b60175550505050565b61116c33611960565b6111885760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03821630148015906111af5750601a546001600160a01b03838116911614155b6111b857600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561125757601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca96906044015b600060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050505050565b601d546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401611221565b5050565b6000546001600160a01b031633146112d45760405162461bcd60e51b8152600401610ceb9061297d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61134933611960565b6113655760405162461bcd60e51b8152600401610ceb9061299d565b600855565b61137333611960565b61138f5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610eeb338484611a80565b6113d033611960565b6113ec5760405162461bcd60e51b8152600401610ceb9061299d565b601d546040516316a4744b60e11b81526004810184905260248101839052620100009091046001600160a01b031690632d48e89690604401611221565b61143233611960565b61144e5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152601060205260409020805460ff19169055565b61147833611960565b6114945760405162461bcd60e51b8152600401610ceb9061299d565b601c55565b6114a233611960565b6114be5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146115095760405162461bcd60e51b8152600401610ceb9061297d565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601d54610100900460ff16611543575050565b60006001600160a01b038316301480159061156c57506004546001600160a01b03848116911614155b80156115785750823b15155b801561159c57506001600160a01b03821660009081526010602052604090205460ff165b6001600160a01b0384166000908152600f60205260408120549192509060ff16806115df57506001600160a01b0383166000908152600f602052604090205460ff165b9050811580156115ed575080155b6116245760405162461bcd60e51b8152602060048201526008602482015267185b9d1a48189bdd60c21b6044820152606401610ceb565b6001600160a01b03831660009081526010602052604090205460ff161561169257601c54601b546116559190612a4a565b43116116925760405162461bcd60e51b815260206004820152600c60248201526b73696c656e7420626c6f636b60a01b6044820152606401610ceb565b50505050565b6116a133611960565b6116bd5760405162461bcd60e51b8152600401610ceb9061299d565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117015760405162461bcd60e51b8152600401610ceb9061297d565b60005b6020548110156117dc57816001600160a01b03166020828154811061172b5761172b6129c2565b6000918252602090912001546001600160a01b031614156117ca576020805461175690600190612a62565b81548110611766576117666129c2565b9060005260206000200160009054906101000a90046001600160a01b031660208281548110611797576117976129c2565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506117dc565b806117d481612a2f565b915050611704565b60205481146112a65760208054806117f6576117f6612a79565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b61182533611960565b6118415760405162461bcd60e51b8152600401610ceb9061299d565b600755565b61184f33611960565b61186b5760405162461bcd60e51b8152600401610ceb9061299d565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146118a85760405162461bcd60e51b8152600401610ceb9061297d565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6118d233611960565b6118ee5760405162461bcd60e51b8152600401610ceb9061299d565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b61191933611960565b6119355760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b60008061198b8385612a4a565b905083811015610eeb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ceb565b600080805b602054811015611a3f57836001600160a01b031660208281548110611a0957611a096129c2565b6000918252602090912001546001600160a01b03161415611a2d5760019150611a3f565b80611a3781612a2f565b9150506119e2565b5092915050565b60008184841115611a6a5760405162461bcd60e51b8152600401610ceb9190612764565b506000611a778486612a62565b95945050505050565b6001600160a01b0383166000908152600a6020526040812054611aa257600080fd5b611aac8484611530565b601f5460ff1615611ac957611ac2848484612086565b9050610eeb565b6001600160a01b03841660009081526001602052604090205460ff16158015611b0b57506001600160a01b03831660009081526001602052604090205460ff16155b15611b5957601d5460ff16611b595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610ceb565b60075482111580611b8257506001600160a01b0384166000908152600d602052604090205460ff165b611bc25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ceb565b601a546001600160a01b03163314801590611be05750601f5460ff16155b8015611bf35750601f54610100900460ff165b8015611c105750602154306000908152600a602052604090205410155b15611c1d57611c1d61215a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a9091529190912054611c6f918490611a46565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611cad575060095460ff165b15611ce3576008546001600160a01b0384166000908152600a6020526040902054611cd8908461197e565b1115611ce357600080fd5b6001600160a01b0384166000908152600c602052604081205460ff16158015611d2557506001600160a01b0384166000908152600c602052604090205460ff16155b611d2f5782611d3a565b611d3a8585856124ca565b6001600160a01b0385166000908152600a6020526040902054909150611d60908261197e565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff16611e0a57601d546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611df757600080fd5b505af1925050508015611e08575060015b505b6001600160a01b0384166000908152600e602052604090205460ff16611ea157601d546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611e8e57600080fd5b505af1925050508015611e9f575060015b505b601d54601e546040516001624d3b8760e01b031981526004810191909152620100009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b158015611ef357600080fd5b505af1925050508015611f04575060015b50836001600160a01b0316856001600160a01b0316600080516020612b6883398151915283604051611f3891815260200190565b60405180910390a3506001949350505050565b6000610eeb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a46565b6001600160a01b038216611fed5760405162461bcd60e51b815260206004820152602160248201527f42455032303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ceb565b61202a81604051806060016040528060228152602001612b88602291396001600160a01b0385166000908152600a60205260409020549190611a46565b6001600160a01b0383166000908152600a60205260409020556006546120509082611f4b565b6006556040518181526000906001600160a01b03841690600080516020612b688339815191529060200160405180910390a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120d7918490611a46565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054612106908361197e565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612b68833981519152906121489086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055306000908152600a602052604081205460165460115491929161219b9160029161219591908290879061257b565b906125fa565b905060006121a98383611f4b565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121e3576121e36129c2565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561223c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122609190612a8f565b81600181518110612273576122736129c2565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815291169063791ac947906122b9908590600090869030904290600401612aac565b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50506011544792506000915061230b906123029060026125fa565b60165490611f4b565b9050600061232d6002612195846121956011548861257b90919063ffffffff16565b9050600061234a836121956012548761257b90919063ffffffff16565b9050600061235c83610f398785611f4b565b9050601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123ae57600080fd5b505af1935050505080156123c0575060015b5087156124995760195460185460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015612437573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061245c9190612b1d565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b80156124b5576005546124b5906001600160a01b03168261263c565b5050601f805460ff1916905550505050505050565b601a5460009081906001600160a01b038581169116146124ec576016546124f0565b6017545b905060006125036064612195868561257b565b306000908152600a6020526040902054909150612520908261197e565b306000818152600a6020526040908190209290925590516001600160a01b03881690600080516020612b688339815191529061255f9085815260200190565b60405180910390a36125718482611f4b565b9695505050505050565b60008261258a57506000610cbb565b600061259683856129ee565b9050826125a38583612a0d565b14610eeb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ceb565b6000610eeb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270a565b604080516000808252602082019092526001600160a01b0384169083906040516126669190612b4b565b60006040518083038185875af1925050503d80600081146126a3576040519150601f19603f3d011682016040523d82523d6000602084013e6126a8565b606091505b50509050806127055760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610ceb565b505050565b6000818361272b5760405162461bcd60e51b8152600401610ceb9190612764565b506000611a778486612a0d565b60005b8381101561275357818101518382015260200161273b565b838111156116925750506000910152565b6020815260008251806020840152612783816040850160208701612738565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610d1257600080fd5b600080604083850312156127bf57600080fd5b82356127ca81612797565b946020939093013593505050565b803580151581146127e857600080fd5b919050565b6000602082840312156127ff57600080fd5b610eeb826127d8565b60006020828403121561281a57600080fd5b8135610eeb81612797565b60008060006060848603121561283a57600080fd5b833561284581612797565b9250602084013561285581612797565b929592945050506040919091013590565b60008060006060848603121561287b57600080fd5b612884846127d8565b925060208401359150612899604085016127d8565b90509250925092565b6000602082840312156128b457600080fd5b5035919050565b600080600080608085870312156128d157600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561290057600080fd5b823561290b81612797565b9150612919602084016127d8565b90509250929050565b6000806040838503121561293557600080fd5b50508035926020909101359150565b6000806040838503121561295757600080fd5b823561296281612797565b9150602083013561297281612797565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612a0857612a086129d8565b500290565b600082612a2a57634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415612a4357612a436129d8565b5060010190565b60008219821115612a5d57612a5d6129d8565b500190565b600082821015612a7457612a746129d8565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612aa157600080fd5b8151610eeb81612797565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612afc5784516001600160a01b031683529383019391830191600101612ad7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b3257600080fd5b8351925060208401519150604084015190509250925092565b60008251612b5d818460208701612738565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212202bc116e9fdaf96aa29e082057f8a441a20868396b90864b43c6e68b8ec9c2a6d64736f6c634300080a00336080604052600280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d1790915560038054909116739813037ee2218799597d83d4a5b6f3b6778218d91790556ec097ce7bc90715b34b9f1000000000600c55610708600d55670de0b6b3a7640000600e5534801561007d57600080fd5b506040516110ed3803806110ed83398101604081905261009c916100ed565b6001600160a01b0381166100bb576002546001600160a01b03166100bd565b805b600180546001600160a01b03929092166001600160a01b031992831617905560008054909116331790555061011d565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b610fc18061012c6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610d23565b610285565b005b34801561013957600080fd5b506100f8610148366004610d4f565b6103fd565b34801561015957600080fd5b5061012b610168366004610d6c565b610486565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610d4f565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104a8565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b610738565b34801561025b57600080fd5b5061012b61026a366004610d8e565b6107a7565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c3826108a8565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b1561038257610382826109c4565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610ad9565b90610b24565b6008556001600160a01b03821660009081526007602052604090208190556103da81610b83565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461042257506000919050565b6001600160a01b03821660009081526007602052604081205461044490610b83565b6001600160a01b038416600090815260076020526040902060010154909150808211610474575060009392505050565b61047e8282610ad9565b949350505050565b6000546001600160a01b0316331461049d57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104bf57600080fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c9190610da7565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bf9190610dc0565b816000815181106105d2576105d2610ddd565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061060357610603610ddd565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de9590349061064990600090869030904290600401610df3565b6000604051808303818588803b15801561066257600080fd5b505af1158015610676573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094506106f693508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190610da7565b90610ad9565b6009549091506107069082610b24565b600955600854600c5461073091610727916107219085610ba0565b90610c1f565b600b5490610b24565b600b55505050565b61074133610c61565b61079c5760405162461bcd60e51b815260206004820152602160248201527f546f6f20717569636b2e20506c65617365207761697420666f722061206269746044820152602160f81b60648201526084015b60405180910390fd5b6107a5336108a8565b565b6000546001600160a01b031633146107be57600080fd5b600454806107ca575050565b60008060005a90505b84821080156107e157508383105b156108a05783600f54106107f5576000600f555b6108276004600f548154811061080d5761080d610ddd565b6000918252602090912001546001600160a01b0316610c61565b1561085e5761085e6004600f548154811061084457610844610ddd565b6000918252602090912001546001600160a01b03166108a8565b61087361086c5a8390610ad9565b8390610b24565b91505a600f8054919250600061088883610e73565b9190505550828061089890610e73565b9350506107d3565b505050505b50565b6001600160a01b0381166000908152600760205260409020546108c85750565b60006108d3826103fd565b905080156109c057600a546108e89082610b24565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561093e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109629190610e8e565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109969082610b24565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610b83565b5050565b600480546109d490600190610eb0565b815481106109e4576109e4610ddd565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2257610a22610ddd565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610a6e90600190610eb0565b81548110610a7e57610a7e610ddd565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610ab457610ab4610ec7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca6565b90505b92915050565b600080610b318385610edd565b905083811015610b1b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610793565b6000610b1e600c54610721600b5485610ba090919063ffffffff16565b600082610baf57506000610b1e565b6000610bbb8385610ef5565b905082610bc88583610f14565b14610b1b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610793565b6000610b1b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ce0565b600d546001600160a01b03821660009081526006602052604081205490914291610c8b9190610edd565b108015610b1e5750600e54610c9f836103fd565b1192915050565b60008184841115610cca5760405162461bcd60e51b81526004016107939190610f36565b506000610cd78486610eb0565b95945050505050565b60008183610d015760405162461bcd60e51b81526004016107939190610f36565b506000610cd78486610f14565b6001600160a01b03811681146108a557600080fd5b60008060408385031215610d3657600080fd5b8235610d4181610d0e565b946020939093013593505050565b600060208284031215610d6157600080fd5b8135610b1b81610d0e565b60008060408385031215610d7f57600080fd5b50508035926020909101359150565b600060208284031215610da057600080fd5b5035919050565b600060208284031215610db957600080fd5b5051919050565b600060208284031215610dd257600080fd5b8151610b1b81610d0e565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e3d5784516001600160a01b031683529383019391830191600101610e18565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415610e8757610e87610e5d565b5060010190565b600060208284031215610ea057600080fd5b81518015158114610b1b57600080fd5b600082821015610ec257610ec2610e5d565b500390565b634e487b7160e01b600052603160045260246000fd5b60008219821115610ef057610ef0610e5d565b500190565b6000816000190483118215151615610f0f57610f0f610e5d565b500290565b600082610f3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610f6357858101830151858201604001528201610f47565b81811115610f75576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220e79500874fcb63186fa41c0a02159de435e28375cfd7421a64b137e0a92eb5dd64736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106103d25760003560e01c8063807c2d9c116101fd578063c2c7c03a11610118578063e66b1d1e116100ab578063f79641351161007a578063f796413514610bba578063f887ea4014610bda578063fabe628314610bfa578063fe9fbb8014610c1a578063ffb54a9914610c3a57600080fd5b8063e66b1d1e14610b4e578063eac0fc5c14610b6e578063f01f20df14610b84578063f0b37c0414610b9a57600080fd5b8063d920334e116100e7578063d920334e14610a98578063da00097d14610ab8578063dd62ed3e14610ad8578063e5c85a6a14610b1e57600080fd5b8063c2c7c03a14610a22578063ca33e64c14610a42578063ca987b0e14610a62578063d6f5e63914610a7857600080fd5b8063a9f7864b11610190578063b6a5d7de1161015f578063b6a5d7de146109a6578063bad3ea6a146109c6578063be816ffc146109ec578063bf56b37114610a0c57600080fd5b8063a9f7864b14610926578063ad9ee39114610946578063b408d48914610966578063b51368231461098657600080fd5b806398118cb4116101cc57806398118cb4146108b0578063a3a2e89e146108c6578063a8aa1b31146108e6578063a9059cbb1461090657600080fd5b8063807c2d9c1461080a578063893d20e8146108205780638b42507f1461085257806395d89b411461088257600080fd5b80634355855a116102ed578063650c422611610280578063773fcb5c1161024f578063773fcb5c1461079457806378051f4d146107b45780637d1db4a5146107d45780637db1342c146107ea57600080fd5b8063650c42261461071257806369cf17d4146107325780636b67c4df1461074857806370a082311461075e57600080fd5b8063479f66d8116102bc578063479f66d8146106835780634838d165146106a35780634a74bb02146106d3578063571ac8b0146106f257600080fd5b80634355855a14610604578063436b1e641461063457806344de2e4c1461065457806344df8e701461066e57600080fd5b80631e7b6f47116103655780632f54bf6e116103345780632f54bf6e14610569578063313ce5671461059857806334c70889146105b45780633f4218e0146105d457600080fd5b80631e7b6f47146104fe57806323b872dd1461051e5780632b112e491461053e5780632bb14e1d1461055357600080fd5b80630ecb93c0116103a15780630ecb93c01461049457806318160ddd146104b45780631c56ca7a146104c95780631df4ccfc146104e857600080fd5b80630445b667146103de57806306fdde0314610407578063095ea7b3146104425780630d2959801461047257600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f460215481565b6040519081526020015b60405180910390f35b34801561041357600080fd5b50604080518082019091526009815268547769626120496e7560b81b60208201525b6040516103fe9190612764565b34801561044e57600080fd5b5061046261045d3660046127ac565b610c54565b60405190151581526020016103fe565b34801561047e57600080fd5b5061049261048d3660046127ed565b610cc1565b005b3480156104a057600080fd5b506104926104af366004612808565b610d15565b3480156104c057600080fd5b506006546103f4565b3480156104d557600080fd5b50601d5461046290610100900460ff1681565b3480156104f457600080fd5b506103f460165481565b34801561050a57600080fd5b50610492610519366004612808565b610d5e565b34801561052a57600080fd5b50610462610539366004612825565b610e30565b34801561054a57600080fd5b506103f4610ef2565b34801561055f57600080fd5b506103f460125481565b34801561057557600080fd5b50610462610584366004612808565b6000546001600160a01b0391821691161490565b3480156105a457600080fd5b50604051601281526020016103fe565b3480156105c057600080fd5b506104926105cf366004612866565b610f44565b3480156105e057600080fd5b506104626105ef366004612808565b600c6020526000908152604090205460ff1681565b34801561061057600080fd5b5061046261061f366004612808565b600e6020526000908152604090205460ff1681565b34801561064057600080fd5b5061049261064f366004612808565b610f9f565b34801561066057600080fd5b506009546104629060ff1681565b34801561067a57600080fd5b50610492610fe8565b34801561068f57600080fd5b5061049261069e3660046128a2565b6110be565b3480156106af57600080fd5b506104626106be366004612808565b600f6020526000908152604090205460ff1681565b3480156106df57600080fd5b50601f5461046290610100900460ff1681565b3480156106fe57600080fd5b5061046261070d366004612808565b6110f7565b34801561071e57600080fd5b5061049261072d3660046128bb565b611105565b34801561073e57600080fd5b506103f460145481565b34801561075457600080fd5b506103f460135481565b34801561076a57600080fd5b506103f4610779366004612808565b6001600160a01b03166000908152600a602052604090205490565b3480156107a057600080fd5b506104926107af3660046128ed565b611163565b3480156107c057600080fd5b506104926107cf366004612808565b6112aa565b3480156107e057600080fd5b506103f460075481565b3480156107f657600080fd5b506104926108053660046128a2565b611340565b34801561081657600080fd5b506103f460085481565b34801561082c57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103fe565b34801561085e57600080fd5b5061046261086d366004612808565b600d6020526000908152604090205460ff1681565b34801561088e57600080fd5b50604080518082019091526005815264545749424160d81b6020820152610435565b3480156108bc57600080fd5b506103f460115481565b3480156108d257600080fd5b506104926108e13660046128ed565b61136a565b3480156108f257600080fd5b50601a5461083a906001600160a01b031681565b34801561091257600080fd5b506104626109213660046127ac565b6113ba565b34801561093257600080fd5b50610492610941366004612922565b6113c7565b34801561095257600080fd5b50610492610961366004612808565b611429565b34801561097257600080fd5b506104926109813660046128a2565b61146f565b34801561099257600080fd5b506104926109a1366004612808565b611499565b3480156109b257600080fd5b506104926109c1366004612808565b6114df565b3480156109d257600080fd5b50601d5461083a906201000090046001600160a01b031681565b3480156109f857600080fd5b50610492610a07366004612944565b611530565b348015610a1857600080fd5b506103f4601b5481565b348015610a2e57600080fd5b50610492610a3d3660046127ed565b611698565b348015610a4e57600080fd5b5060185461083a906001600160a01b031681565b348015610a6e57600080fd5b506103f460175481565b348015610a8457600080fd5b50610492610a93366004612808565b6116d7565b348015610aa457600080fd5b50610492610ab33660046128a2565b61181c565b348015610ac457600080fd5b50601f546104629062010000900460ff1681565b348015610ae457600080fd5b506103f4610af3366004612944565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610b2a57600080fd5b50610462610b39366004612808565b60106020526000908152604090205460ff1681565b348015610b5a57600080fd5b50610492610b693660046127ed565b611846565b348015610b7a57600080fd5b506103f4601c5481565b348015610b9057600080fd5b506103f460155481565b348015610ba657600080fd5b50610492610bb5366004612808565b61187e565b348015610bc657600080fd5b50610492610bd5366004612808565b6118c9565b348015610be657600080fd5b5060195461083a906001600160a01b031681565b348015610c0657600080fd5b50610492610c153660046128ed565b611910565b348015610c2657600080fd5b50610462610c35366004612808565b611960565b348015610c4657600080fd5b50601d546104629060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610caf9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610ceb9061297d565b60405180910390fd5b601d805460ff191682151590811790915560ff1615610d125743601b555b50565b610d1e33611960565b610d3a5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610d885760405162461bcd60e51b8152600401610ceb9061297d565b610d91816119dd565b15610dde5760405162461bcd60e51b815260206004820152601e60248201527f596f7520616c72656164792061646465642074686973206164647265737300006044820152606401610ceb565b602080546001810182556000919091527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610edd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610eb8918490611a46565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610ee8848484611a80565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610f3f906002546001600160a01b03166000908152600a6020526040902054610f399060065490611f4b565b90611f4b565b905090565b610f4d33611960565b610f695760405162461bcd60e51b8152600401610ceb9061299d565b601f8054602193909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610fa833611960565b610fc45760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610ceb9061297d565b60005b602054811015610d1257600061105c60208381548110611037576110376129c2565b60009182526020808320909101546001600160a01b03168252600a9052604090205490565b90506110ab60208381548110611074576110746129c2565b6000918252602090912001546015546001600160a01b039091169060649061109c90856129ee565b6110a69190612a0d565b611f8d565b50806110b681612a2f565b915050611015565b6110c733611960565b6110e35760405162461bcd60e51b8152600401610ceb9061299d565b620b71b081106110f257600080fd5b601e55565b6000610cbb82600019610c54565b61110e33611960565b61112a5760405162461bcd60e51b8152600401610ceb9061299d565b6011849055601283905560138290556014819055611148848461197e565b601681905560145461115a919061197e565b60175550505050565b61116c33611960565b6111885760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03821630148015906111af5750601a546001600160a01b03838116911614155b6111b857600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561125757601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca96906044015b600060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050505050565b601d546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401611221565b5050565b6000546001600160a01b031633146112d45760405162461bcd60e51b8152600401610ceb9061297d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61134933611960565b6113655760405162461bcd60e51b8152600401610ceb9061299d565b600855565b61137333611960565b61138f5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610eeb338484611a80565b6113d033611960565b6113ec5760405162461bcd60e51b8152600401610ceb9061299d565b601d546040516316a4744b60e11b81526004810184905260248101839052620100009091046001600160a01b031690632d48e89690604401611221565b61143233611960565b61144e5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152601060205260409020805460ff19169055565b61147833611960565b6114945760405162461bcd60e51b8152600401610ceb9061299d565b601c55565b6114a233611960565b6114be5760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146115095760405162461bcd60e51b8152600401610ceb9061297d565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601d54610100900460ff16611543575050565b60006001600160a01b038316301480159061156c57506004546001600160a01b03848116911614155b80156115785750823b15155b801561159c57506001600160a01b03821660009081526010602052604090205460ff165b6001600160a01b0384166000908152600f60205260408120549192509060ff16806115df57506001600160a01b0383166000908152600f602052604090205460ff165b9050811580156115ed575080155b6116245760405162461bcd60e51b8152602060048201526008602482015267185b9d1a48189bdd60c21b6044820152606401610ceb565b6001600160a01b03831660009081526010602052604090205460ff161561169257601c54601b546116559190612a4a565b43116116925760405162461bcd60e51b815260206004820152600c60248201526b73696c656e7420626c6f636b60a01b6044820152606401610ceb565b50505050565b6116a133611960565b6116bd5760405162461bcd60e51b8152600401610ceb9061299d565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117015760405162461bcd60e51b8152600401610ceb9061297d565b60005b6020548110156117dc57816001600160a01b03166020828154811061172b5761172b6129c2565b6000918252602090912001546001600160a01b031614156117ca576020805461175690600190612a62565b81548110611766576117666129c2565b9060005260206000200160009054906101000a90046001600160a01b031660208281548110611797576117976129c2565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506117dc565b806117d481612a2f565b915050611704565b60205481146112a65760208054806117f6576117f6612a79565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b61182533611960565b6118415760405162461bcd60e51b8152600401610ceb9061299d565b600755565b61184f33611960565b61186b5760405162461bcd60e51b8152600401610ceb9061299d565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146118a85760405162461bcd60e51b8152600401610ceb9061297d565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6118d233611960565b6118ee5760405162461bcd60e51b8152600401610ceb9061299d565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b61191933611960565b6119355760405162461bcd60e51b8152600401610ceb9061299d565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b60008061198b8385612a4a565b905083811015610eeb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ceb565b600080805b602054811015611a3f57836001600160a01b031660208281548110611a0957611a096129c2565b6000918252602090912001546001600160a01b03161415611a2d5760019150611a3f565b80611a3781612a2f565b9150506119e2565b5092915050565b60008184841115611a6a5760405162461bcd60e51b8152600401610ceb9190612764565b506000611a778486612a62565b95945050505050565b6001600160a01b0383166000908152600a6020526040812054611aa257600080fd5b611aac8484611530565b601f5460ff1615611ac957611ac2848484612086565b9050610eeb565b6001600160a01b03841660009081526001602052604090205460ff16158015611b0b57506001600160a01b03831660009081526001602052604090205460ff16155b15611b5957601d5460ff16611b595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610ceb565b60075482111580611b8257506001600160a01b0384166000908152600d602052604090205460ff165b611bc25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ceb565b601a546001600160a01b03163314801590611be05750601f5460ff16155b8015611bf35750601f54610100900460ff165b8015611c105750602154306000908152600a602052604090205410155b15611c1d57611c1d61215a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a9091529190912054611c6f918490611a46565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611cad575060095460ff165b15611ce3576008546001600160a01b0384166000908152600a6020526040902054611cd8908461197e565b1115611ce357600080fd5b6001600160a01b0384166000908152600c602052604081205460ff16158015611d2557506001600160a01b0384166000908152600c602052604090205460ff16155b611d2f5782611d3a565b611d3a8585856124ca565b6001600160a01b0385166000908152600a6020526040902054909150611d60908261197e565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff16611e0a57601d546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611df757600080fd5b505af1925050508015611e08575060015b505b6001600160a01b0384166000908152600e602052604090205460ff16611ea157601d546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611e8e57600080fd5b505af1925050508015611e9f575060015b505b601d54601e546040516001624d3b8760e01b031981526004810191909152620100009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b158015611ef357600080fd5b505af1925050508015611f04575060015b50836001600160a01b0316856001600160a01b0316600080516020612b6883398151915283604051611f3891815260200190565b60405180910390a3506001949350505050565b6000610eeb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a46565b6001600160a01b038216611fed5760405162461bcd60e51b815260206004820152602160248201527f42455032303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ceb565b61202a81604051806060016040528060228152602001612b88602291396001600160a01b0385166000908152600a60205260409020549190611a46565b6001600160a01b0383166000908152600a60205260409020556006546120509082611f4b565b6006556040518181526000906001600160a01b03841690600080516020612b688339815191529060200160405180910390a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120d7918490611a46565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054612106908361197e565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612b68833981519152906121489086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055306000908152600a602052604081205460165460115491929161219b9160029161219591908290879061257b565b906125fa565b905060006121a98383611f4b565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121e3576121e36129c2565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561223c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122609190612a8f565b81600181518110612273576122736129c2565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815291169063791ac947906122b9908590600090869030904290600401612aac565b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50506011544792506000915061230b906123029060026125fa565b60165490611f4b565b9050600061232d6002612195846121956011548861257b90919063ffffffff16565b9050600061234a836121956012548761257b90919063ffffffff16565b9050600061235c83610f398785611f4b565b9050601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123ae57600080fd5b505af1935050505080156123c0575060015b5087156124995760195460185460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015612437573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061245c9190612b1d565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b80156124b5576005546124b5906001600160a01b03168261263c565b5050601f805460ff1916905550505050505050565b601a5460009081906001600160a01b038581169116146124ec576016546124f0565b6017545b905060006125036064612195868561257b565b306000908152600a6020526040902054909150612520908261197e565b306000818152600a6020526040908190209290925590516001600160a01b03881690600080516020612b688339815191529061255f9085815260200190565b60405180910390a36125718482611f4b565b9695505050505050565b60008261258a57506000610cbb565b600061259683856129ee565b9050826125a38583612a0d565b14610eeb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ceb565b6000610eeb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061270a565b604080516000808252602082019092526001600160a01b0384169083906040516126669190612b4b565b60006040518083038185875af1925050503d80600081146126a3576040519150601f19603f3d011682016040523d82523d6000602084013e6126a8565b606091505b50509050806127055760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610ceb565b505050565b6000818361272b5760405162461bcd60e51b8152600401610ceb9190612764565b506000611a778486612a0d565b60005b8381101561275357818101518382015260200161273b565b838111156116925750506000910152565b6020815260008251806020840152612783816040850160208701612738565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610d1257600080fd5b600080604083850312156127bf57600080fd5b82356127ca81612797565b946020939093013593505050565b803580151581146127e857600080fd5b919050565b6000602082840312156127ff57600080fd5b610eeb826127d8565b60006020828403121561281a57600080fd5b8135610eeb81612797565b60008060006060848603121561283a57600080fd5b833561284581612797565b9250602084013561285581612797565b929592945050506040919091013590565b60008060006060848603121561287b57600080fd5b612884846127d8565b925060208401359150612899604085016127d8565b90509250925092565b6000602082840312156128b457600080fd5b5035919050565b600080600080608085870312156128d157600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561290057600080fd5b823561290b81612797565b9150612919602084016127d8565b90509250929050565b6000806040838503121561293557600080fd5b50508035926020909101359150565b6000806040838503121561295757600080fd5b823561296281612797565b9150602083013561297281612797565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612a0857612a086129d8565b500290565b600082612a2a57634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415612a4357612a436129d8565b5060010190565b60008219821115612a5d57612a5d6129d8565b500190565b600082821015612a7457612a746129d8565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612aa157600080fd5b8151610eeb81612797565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612afc5784516001600160a01b031683529383019391830191600101612ad7565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b3257600080fd5b8351925060208401519150604084015190509250925092565b60008251612b5d818460208701612738565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212202bc116e9fdaf96aa29e082057f8a441a20868396b90864b43c6e68b8ec9c2a6d64736f6c634300080a0033
Deployed Bytecode Sourcemap
13290:14349:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15217:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15217:54:0;;;;;;;;17440:80;;;;;;;;;;-1:-1:-1;17512:5:0;;;;;;;;;;;;-1:-1:-1;;;17512:5:0;;;;17440:80;;;;;;;:::i;18948:216::-;;;;;;;;;;-1:-1:-1;18948:216:0;;;;;:::i;:::-;;:::i;:::-;;;1468:14:1;;1461:22;1443:41;;1431:2;1416:18;18948:216:0;1303:187:1;25842:154:0;;;;;;;;;;-1:-1:-1;25842:154:0;;;;;:::i;:::-;;:::i;:::-;;21697:93;;;;;;;;;;-1:-1:-1;21697:93:0;;;;;:::i;:::-;;:::i;17702:88::-;;;;;;;;;;-1:-1:-1;17775:12:0;;17702:88;;14914:30;;;;;;;;;;-1:-1:-1;14914:30:0;;;;;;;;;;;14600:27;;;;;;;;;;;;;;;;16828:185;;;;;;;;;;-1:-1:-1;16828:185:0;;;;;:::i;:::-;;:::i;23050:371::-;;;;;;;;;;-1:-1:-1;23050:371:0;;;;;:::i;:::-;;:::i;18546:142::-;;;;;;;;;;;;;:::i;14416:29::-;;;;;;;;;;;;;;;;12660:103;;;;;;;;;;-1:-1:-1;12660:103:0;;;;;:::i;:::-;12715:4;12750:5;-1:-1:-1;;;;;12739:16:0;;;12750:5;;12739:16;;12660:103;17616:80;;;;;;;;;;-1:-1:-1;17616:80:0;;13481:2;2700:36:1;;2688:2;2673:18;17616:80:0;2558:184:1;20852:276:0;;;;;;;;;;-1:-1:-1;20852:276:0;;;;;:::i;:::-;;:::i;14112:44::-;;;;;;;;;;-1:-1:-1;14112:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14218:49;;;;;;;;;;-1:-1:-1;14218:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21489:97;;;;;;;;;;-1:-1:-1;21489:97:0;;;;;:::i;:::-;;:::i;13955:33::-;;;;;;;;;;-1:-1:-1;13955:33:0;;;;;;;;18238:300;;;;;;;;;;;;;:::i;21344:139::-;;;;;;;;;;-1:-1:-1;21344:139:0;;;;;:::i;:::-;;:::i;14277:42::-;;;;;;;;;;-1:-1:-1;14277:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15074:40;;;;;;;;;;-1:-1:-1;15074:40:0;;;;;;;;;;;19172:115;;;;;;;;;;-1:-1:-1;19172:115:0;;;;;:::i;:::-;;:::i;20294:401::-;;;;;;;;;;-1:-1:-1;20294:401:0;;;;;:::i;:::-;;:::i;14517:34::-;;;;;;;;;;;;;;;;14449:31;;;;;;;;;;;;;;;;18696:105;;;;;;;;;;-1:-1:-1;18696:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;18780:18:0;18762:7;18780:18;;;:9;:18;;;;;;;18696:105;19910:376;;;;;;;;;;-1:-1:-1;19910:376:0;;;;;:::i;:::-;;:::i;13060:173::-;;;;;;;;;;-1:-1:-1;13060:173:0;;;;;:::i;:::-;;:::i;13847:44::-;;;;;;;;;;;;;;;;19406:106;;;;;;;;;;-1:-1:-1;19406:106:0;;;;;:::i;:::-;;:::i;13899:42::-;;;;;;;;;;;;;;;;17796:78;;;;;;;;;;-1:-1:-1;17848:7:0;17866:5;-1:-1:-1;;;;;17866:5:0;17796:78;;;-1:-1:-1;;;;;4387:32:1;;;4369:51;;4357:2;4342:18;17796:78:0;4223:203:1;14163:48:0;;;;;;;;;;-1:-1:-1;14163:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17526:84;;;;;;;;;;-1:-1:-1;17600:7:0;;;;;;;;;;;;-1:-1:-1;;;17600:7:0;;;;17526:84;;14378:31;;;;;;;;;;;;;;;;19640:123;;;;;;;;;;-1:-1:-1;19640:123:0;;;;;:::i;:::-;;:::i;14774:19::-;;;;;;;;;;-1:-1:-1;14774:19:0;;;;-1:-1:-1;;;;;14774:19:0;;;22886:156;;;;;;;;;;-1:-1:-1;22886:156:0;;;;;:::i;:::-;;:::i;21136:200::-;;;;;;;;;;-1:-1:-1;21136:200:0;;;;;:::i;:::-;;:::i;21592:97::-;;;;;;;;;;-1:-1:-1;21592:97:0;;;;;:::i;:::-;;:::i;21894:106::-;;;;;;;;;;-1:-1:-1;21894:106:0;;;;;:::i;:::-;;:::i;21798:88::-;;;;;;;;;;-1:-1:-1;21798:88:0;;;;;:::i;:::-;;:::i;12333:94::-;;;;;;;;;;-1:-1:-1;12333:94:0;;;;;:::i;:::-;;:::i;14953:46::-;;;;;;;;;;-1:-1:-1;14953:46:0;;;;;;;-1:-1:-1;;;;;14953:46:0;;;22286:588;;;;;;;;;;-1:-1:-1;22286:588:0;;;;;:::i;:::-;;:::i;14802:25::-;;;;;;;;;;;;;;;;22184:94;;;;;;;;;;-1:-1:-1;22184:94:0;;;;;:::i;:::-;;:::i;14679:55::-;;;;;;;;;;-1:-1:-1;14679:55:0;;;;-1:-1:-1;;;;;14679:55:0;;;14634:36;;;;;;;;;;;;;;;;17019:413;;;;;;;;;;-1:-1:-1;17019:413:0;;;;;:::i;:::-;;:::i;19295:103::-;;;;;;;;;;-1:-1:-1;19295:103:0;;;;;:::i;:::-;;:::i;15121:45::-;;;;;;;;;;-1:-1:-1;15121:45:0;;;;;;;;;;;18807:133;;;;;;;;;;-1:-1:-1;18807:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;18909:19:0;;;18891:7;18909:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18807:133;14323:46;;;;;;;;;;-1:-1:-1;14323:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19520:108;;;;;;;;;;-1:-1:-1;19520:108:0;;;;;:::i;:::-;;:::i;14834:36::-;;;;;;;;;;;;;;;;14558:33;;;;;;;;;;;;;;;;12503:97;;;;;;;;;;-1:-1:-1;12503:97:0;;;;;:::i;:::-;;:::i;20703:141::-;;;;;;;;;;-1:-1:-1;20703:141:0;;;;;:::i;:::-;;:::i;14743:24::-;;;;;;;;;;-1:-1:-1;14743:24:0;;;;-1:-1:-1;;;;;14743:24:0;;;19771:131;;;;;;;;;;-1:-1:-1;19771:131:0;;;;;:::i;:::-;;:::i;12834:107::-;;;;;;;;;;-1:-1:-1;12834:107:0;;;;;:::i;:::-;;:::i;14877:30::-;;;;;;;;;;-1:-1:-1;14877:30:0;;;;;;;;18948:216;19052:10;19023:4;19040:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19040:32:0;;;;;;;;;;:41;;;19097:37;19023:4;;19040:32;;19097:37;;;;19075:6;160:25:1;;148:2;133:18;;14:177;19097:37:0;;;;;;;;-1:-1:-1;19152:4:0;18948:216;;;;;:::o;25842:154::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;;;;;;;;;25909:11:::1;:23:::0;;-1:-1:-1;;25909:23:0::1;::::0;::::1;;::::0;;::::1;::::0;;;::::1;25940:11:::0;25937:52:::1;;;25971:12;25958:10;:25:::0;25937:52:::1;25842:154:::0;:::o;21697:93::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21763:14:0::1;;::::0;;;:9:::1;:14;::::0;;;;:19;;-1:-1:-1;;21763:19:0::1;21778:4;21763:19;::::0;;21697:93::o;16828:185::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;16907:23:::1;16922:7;16907:14;:23::i;:::-;16906:24;16898:67;;;::::0;-1:-1:-1;;;16898:67:0;;6415:2:1;16898:67:0::1;::::0;::::1;6397:21:1::0;6454:2;6434:18;;;6427:30;6493:32;6473:18;;;6466:60;6543:18;;16898:67:0::1;6213:354:1::0;16898:67:0::1;16976:15;:29:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16976:29:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16976:29:0::1;-1:-1:-1::0;;;;;16976:29:0;;;::::1;::::0;;;::::1;::::0;;16828:185::o;23050:371::-;-1:-1:-1;;;;;23180:19:0;;23150:4;23180:19;;;:11;:19;;;;;;;;23200:10;23180:31;;;;;;;;-1:-1:-1;;23180:45:0;23177:179;;23275:69;;;;;;;;;;;-1:-1:-1;;;23275:69:0;;;;;;;;-1:-1:-1;;;;;23275:19:0;;-1:-1:-1;23275:19:0;;;:11;:19;;;;;23295:10;23275:31;;;;;;;;;;:69;;23311:6;;23275:35;:69::i;:::-;-1:-1:-1;;;;;23241:19:0;;;;;;:11;:19;;;;;;;;23261:10;23241:31;;;;;;;:103;23177:179;23373:40;23387:6;23395:9;23406:6;23373:13;:40::i;:::-;23366:47;;23050:371;;;;;;:::o;18546:142::-;18674:4;;-1:-1:-1;;;;;18674:4:0;18599:7;18780:18;;;:9;:18;;;;;;18626:54;;18653:4;;-1:-1:-1;;;;;18653:4:0;18762:7;18780:18;;;:9;:18;;;;;;18626:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18619:61;;18546:142;:::o;20852:276::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;20984:21:::1;:39:::0;;21034:13:::1;:32:::0;;;;21077:43;::::1;;::::0;::::1;-1:-1:-1::0;;20984:39:0;::::1;;;;21077:43:::0;;;;-1:-1:-1;;21077:43:0;;;;;;;;;;::::1;::::0;;20852:276::o;21489:97::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21556:18:0::1;;::::0;;;:13:::1;:18;::::0;;;;:25;;-1:-1:-1;;21556:25:0::1;21577:4;21556:25;::::0;;21489:97::o;18238:300::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;18282:13:::1;18310:221;18330:15;:22:::0;18322:30;::::1;18310:221;;;18378:22;18403:33;18413:15;18429:5;18413:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;18413:22:0::1;18780:18:::0;;:9;:18;;;;;;;18696:105;18403:33:::1;18378:58;;18451:68;18457:15;18473:5;18457:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;18498:14:::1;::::0;-1:-1:-1;;;;;18457:22:0;;::::1;::::0;18515:3:::1;::::0;18481:31:::1;::::0;:14;:31:::1;:::i;:::-;:37;;;;:::i;:::-;18451:5;:68::i;:::-;-1:-1:-1::0;18354:7:0;::::1;::::0;::::1;:::i;:::-;;;;18310:221;;21344:139:::0;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;21437:6:::1;21431:3;:12;21423:21;;;::::0;::::1;;21455:14;:20:::0;21344:139::o;19172:115::-;19227:4;19251:28;19259:7;-1:-1:-1;;19251:7:0;:28::i;20294:401::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;20432:12:::1;:24:::0;;;20467:10:::1;:25:::0;;;20497:12:::1;:28:::0;;;20536:14:::1;:32:::0;;;20600:28:::1;20447:9:::0;20480:12;20600:16:::1;:28::i;:::-;20589:8;:39:::0;;;20672:14:::1;::::0;20659:28:::1;::::0;20589:39;20659:12:::1;:28::i;:::-;20639:17;:48:::0;-1:-1:-1;;;;20294:401:0:o;19910:376::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20010:23:0;::::1;20028:4;20010:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;20047:4:0::1;::::0;-1:-1:-1;;;;;20037:14:0;;::::1;20047:4:::0;::::1;20037:14;;20010:41;20002:50;;;::::0;::::1;;-1:-1:-1::0;;;;;20063:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;20063:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;20117:162:::1;;20142:19;::::0;:39:::1;::::0;-1:-1:-1;;;20142:39:0;;-1:-1:-1;;;;;7571:32:1;;;20142:39:0::1;::::0;::::1;7553:51:1::0;20179:1:0::1;7620:18:1::0;;;7613:34;20142:19:0;;;::::1;::::0;;::::1;::::0;:28:::1;::::0;7526:18:1;;20142:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19910:376:::0;;:::o;20117:162::-:1;20212:19;::::0;-1:-1:-1;;;;;20249:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;20212:55;;-1:-1:-1;;;20212:55:0;;::::1;::::0;::::1;7553:51:1::0;;;;7620:18;;;7613:34;20212:19:0;;;::::1;;::::0;:28:::1;::::0;7526:18:1;;20212:55:0::1;7371:282:1::0;20117:162:0::1;19910:376:::0;;:::o;13060:173::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;13136:5:::1;:11:::0;;-1:-1:-1;;;;;;13136:11:0::1;-1:-1:-1::0;;;;;13136:11:0;::::1;::::0;;::::1;::::0;;13158:19;;;-1:-1:-1;13158:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;13158:26:0::1;::::0;;::::1;::::0;;;13200:25;;4369:51:1;;;13200:25:0::1;::::0;4342:18:1;13200:25:0::1;;;;;;;13060:173:::0;:::o;19406:106::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;19482:10:::1;:22:::0;19406:106::o;19640:123::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19727:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19727:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19640:123::o;22886:156::-;22966:4;22990:44;23004:10;23016:9;23027:6;22990:13;:44::i;21136:200::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;21252:19:::1;::::0;:76:::1;::::0;-1:-1:-1;;;21252:76:0;;::::1;::::0;::::1;8327:25:1::0;;;8368:18;;;8361:34;;;21252:19:0;;;::::1;-1:-1:-1::0;;;;;21252:19:0::1;::::0;:43:::1;::::0;8300:18:1;;21252:76:0::1;8153:248:1::0;21592:97:0;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21666:18:0::1;;::::0;;;:13:::1;:18;::::0;;;;21659:25;;-1:-1:-1;;21659:25:0::1;::::0;;21592:97::o;21894:106::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;21967:17:::1;:28:::0;21894:106::o;21798:88::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21867:14:0::1;;::::0;;;:9:::1;:14;::::0;;;;21860:21;;-1:-1:-1;;21860:21:0::1;::::0;;21798:88::o;12333:94::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12393:19:0::1;;::::0;;;12415:4:::1;12393:19;::::0;;;;;;;:26;;-1:-1:-1;;12393:26:0::1;::::0;;::::1;::::0;;12333:94::o;22286:588::-;22363:11;;;;;;;22359:49;;22286:588;;:::o;22359:49::-;22420:14;-1:-1:-1;;;;;22439:21:0;;22455:4;22439:21;;;;:47;;-1:-1:-1;22473:13:0;;-1:-1:-1;;;;;22464:22:0;;;22473:13;;22464:22;;22439:47;:69;;;;-1:-1:-1;22124:17:0;;22160:8;;22490:18;22437:101;;;;-1:-1:-1;;;;;;22514:24:0;;;;;;:13;:24;;;;;;;;22437:101;-1:-1:-1;;;;;22569:17:0;;22549;22569;;;:9;:17;;;;;;22420:118;;-1:-1:-1;22549:17:0;22569;;;:41;;-1:-1:-1;;;;;;22590:20:0;;;;;;:9;:20;;;;;;;;22569:41;22549:61;-1:-1:-1;22630:18:0;;;;:43;;-1:-1:-1;22652:21:0;;22630:43;22621:64;;;;-1:-1:-1;;;22621:64:0;;8608:2:1;22621:64:0;;;8590:21:1;8647:1;8627:18;;;8620:29;-1:-1:-1;;;8665:18:1;;;8658:38;8713:18;;22621:64:0;8406:331:1;22621:64:0;-1:-1:-1;;;;;22745:24:0;;;;;;:13;:24;;;;;;;;22742:125;;;22822:17;;22809:10;;:30;;;;:::i;:::-;22794:12;:45;22785:70;;;;-1:-1:-1;;;22785:70:0;;9077:2:1;22785:70:0;;;9059:21:1;9116:2;9096:18;;;9089:30;-1:-1:-1;;;9135:18:1;;;9128:42;9187:18;;22785:70:0;8875:336:1;22785:70:0;22348:526;;22286:588;;:::o;22184:94::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;22250:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;22250:20:0;;::::1;::::0;;;::::1;::::0;;22184:94::o;17019:413::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;17092:13:::1;17120:229;17140:15;:22:::0;17132:30;::::1;17120:229;;;17218:7;-1:-1:-1::0;;;;;17192:33:0::1;:15;17208:5;17192:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17192:22:0::1;:33;17188:150;;;17257:15;17273:22:::0;;:24:::1;::::0;17296:1:::1;::::0;17273:24:::1;:::i;:::-;17257:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;17257:41:0::1;17234:15;17250:5;17234:22;;;;;;;;:::i;:::-;;;;;;;;;:64;;;;;-1:-1:-1::0;;;;;17234:64:0::1;;;;;-1:-1:-1::0;;;;;17234:64:0::1;;;;;;17317:5;;17188:150;17164:7:::0;::::1;::::0;::::1;:::i;:::-;;;;17120:229;;;17369:15;:22:::0;17360:31;::::1;17357:71;;17398:15;:21;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17398:21:0;;;;;-1:-1:-1;;;;;;17398:21:0::1;::::0;;;;;17081:351:::1;17019:413:::0;:::o;19295:103::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;19367:12:::1;:23:::0;19295:103::o;19520:108::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;19595:14:::1;:25:::0;;-1:-1:-1;;19595:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19520:108::o;12503:97::-;12715:4;12750:5;-1:-1:-1;;;;;12750:5:0;12057:10;12739:16;12041:38;;;;-1:-1:-1;;;12041:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12565:19:0::1;12587:5;12565:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;12565:27:0::1;::::0;;12503:97::o;20703:141::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;20792:21:::1;:44:::0;;-1:-1:-1;;;;;;20792:44:0::1;-1:-1:-1::0;;;;;20792:44:0;;;::::1;::::0;;;::::1;::::0;;20703:141::o;19771:131::-;12218:24;12231:10;12218:12;:24::i;:::-;12210:48;;;;-1:-1:-1;;;12210:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19862:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19862:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19771:131::o;12834:107::-;-1:-1:-1;;;;;12914:19:0;12890:4;12914:19;;;:14;:19;;;;;;;;;12834:107::o;2108:179::-;2166:7;;2198:5;2202:1;2198;:5;:::i;:::-;2186:17;;2227:1;2222;:6;;2214:46;;;;-1:-1:-1;;;2214:46:0;;9680:2:1;2214:46:0;;;9662:21:1;9719:2;9699:18;;;9692:30;9758:29;9738:18;;;9731:57;9805:18;;2214:46:0;9478:351:1;16450:370:0;16512:4;;;16591:194;16611:15;:22;16603:30;;16591:194;;;16689:7;-1:-1:-1;;;;;16663:33:0;:15;16679:5;16663:22;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;16663:22:0;:33;16659:115;;;16730:4;16717:17;;16753:5;;16659:115;16635:7;;;;:::i;:::-;;;;16591:194;;;-1:-1:-1;16802:10:0;16450:370;-1:-1:-1;;16450:370:0:o;2439:190::-;2525:7;2561:12;2553:6;;;;2545:29;;;;-1:-1:-1;;;2545:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2585:9:0;2597:5;2601:1;2597;:5;:::i;:::-;2585:17;2439:190;-1:-1:-1;;;;;2439:190:0:o;23429:1616::-;-1:-1:-1;;;;;23540:17:0;;23521:4;23540:17;;;:9;:17;;;;;;23532:30;;;;;;23596:25;23604:6;23611:9;23596:7;:25::i;:::-;23645:16;;;;23642:73;;;23671:41;23686:6;23694:9;23705:6;23671:14;:41::i;:::-;23664:48;;;;23642:73;-1:-1:-1;;;;;23731:22:0;;;;;;:14;:22;;;;;;;;23730:23;:53;;;;-1:-1:-1;;;;;;23758:25:0;;;;;;:14;:25;;;;;;;;23757:26;23730:53;23727:128;;;23807:11;;;;23799:44;;;;-1:-1:-1;;;23799:44:0;;10036:2:1;23799:44:0;;;10018:21:1;10075:2;10055:18;;;10048:30;-1:-1:-1;;;10094:18:1;;;10087:50;10154:18;;23799:44:0;9834:344:1;23799:44:0;23885:12;;23875:6;:22;;:49;;;-1:-1:-1;;;;;;23901:23:0;;;;;;:15;:23;;;;;;;;23875:49;23867:79;;;;-1:-1:-1;;;23867:79:0;;10385:2:1;23867:79:0;;;10367:21:1;10424:2;10404:18;;;10397:30;-1:-1:-1;;;10443:18:1;;;10436:47;10500:18;;23867:79:0;10183:341:1;23867:79:0;23976:4;;-1:-1:-1;;;;;23976:4:0;23962:10;:18;;;;:39;;-1:-1:-1;23985:16:0;;;;23984:17;23962:39;:64;;;;-1:-1:-1;24005:21:0;;;;;;;23962:64;:109;;;;-1:-1:-1;24058:13:0;;24048:4;24030:24;;;;:9;:24;;;;;;:41;;23962:109;23959:128;;;24074:10;:8;:10::i;:::-;24146:53;;;;;;;;;;;-1:-1:-1;;;24146:53:0;;;;;;;;-1:-1:-1;;;;;24146:17:0;;-1:-1:-1;24146:17:0;;;:9;:17;;;;;;;;:53;;24168:6;;24146:21;:53::i;:::-;-1:-1:-1;;;;;24126:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;24224:26;;;;;:15;:26;;;;;;;24223:27;:45;;;;-1:-1:-1;24254:14:0;;;;24223:45;24220:141;;;24338:10;;-1:-1:-1;;;;;24302:20:0;;;;;;:9;:20;;;;;;:32;;24327:6;24302:24;:32::i;:::-;:46;;24294:55;;;;;;-1:-1:-1;;;;;24406:19:0;;24383;24406;;;:11;:19;;;;;;;;24405:20;:47;;;;-1:-1:-1;;;;;;24430:22:0;;;;;;:11;:22;;;;;;;;24429:23;24405:47;:93;;24492:6;24405:93;;;24455:34;24463:6;24471:9;24482:6;24455:7;:34::i;:::-;-1:-1:-1;;;;;24532:20:0;;;;;;:9;:20;;;;;;24383:115;;-1:-1:-1;24532:37:0;;24383:115;24532:24;:37::i;:::-;-1:-1:-1;;;;;24509:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;24615:24;;;;;:16;:24;;;;;;;24611:127;;24660:19;;-1:-1:-1;;;;;24697:17:0;;;;;;;:9;:17;;;;;;;;24660:55;;-1:-1:-1;;;24660:55:0;;;;;7553:51:1;;;;7620:18;;;7613:34;24660:19:0;;;;;;:28;;7526:18:1;;24660:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24656:71;;-1:-1:-1;;;;;24754:27:0;;;;;;:16;:27;;;;;;;;24750:137;;24802:19;;-1:-1:-1;;;;;24842:20:0;;;;;;;:9;:20;;;;;;;;24802:61;;-1:-1:-1;;;24802:61:0;;;;;7553:51:1;;;;7620:18;;;7613:34;24802:19:0;;;;;;:28;;7526:18:1;;24802:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24798:77;;24903:19;;24931:14;;24903:43;;-1:-1:-1;;;;;;24903:43:0;;;;;160:25:1;;;;24903:19:0;;;;-1:-1:-1;;;;;24903:19:0;;:27;;133:18:1;;24903:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24899:59;24992:9;-1:-1:-1;;;;;24975:40:0;24984:6;-1:-1:-1;;;;;24975:40:0;-1:-1:-1;;;;;;;;;;;25003:11:0;24975:40;;;;160:25:1;;148:2;133:18;;14:177;24975:40:0;;;;;;;;-1:-1:-1;25033:4:0;;23429:1616;-1:-1:-1;;;;23429:1616:0:o;2295:136::-;2353:7;2380:43;2384:1;2387;2380:43;;;;;;;;;;;;;;;;;:3;:43::i;17882:348::-;-1:-1:-1;;;;;17958:21:0;;17950:67;;;;-1:-1:-1;;;17950:67:0;;10731:2:1;17950:67:0;;;10713:21:1;10770:2;10750:18;;;10743:30;10809:34;10789:18;;;10782:62;-1:-1:-1;;;10860:18:1;;;10853:31;10901:19;;17950:67:0;10529:397:1;17950:67:0;18051:68;18074:6;18051:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18051:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;18030:18:0;;;;;;:9;:18;;;;;:89;18145:12;;:24;;18162:6;18145:16;:24::i;:::-;18130:12;:39;18185:37;;160:25:1;;;18211:1:0;;-1:-1:-1;;;;;18185:37:0;;;-1:-1:-1;;;;;;;;;;;18185:37:0;148:2:1;133:18;18185:37:0;;;;;;;17882:348;;:::o;25057:330::-;25187:53;;;;;;;;;;;-1:-1:-1;;;25187:53:0;;;;;;;;-1:-1:-1;;;;;25187:17:0;;25150:4;25187:17;;;:9;:17;;;;;;;:53;;25209:6;;25187:21;:53::i;:::-;-1:-1:-1;;;;;25167:17:0;;;;;;;:9;:17;;;;;;:73;;;;25274:20;;;;;;;:32;;25299:6;25274:24;:32::i;:::-;-1:-1:-1;;;;;25251:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25322:35;;;;;;-1:-1:-1;;;;;;;;;;;25322:35:0;;;25350:6;160:25:1;;148:2;133:18;;14:177;25322:35:0;;;;;;;;-1:-1:-1;25375:4:0;25057:330;;;;;:::o;26004:1565::-;15316:16;:23;;-1:-1:-1;;15316:23:0;15335:4;15316:23;;;26106:4:::1;15316:16:::0;26088:24;;;:9:::1;:24;::::0;;;;;26183:8:::1;::::0;26165:12:::1;::::0;26088:24;;15316:16;26149:50:::1;::::0;26197:1:::1;::::0;26149:43:::1;::::0;26183:8;26149:43;;26088:24;;26149:15:::1;:29::i;:::-;:33:::0;::::1;:43::i;:50::-;26123:76:::0;-1:-1:-1;26210:20:0::1;26233:32;:11:::0;26123:76;26233:15:::1;:32::i;:::-;26302:16;::::0;;26316:1:::1;26302:16:::0;;;;;::::1;::::0;;26210:55;;-1:-1:-1;26278:21:0::1;::::0;26302:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26302:16:0::1;26278:40;;26347:4;26329;26334:1;26329:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26329:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;26373:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;26373:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;26329:7;;26373:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26363:4;26368:1;26363:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26363:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;26399:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;26399:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;26471:12;;26399:6:::1;::::0;26514:4;;26541::::1;::::0;26561:15:::1;::::0;26399:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;26689:12:0::1;::::0;26620:21:::1;::::0;-1:-1:-1;26600:17:0::1;::::0;-1:-1:-1;26676:33:0::1;::::0;26689:19:::1;::::0;26706:1:::1;26689:16;:19::i;:::-;26676:8;::::0;;:12:::1;:33::i;:::-;26654:55;;26730:26;26759:51;26808:1;26759:44;26791:11;26759:27;26773:12;;26759:9;:13;;:27;;;;:::i;:51::-;26730:80;;26821:27;26851:42;26881:11;26851:25;26865:10;;26851:9;:13;;:25;;;;:::i;:42::-;26821:72:::0;-1:-1:-1;26898:24:0::1;26925:58;26964:18:::0;26925:34:::1;:9:::0;26821:72;26925:13:::1;:34::i;:58::-;26898:85;;27000:19;;;;;;;;;-1:-1:-1::0;;;;;27000:19:0::1;-1:-1:-1::0;;;;;27000:27:0::1;;27035:19;27000:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;26996:73:::0;27092:19;;27089:362:::1;;27127:6;::::0;27301:21:::1;::::0;27127:244:::1;::::0;-1:-1:-1;;;27127:244:0;;27203:4:::1;27127:244;::::0;::::1;12645:34:1::0;12695:18;;;12688:34;;;27127:6:0::1;12738:18:1::0;;;12731:34;;;12781:18;;;12774:34;-1:-1:-1;;;;;27301:21:0;;::::1;12824:19:1::0;;;12817:44;27341:15:0::1;12877:19:1::0;;;12870:35;27127:6:0;::::1;::::0;:22:::1;::::0;27157:18;;12579:19:1;;27127:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;27391:48:0::1;::::0;;8327:25:1;;;8383:2;8368:18;;8361:34;;;27391:48:0::1;::::0;-1:-1:-1;8300:18:1;27391:48:0::1;;;;;;;27089:362;27463:20:::0;;27459:103:::1;;27521:16;::::0;27490:66:::1;::::0;-1:-1:-1;;;;;27521:16:0::1;27539::::0;27490:30:::1;:66::i;:::-;-1:-1:-1::0;;15362:16:0;:24;;-1:-1:-1;;15362:24:0;;;-1:-1:-1;;;;;;;26004:1565:0:o;25395:439::-;25535:4;;25481:7;;;;-1:-1:-1;;;;;25535:17:0;;;:4;;:17;:48;;25575:8;;25535:48;;;25555:17;;25535:48;25511:72;-1:-1:-1;25594:17:0;25614:34;25644:3;25614:25;:6;25511:72;25614:10;:25::i;:34::-;25706:4;25688:24;;;;:9;:24;;;;;;25594:54;;-1:-1:-1;25688:39:0;;25594:54;25688:28;:39::i;:::-;25679:4;25661:24;;;;:9;:24;;;;;;;:66;;;;25743:42;;-1:-1:-1;;;;;25743:42:0;;;-1:-1:-1;;;;;;;;;;;25743:42:0;;;25775:9;160:25:1;;148:2;133:18;;14:177;25743:42:0;;;;;;;;25805:21;:6;25816:9;25805:10;:21::i;:::-;25798:28;25395:439;-1:-1:-1;;;;;;25395:439:0:o;2637:224::-;2695:7;2719:6;2715:25;;-1:-1:-1;2736:1:0;2729:8;;2715:25;2750:9;2762:5;2766:1;2762;:5;:::i;:::-;2750:17;-1:-1:-1;2795:1:0;2786:5;2790:1;2750:17;2786:5;:::i;:::-;:10;2778:56;;;;-1:-1:-1;;;2778:56:0;;13429:2:1;2778:56:0;;;13411:21:1;13468:2;13448:18;;;13441:30;13507:34;13487:18;;;13480:62;-1:-1:-1;;;13558:18:1;;;13551:31;13599:19;;2778:56:0;13227:397:1;2869:132:0;2927:7;2954:39;2958:1;2961;2954:39;;;;;;;;;;;;;;;;;:3;:39::i;1875:200::-;1988:12;;;1948;1988;;;;;;;;;-1:-1:-1;;;;;1966:7:0;;;1981:5;;1966:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1947:54;;;2020:7;2012:55;;;;-1:-1:-1;;;2012:55:0;;14110:2:1;2012:55:0;;;14092:21:1;14149:2;14129:18;;;14122:30;14188:34;14168:18;;;14161:62;-1:-1:-1;;;14239:18:1;;;14232:33;14282:19;;2012:55:0;13908:399:1;2012:55:0;1936:139;1875:200;;:::o;3009:189::-;3095:7;3130:12;3123:5;3115:28;;;;-1:-1:-1;;;3115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3154:9:0;3166:5;3170:1;3166;:5;:::i;196:258:1:-;268:1;278:113;292:6;289:1;286:13;278:113;;;368:11;;;362:18;349:11;;;342:39;314:2;307:10;278:113;;;409:6;406:1;403:13;400:48;;;-1:-1:-1;;444:1:1;426:16;;419:27;196:258::o;459:383::-;608:2;597:9;590:21;571:4;640:6;634:13;683:6;678:2;667:9;663:18;656:34;699:66;758:6;753:2;742:9;738:18;733:2;725:6;721:15;699:66;:::i;:::-;826:2;805:15;-1:-1:-1;;801:29:1;786:45;;;;833:2;782:54;;459:383;-1:-1:-1;;459:383:1:o;847:131::-;-1:-1:-1;;;;;922:31:1;;912:42;;902:70;;968:1;965;958:12;983:315;1051:6;1059;1112:2;1100:9;1091:7;1087:23;1083:32;1080:52;;;1128:1;1125;1118:12;1080:52;1167:9;1154:23;1186:31;1211:5;1186:31;:::i;:::-;1236:5;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;983:315:1:o;1495:160::-;1560:20;;1616:13;;1609:21;1599:32;;1589:60;;1645:1;1642;1635:12;1589:60;1495:160;;;:::o;1660:180::-;1716:6;1769:2;1757:9;1748:7;1744:23;1740:32;1737:52;;;1785:1;1782;1775:12;1737:52;1808:26;1824:9;1808:26;:::i;1845:247::-;1904:6;1957:2;1945:9;1936:7;1932:23;1928:32;1925:52;;;1973:1;1970;1963:12;1925:52;2012:9;1999:23;2031:31;2056:5;2031:31;:::i;2097:456::-;2174:6;2182;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2298:9;2285:23;2317:31;2342:5;2317:31;:::i;:::-;2367:5;-1:-1:-1;2424:2:1;2409:18;;2396:32;2437:33;2396:32;2437:33;:::i;:::-;2097:456;;2489:7;;-1:-1:-1;;;2543:2:1;2528:18;;;;2515:32;;2097:456::o;2747:316::-;2818:6;2826;2834;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;2926:26;2942:9;2926:26;:::i;:::-;2916:36;;2999:2;2988:9;2984:18;2971:32;2961:42;;3022:35;3053:2;3042:9;3038:18;3022:35;:::i;:::-;3012:45;;2747:316;;;;;:::o;3068:180::-;3127:6;3180:2;3168:9;3159:7;3155:23;3151:32;3148:52;;;3196:1;3193;3186:12;3148:52;-1:-1:-1;3219:23:1;;3068:180;-1:-1:-1;3068:180:1:o;3253:385::-;3339:6;3347;3355;3363;3416:3;3404:9;3395:7;3391:23;3387:33;3384:53;;;3433:1;3430;3423:12;3384:53;-1:-1:-1;;3456:23:1;;;3526:2;3511:18;;3498:32;;-1:-1:-1;3577:2:1;3562:18;;3549:32;;3628:2;3613:18;3600:32;;-1:-1:-1;3253:385:1;-1:-1:-1;3253:385:1:o;3643:315::-;3708:6;3716;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3824:9;3811:23;3843:31;3868:5;3843:31;:::i;:::-;3893:5;-1:-1:-1;3917:35:1;3948:2;3933:18;;3917:35;:::i;:::-;3907:45;;3643:315;;;;;:::o;4431:248::-;4499:6;4507;4560:2;4548:9;4539:7;4535:23;4531:32;4528:52;;;4576:1;4573;4566:12;4528:52;-1:-1:-1;;4599:23:1;;;4669:2;4654:18;;;4641:32;;-1:-1:-1;4431:248:1:o;4920:388::-;4988:6;4996;5049:2;5037:9;5028:7;5024:23;5020:32;5017:52;;;5065:1;5062;5055:12;5017:52;5104:9;5091:23;5123:31;5148:5;5123:31;:::i;:::-;5173:5;-1:-1:-1;5230:2:1;5215:18;;5202:32;5243:33;5202:32;5243:33;:::i;:::-;5295:7;5285:17;;;4920:388;;;;;:::o;5539:329::-;5741:2;5723:21;;;5780:1;5760:18;;;5753:29;-1:-1:-1;;;5813:2:1;5798:18;;5791:36;5859:2;5844:18;;5539:329::o;5873:335::-;6075:2;6057:21;;;6114:2;6094:18;;;6087:30;-1:-1:-1;;;6148:2:1;6133:18;;6126:41;6199:2;6184:18;;5873:335::o;6572:127::-;6633:10;6628:3;6624:20;6621:1;6614:31;6664:4;6661:1;6654:15;6688:4;6685:1;6678:15;6704:127;6765:10;6760:3;6756:20;6753:1;6746:31;6796:4;6793:1;6786:15;6820:4;6817:1;6810:15;6836:168;6876:7;6942:1;6938;6934:6;6930:14;6927:1;6924:21;6919:1;6912:9;6905:17;6901:45;6898:71;;;6949:18;;:::i;:::-;-1:-1:-1;6989:9:1;;6836:168::o;7009:217::-;7049:1;7075;7065:132;;7119:10;7114:3;7110:20;7107:1;7100:31;7154:4;7151:1;7144:15;7182:4;7179:1;7172:15;7065:132;-1:-1:-1;7211:9:1;;7009:217::o;7231:135::-;7270:3;-1:-1:-1;;7291:17:1;;7288:43;;;7311:18;;:::i;:::-;-1:-1:-1;7358:1:1;7347:13;;7231:135::o;8742:128::-;8782:3;8813:1;8809:6;8806:1;8803:13;8800:39;;;8819:18;;:::i;:::-;-1:-1:-1;8855:9:1;;8742:128::o;9216:125::-;9256:4;9284:1;9281;9278:8;9275:34;;;9289:18;;:::i;:::-;-1:-1:-1;9326:9:1;;9216:125::o;9346:127::-;9407:10;9402:3;9398:20;9395:1;9388:31;9438:4;9435:1;9428:15;9462:4;9459:1;9452:15;11063:251;11133:6;11186:2;11174:9;11165:7;11161:23;11157:32;11154:52;;;11202:1;11199;11192:12;11154:52;11234:9;11228:16;11253:31;11278:5;11253:31;:::i;11319:980::-;11581:4;11629:3;11618:9;11614:19;11660:6;11649:9;11642:25;11686:2;11724:6;11719:2;11708:9;11704:18;11697:34;11767:3;11762:2;11751:9;11747:18;11740:31;11791:6;11826;11820:13;11857:6;11849;11842:22;11895:3;11884:9;11880:19;11873:26;;11934:2;11926:6;11922:15;11908:29;;11955:1;11965:195;11979:6;11976:1;11973:13;11965:195;;;12044:13;;-1:-1:-1;;;;;12040:39:1;12028:52;;12135:15;;;;12100:12;;;;12076:1;11994:9;11965:195;;;-1:-1:-1;;;;;;;12216:32:1;;;;12211:2;12196:18;;12189:60;-1:-1:-1;;;12280:3:1;12265:19;12258:35;12177:3;11319:980;-1:-1:-1;;;11319:980:1:o;12916:306::-;13004:6;13012;13020;13073:2;13061:9;13052:7;13048:23;13044:32;13041:52;;;13089:1;13086;13079:12;13041:52;13118:9;13112:16;13102:26;;13168:2;13157:9;13153:18;13147:25;13137:35;;13212:2;13201:9;13197:18;13191:25;13181:35;;12916:306;;;;;:::o;13629:274::-;13758:3;13796:6;13790:13;13812:53;13858:6;13853:3;13846:4;13838:6;13834:17;13812:53;:::i;:::-;13881:16;;;;;13629:274;-1:-1:-1;;13629:274:1:o
Swarm Source
ipfs://e79500874fcb63186fa41c0a02159de435e28375cfd7421a64b137e0a92eb5dd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.