ERC-20
Overview
Max Total Supply
1,000,000,000,000 HD
Holders
28
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,558,660,324.026155637 HDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HotDoge
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-06 */ /** * https://hotdoge.fun/ https://t.me/HotDogeChain */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.5; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ 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); } /** * Allows for contract ownership along with multi-address authorization */ 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 transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IBEP20 DC = IBEP20(0x7B4328c127B85369D9f82ca0503B000D09CF9180); address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IDEXRouter router; 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 = 1 hours; uint256 public minDistribution = 1 * (10 ** 8); 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(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } 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 = DC.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(DC); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = DC.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 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; 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); DC.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend(address shareholder) external onlyToken{ distributeDividend(shareholder); } 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(); } } contract HotDoge is IBEP20, Auth { using SafeMath for uint256; address DC = 0x7B4328c127B85369D9f82ca0503B000D09CF9180; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "HotDoge"; string constant _symbol = "HD"; uint8 constant _decimals = 9; uint256 _totalSupply = 1000000000000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply / 2; // 5% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isDividendExempt; uint256 liquidityFee = 0; uint256 buybackFee = 0; uint256 reflectionFee = 200; uint256 marketingFee = 500; uint256 totalFee = 700; uint256 feeDenominator = 10000; address public autoLiquidityReceiver; address public marketingFeeReceiver; uint256 targetLiquidity = 25; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; uint256 public launchedAt; uint256 buybackMultiplierNumerator = 200; uint256 buybackMultiplierDenominator = 100; uint256 buybackMultiplierTriggeredAt; uint256 buybackMultiplierLength = 30 minutes; bool public autoBuybackEnabled = false; bool public autoBuybackMultiplier = true; uint256 autoBuybackCap; uint256 autoBuybackAccumulator; uint256 autoBuybackAmount; uint256 autoBuybackBlockPeriod; uint256 autoBuybackBlockLast; DividendDistributor distributor; uint256 distributorGas = 500000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 200; // 5% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(address(router)); address _presaler = 0x8fa5394019d4be1128a17C32b0120c568c32f8Ee; //WALLET DEV isFeeExempt[_presaler] = true; isTxLimitExempt[_presaler] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = msg.sender; _balances[_presaler] = _totalSupply; emit Transfer(address(0), _presaler, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } 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, type(uint256).max); } 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] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } if(shouldAutoBuyback()){ triggerAutoBuyback(); } if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); } if(selling && buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp){ return getMultipliedFee(); } return totalFee; } function getMultipliedFee() public view returns (uint256) { uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp); uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee); return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength)); } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHReflection = amountETH.mul(reflectionFee).div(totalETHFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); try distributor.deposit{value: amountETHReflection}() {} catch {} (bool success, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(success, "receiver rejected ETH transfer"); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function shouldAutoBuyback() internal view returns (bool) { return msg.sender != pair && !inSwap && autoBuybackEnabled && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number && address(this).balance >= autoBuybackAmount; } function triggerManualBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized { buyTokens(amount, DEAD); if(triggerBuybackMultiplier){ buybackMultiplierTriggeredAt = block.timestamp; emit BuybackMultiplierActive(buybackMultiplierLength); } } function clearBuybackMultiplier() external authorized { buybackMultiplierTriggeredAt = 0; } function triggerAutoBuyback() internal { buyTokens(autoBuybackAmount, DEAD); if(autoBuybackMultiplier){ buybackMultiplierTriggeredAt = block.timestamp; emit BuybackMultiplierActive(buybackMultiplierLength); } autoBuybackBlockLast = block.number; autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount); if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = WETH; path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period, bool _autoBuybackMultiplier) external authorized { autoBuybackEnabled = _enabled; autoBuybackCap = _cap; autoBuybackAccumulator = 0; autoBuybackAmount = _amount; autoBuybackBlockPeriod = _period; autoBuybackBlockLast = block.number; autoBuybackMultiplier = _autoBuybackMultiplier; } function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized { require(numerator / denominator <= 2 && numerator > denominator); buybackMultiplierNumerator = numerator; buybackMultiplierDenominator = denominator; buybackMultiplierLength = length; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function setTxLimit(uint256 amount) external authorized { require(amount >= _totalSupply / 1000); _maxTxAmount = amount; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized { liquidityFee = _liquidityFee; buybackFee = _buybackFee; reflectionFee = _reflectionFee; marketingFee = _marketingFee; totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee); feeDenominator = _feeDenominator; } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function manualSend() external authorized { uint256 contractETHBalance = address(this).balance; payable(marketingFeeReceiver).transfer(contractETHBalance); } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function claimDividend() external { distributor.claimDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { return distributor.getUnpaidEarnings(shareholder); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); event BuybackMultiplierActive(uint256 duration); }
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":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoBuybackMultiplier","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"bool","name":"_autoBuybackMultiplier","type":"bool"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerManualBuyback","outputs":[],"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
6080604052600280546001600160a01b0319908116737b4328c127b85369d9f82ca0503b000d09cf91801790915560038054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560048054821661dead1790556005805490911690556200006e6009600a620004d6565b6200007f9064e8d4a5100062000597565b60065560026006546200009391906200046a565b6007556000600d819055600e5560c8600f8190556101f46010556102bc601155612710601255601960155560646016819055601a829055601b55610708601d55601e805461ffff19166101001790556207a1206025556026805460ff191660011790556006546200010591906200046a565b6027553480156200011557600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560178054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200019757600080fd5b505afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d2919062000438565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200021f57600080fd5b505af115801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000438565b601880546001600160a01b0319166001600160a01b0392831617905530600090815260096020908152604080832060178054861685529252918290206000199055549051911690620002ac906200042a565b6001600160a01b039091168152602001604051809103906000f080158015620002d9573d6000803e3d6000fd5b50602480546001600160a01b03199081166001600160a01b03938416179091557fded47a209d90619f9f3bd1008bfcbc11169de9cc2780dacbd593f545194afe0e805460ff1990811660019081179092557ffd4b658430044810b5c36706765e5e21f8c292b95f616421a5d23523a6d9e0e0805482168317905560185484166000908152600c602090815260408083208054851686179055308352808320805485168617905560045490961682528582208054909316909317909155601380543390851681179091556014805490941617909255600654738fa5394019d4be1128a17c32b0120c568c32f8ee808452600883527fb4dee3b3f2714d5b24943f425f066e4b38485227a60e1230ad5bcea1706c175f82905593519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005cf565b6110678062002b5783390190565b6000602082840312156200044b57600080fd5b81516001600160a01b03811681146200046357600080fd5b9392505050565b6000826200048857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004ce578160001904821115620004b257620004b2620005b9565b80851615620004c057918102915b93841c939080029062000492565b509250929050565b60006200046360ff841683600082620004f25750600162000591565b81620005015750600062000591565b81600181146200051a5760028114620005255762000545565b600191505062000591565b60ff841115620005395762000539620005b9565b50506001821b62000591565b5060208310610133831016604e8410600b84101617156200056a575081810a62000591565b6200057683836200048d565b80600019048211156200058d576200058d620005b9565b0290505b92915050565b6000816000190483118215151615620005b457620005b4620005b9565b500290565b634e487b7160e01b600052601160045260246000fd5b61257880620005df6000396000f3fe6080604052600436106102975760003560e01c806395d89b411161015a578063df20fd49116100c1578063f2fde38b1161007a578063f2fde38b14610823578063f429389014610843578063f708a64f14610858578063f84ba65d14610878578063f887ea4014610898578063fe9fbb80146108b857600080fd5b8063df20fd491461076f578063e1dcc71f1461078f578063e96fada2146107ae578063f0b37c04146107ce578063f0fc6bca146107ee578063f1f3bca31461080357600080fd5b8063b6a5d7de11610113578063b6a5d7de1461069e578063bf56b371146106be578063ca33e64c146106d4578063d51ed1c8146106f4578063d806d12f14610714578063dd62ed3e1461072957600080fd5b806395d89b41146105de5780639d1944f514610609578063a4b45c0014610629578063a8aa1b3114610649578063a9059cbb14610669578063b210b06d1461068957600080fd5b80632f54bf6e116101fe578063658d4b7f116101b7578063658d4b7f146105065780636ddd17131461052657806370a08231146105405780637d1db4a51461057657806382334b941461058c578063893d20e8146105ac57600080fd5b80632f54bf6e146104415780632f5620d114610470578063313ce567146104905780633bb8a8d4146104ac578063571ac8b0146104c65780635c85974f146104e657600080fd5b8063201e799111610250578063201e79911461038c5780632375ce40146103ac57806323b872dd146103cc57806328fd3198146103ec5780632b112e491461040c5780632d48e8961461042157600080fd5b80630445b667146102a357806304a66b48146102cc57806306fdde03146102ee578063095ea7b3146103275780631161ae391461035757806318160ddd1461037757600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960275481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e7366004612304565b6108d8565b005b3480156102fa57600080fd5b50604080518082019091526007815266486f74446f676560c81b60208201525b6040516102c391906123b8565b34801561033357600080fd5b50610347610342366004612180565b61093c565b60405190151581526020016102c3565b34801561036357600080fd5b50610347610372366004612288565b6109a9565b34801561038357600080fd5b506006546102b9565b34801561039857600080fd5b506102ec6103a7366004612288565b6109bd565b3480156103b857600080fd5b506102ec6103c73660046122aa565b6109ed565b3480156103d857600080fd5b506103476103e736600461210a565b610a42565b3480156103f857600080fd5b506102b96104073660046120b4565b610b04565b34801561041857600080fd5b506102b9610b82565b34801561042d57600080fd5b506102ec61043c366004612288565b610bd4565b34801561044d57600080fd5b5061034761045c3660046120b4565b6000546001600160a01b0391821691161490565b34801561047c57600080fd5b506102ec61048b3660046121e3565b610c61565b34801561049c57600080fd5b50604051600981526020016102c3565b3480156104b857600080fd5b50601e546103479060ff1681565b3480156104d257600080fd5b506103476104e13660046120b4565b610cc7565b3480156104f257600080fd5b506102ec610501366004612233565b610cd5565b34801561051257600080fd5b506102ec61052136600461214b565b610d1b565b34801561053257600080fd5b506026546103479060ff1681565b34801561054c57600080fd5b506102b961055b3660046120b4565b6001600160a01b031660009081526008602052604090205490565b34801561058257600080fd5b506102b960075481565b34801561059857600080fd5b506102ec6105a7366004612265565b610d6b565b3480156105b857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b3480156105ea57600080fd5b50604080518082019091526002815261121160f21b602082015261031a565b34801561061557600080fd5b506102ec610624366004612233565b610dec565b34801561063557600080fd5b506102ec6106443660046120d1565b610e25565b34801561065557600080fd5b506018546105c6906001600160a01b031681565b34801561067557600080fd5b50610347610684366004612180565b610e78565b34801561069557600080fd5b506102ec610e85565b3480156106aa57600080fd5b506102ec6106b93660046120b4565b610eb1565b3480156106ca57600080fd5b506102b960195481565b3480156106e057600080fd5b506013546105c6906001600160a01b031681565b34801561070057600080fd5b506102b961070f366004612233565b610f02565b34801561072057600080fd5b506102b9610f46565b34801561073557600080fd5b506102b96107443660046120d1565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561077b57600080fd5b506102ec61078a3660046121c7565b610fb9565b34801561079b57600080fd5b50601e5461034790610100900460ff1681565b3480156107ba57600080fd5b506014546105c6906001600160a01b031681565b3480156107da57600080fd5b506102ec6107e93660046120b4565b610ff5565b3480156107fa57600080fd5b506102ec611040565b34801561080f57600080fd5b506102b961081e3660046121ac565b61109e565b34801561082f57600080fd5b506102ec61083e3660046120b4565b6110fa565b34801561084f57600080fd5b506102ec611190565b34801561086457600080fd5b506102ec61087336600461214b565b6111ef565b34801561088457600080fd5b506102ec61089336600461214b565b6112f7565b3480156108a457600080fd5b506017546105c6906001600160a01b031681565b3480156108c457600080fd5b506103476108d33660046120b4565b611347565b6108e133611347565b6109065760405162461bcd60e51b81526004016108fd9061242d565b60405180910390fd5b600d859055600e849055600f83905560108290556109308261092a85818989611365565b90611365565b60115560125550505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109979086815260200190565b60405180910390a35060015b92915050565b6000826109b583610f02565b119392505050565b6109c633611347565b6109e25760405162461bcd60e51b81526004016108fd9061242d565b601591909155601655565b6109f633611347565b610a125760405162461bcd60e51b81526004016108fd9061242d565b6002610a1e83856124a6565b11158015610a2b57508183115b610a3457600080fd5b601a92909255601b55601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aef576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610aca9184906113c4565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610afa8484846113fe565b90505b9392505050565b6024805460405163051fa63360e31b81526001600160a01b0384811660048301526000939216916328fd3198910160206040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a3919061224c565b6005546001600160a01b0316600090815260086020526040812054610bcf906004546001600160a01b0316600090815260086020526040902054610bc9906006549061174c565b9061174c565b905090565b610bdd33611347565b610bf95760405162461bcd60e51b81526004016108fd9061242d565b602480546040516316a4744b60e11b8152600481018590529182018390526001600160a01b031690632d48e896906044015b600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b505050505050565b610c6a33611347565b610c865760405162461bcd60e51b81526004016108fd9061242d565b601e8054601f9590955560006020556021939093556022919091554360235561ffff1990921692151561ff0019169290921761010091151591909102179055565b60006109a38260001961093c565b610cde33611347565b610cfa5760405162461bcd60e51b81526004016108fd9061242d565b6103e8600654610d0a91906124a6565b811015610d1657600080fd5b600755565b610d2433611347565b610d405760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610d7433611347565b610d905760405162461bcd60e51b81526004016108fd9061242d565b600454610da79083906001600160a01b031661178e565b8015610de85742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b610df533611347565b610e115760405162461bcd60e51b81526004016108fd9061242d565b620b71b08110610e2057600080fd5b602555565b610e2e33611347565b610e4a5760405162461bcd60e51b81526004016108fd9061242d565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610afd3384846113fe565b610e8e33611347565b610eaa5760405162461bcd60e51b81526004016108fd9061242d565b6000601c55565b6000546001600160a01b03163314610edb5760405162461bcd60e51b81526004016108fd9061240d565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60006109a3610f0f610b82565b6018546001600160a01b0316600090815260086020526040902054610f4090610f39906002611897565b8590611897565b90611916565b600080610f6442610bc9601d54601c5461136590919063ffffffff16565b90506000610f8b601154610bc9601b54610f40601a5460115461189790919063ffffffff16565b9050610fb2610fa9601d54610f40858561189790919063ffffffff16565b60115490611365565b9250505090565b610fc233611347565b610fde5760405162461bcd60e51b81526004016108fd9061242d565b6026805460ff191692151592909217909155602755565b6000546001600160a01b0316331461101f5760405162461bcd60e51b81526004016108fd9061240d565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60248054604051630afbf02f60e11b81523360048201526001600160a01b03909116916315f7e05e9101600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b50505050565b60004360195460016110b0919061248e565b106110c3576012546109a390600161174c565b8180156110e55750426110e3601d54601c5461136590919063ffffffff16565b115b156110f2576109a3610f46565b505060115490565b6000546001600160a01b031633146111245760405162461bcd60e51b81526004016108fd9061240d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61119933611347565b6111b55760405162461bcd60e51b81526004016108fd9061242d565b60145460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610de8573d6000803e3d6000fd5b6111f833611347565b6112145760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b038216301480159061123b57506018546001600160a01b03838116911614155b61124457600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556112ac5760248054604051630a5b654b60e11b81526001600160a01b0385811660048301526000938201939093529116906314b6ca9690604401610c2b565b602480546001600160a01b0384811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401610c2b565b61130033611347565b61131c5760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600080611372838561248e565b905083811015610afd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108fd565b600081848411156113e85760405162461bcd60e51b81526004016108fd91906123b8565b5060006113f584866124e7565b95945050505050565b60285460009060ff161561141e57611417848484611958565b9050610afd565b6114288483611a3e565b611430611aa7565b1561143d5761143d611af6565b611445611ed2565b1561145257611452611f2d565b60195415801561146f57506018546001600160a01b038481169116145b1561149f576001600160a01b03841660009081526008602052604090205461149657600080fd5b61149f43601955565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114f19184906113c4565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156115265782611531565b611531858585611fbf565b6001600160a01b0385166000908152600860205260409020549091506115579082611365565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff166115fd57602480546001600160a01b0387811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b1580156115ea57600080fd5b505af19250505080156115fb575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661169057602480546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b15801561167d57600080fd5b505af192505050801561168e575060015b505b6024546025546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116c89160040190815260200190565b600060405180830381600087803b1580156116e257600080fd5b505af19250505080156116f3575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161173991815260200190565b60405180910390a3506001949350505050565b6000610afd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113c4565b6028805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906117dc576117dc612514565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061181057611810612514565b6001600160a01b03928316602091820292909201015260175460405163b6f9de9560e01b815291169063b6f9de9590859061185690600090869088904290600401612383565b6000604051808303818588803b15801561186f57600080fd5b505af1158015611883573d6000803e3d6000fd5b50506028805460ff19169055505050505050565b6000826118a6575060006109a3565b60006118b283856124c8565b9050826118bf85836124a6565b14610afd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108fd565b6000610afd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612071565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119a99184906113c4565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119d89083611365565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a2c9086815260200190565b60405180910390a35060019392505050565b60075481111580611a6757506001600160a01b0382166000908152600b602052604090205460ff165b610de85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108fd565b6018546000906001600160a01b03163314801590611ac8575060285460ff16155b8015611ad6575060265460ff165b8015610bcf57505060275430600090815260086020526040902054101590565b6028805460ff19166001179055601554601654600091611b15916109a9565b611b2157600d54611b24565b60005b90506000611b486002610f40601154610f408660275461189790919063ffffffff16565b90506000611b618260275461174c90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611b9b57611b9b612514565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611bcc57611bcc612514565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611c16908690600090879030904290600401612452565b600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b505050506000611c5d824761174c90919063ffffffff16565b90506000611c78611c6f886002611916565b6011549061174c565b90506000611c8d6002610f408481878d611897565b90506000611caa83610f40600f548761189790919063ffffffff16565b90506000611cc784610f406010548861189790919063ffffffff16565b9050602460009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d1957600080fd5b505af193505050508015611d2b575060015b506014546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611d7e576040519150601f19603f3d011682016040523d82523d6000602084013e611d83565b606091505b5050905080611dd45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108fd565b8915611ebb5760175460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b158015611e4557600080fd5b505af1158015611e59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e7e91906122d6565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506028805460ff19169055505050505050505050565b6018546000906001600160a01b03163314801590611ef3575060285460ff16155b8015611f015750601e5460ff165b8015611f1c575043602254602354611f19919061248e565b11155b8015610bcf57505060215447101590565b602154600454611f4691906001600160a01b031661178e565b601e54610100900460ff1615611f915742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b43602355602154602054611fa491611365565b6020819055601f541015611fbd57601e805460ff191690555b565b6012546018546000918291611ff19190610f4090611fea906001600160a01b0389811691161461109e565b8690611897565b3060009081526008602052604090205490915061200e9082611365565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061205f9085815260200190565b60405180910390a36113f5838261174c565b600081836120925760405162461bcd60e51b81526004016108fd91906123b8565b5060006113f584866124a6565b803580151581146120af57600080fd5b919050565b6000602082840312156120c657600080fd5b8135610afd8161252a565b600080604083850312156120e457600080fd5b82356120ef8161252a565b915060208301356120ff8161252a565b809150509250929050565b60008060006060848603121561211f57600080fd5b833561212a8161252a565b9250602084013561213a8161252a565b929592945050506040919091013590565b6000806040838503121561215e57600080fd5b82356121698161252a565b91506121776020840161209f565b90509250929050565b6000806040838503121561219357600080fd5b823561219e8161252a565b946020939093013593505050565b6000602082840312156121be57600080fd5b610afd8261209f565b600080604083850312156121da57600080fd5b61219e8361209f565b600080600080600060a086880312156121fb57600080fd5b6122048661209f565b94506020860135935060408601359250606086013591506122276080870161209f565b90509295509295909350565b60006020828403121561224557600080fd5b5035919050565b60006020828403121561225e57600080fd5b5051919050565b6000806040838503121561227857600080fd5b823591506121776020840161209f565b6000806040838503121561229b57600080fd5b50508035926020909101359150565b6000806000606084860312156122bf57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156122eb57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561231c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526020808501945080840160005b838110156123785781516001600160a01b031687529582019590820190600101612353565b509495945050505050565b84815260806020820152600061239c608083018661233f565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156123e5578581018301518582016040015282016123c9565b818111156123f7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a06040820152600061247160a083018661233f565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156124a1576124a16124fe565b500190565b6000826124c357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156124e2576124e26124fe565b500290565b6000828210156124f9576124f96124fe565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461253f57600080fd5b5056fea2646970667358221220c2f1ac92ee8eb4205f2462871eee1c27cfefd3c783a3e2b5413df8a3323aeee364736f6c634300080700336080604052600180546001600160a01b0319908116737b4328c127b85369d9f82ca0503b000d09cf9180179091556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556ec097ce7bc90715b34b9f1000000000600c55610e10600d556305f5e100600e5534801561007957600080fd5b50604051611067380380611067833981016040819052610098916100f2565b6001600160a01b0381166100c057737a250d5630b4cf539739df2c5dacb4c659f2488d6100c2565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610122565b60006020828403121561010457600080fd5b81516001600160a01b038116811461011b57600080fd5b9392505050565b610f36806101316000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461022e578063efca2eed14610244578063ffb2c4791461025a578063ffd49c841461027a57600080fd5b8063997664d7146101b9578063ce7c2ac2146101cf578063d0e30db01461022657600080fd5b806328fd3198116100bb57806328fd31981461014d5780632d48e8961461016d5780633a98ef391461018d5780634fab0ae8146101a357600080fd5b806311ce023d146100e257806314b6ca961461010b57806315f7e05e1461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610cd4565b610290565b005b34801561013957600080fd5b5061012b610148366004610cb9565b610408565b34801561015957600080fd5b506100f8610168366004610cb9565b61042b565b34801561017957600080fd5b5061012b610188366004610d52565b6104b4565b34801561019957600080fd5b506100f860085481565b3480156101af57600080fd5b506100f8600e5481565b3480156101c557600080fd5b506100f860095481565b3480156101db57600080fd5b5061020b6101ea366004610cb9565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104d6565b34801561023a57600080fd5b506100f8600b5481565b34801561025057600080fd5b506100f8600a5481565b34801561026657600080fd5b5061012b610275366004610d20565b610723565b34801561028657600080fd5b506100f8600d5481565b6000546001600160a01b031633146102a757600080fd5b6001600160a01b038216600090815260076020526040902054156102ce576102ce82610823565b6000811180156102f457506001600160a01b038216600090815260076020526040902054155b1561035a57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561038d565b8015801561037f57506001600160a01b03821660009081526007602052604090205415155b1561038d5761038d8261094e565b6001600160a01b0382166000908152600760205260409020546008546103be9183916103b891610a63565b90610aae565b6008556001600160a01b03821660009081526007602052604090208190556103e581610b12565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6000546001600160a01b0316331461041f57600080fd5b61042881610823565b50565b6001600160a01b03811660009081526007602052604081205461045057506000919050565b6001600160a01b03821660009081526007602052604081205461047290610b12565b6001600160a01b0384166000908152600760205260409020600101549091508082116104a2575060009392505050565b6104ac8282610a63565b949350505050565b6000546001600160a01b031633146104cb57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104ed57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561053157600080fd5b505afa158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190610d39565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906105af576105af610eea565b6001600160a01b03928316602091820292909201015260018054835192169183919081106105df576105df610eea565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061062590600090869030904290600401610d74565b6000604051808303818588803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506106e193508692506001600160a01b03909116906370a082319060240160206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db9190610d39565b90610a63565b6009549091506106f19082610aae565b600955600854600c5461071b916107129161070c9085610b2f565b90610bae565b600b5490610aae565b600b55505050565b6000546001600160a01b0316331461073a57600080fd5b60045480610746575050565b6000805a905060005b848310801561075d57508381105b1561081c5783600f5410610771576000600f555b6107a36004600f548154811061078957610789610eea565b6000918252602090912001546001600160a01b0316610bf0565b156107da576107da6004600f54815481106107c0576107c0610eea565b6000918252602090912001546001600160a01b0316610823565b6107ef6107e85a8490610a63565b8490610aae565b92505a600f8054919350600061080483610ea3565b9190505550808061081490610ea3565b91505061074f565b5050505050565b6001600160a01b0381166000908152600760205260409020546108435750565b600061084e8261042b565b9050801561094a57600a546108639082610aae565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190610cfe565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109209082610aae565b6001600160a01b03831660009081526007602052604090206002810191909155546103e590610b12565b5050565b6004805461095e90600190610e8c565b8154811061096e5761096e610eea565b60009182526020808320909101546001600160a01b03848116845260059092526040909220546004805492909316929181106109ac576109ac610eea565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916109f890600190610e8c565b81548110610a0857610a08610eea565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610a3e57610a3e610ed4565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610aa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c35565b90505b92915050565b600080610abb8385610e33565b905083811015610aa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610aa8600c5461070c600b5485610b2f90919063ffffffff16565b600082610b3e57506000610aa8565b6000610b4a8385610e6d565b905082610b578583610e4b565b14610aa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b09565b6000610aa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c6f565b600d546001600160a01b03821660009081526006602052604081205490914291610c1a9190610e33565b108015610aa85750600e54610c2e8361042b565b1192915050565b60008184841115610c595760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e8c565b95945050505050565b60008183610c905760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e4b565b80356001600160a01b0381168114610cb457600080fd5b919050565b600060208284031215610ccb57600080fd5b610aa582610c9d565b60008060408385031215610ce757600080fd5b610cf083610c9d565b946020939093013593505050565b600060208284031215610d1057600080fd5b81518015158114610aa557600080fd5b600060208284031215610d3257600080fd5b5035919050565b600060208284031215610d4b57600080fd5b5051919050565b60008060408385031215610d6557600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610dbe5784516001600160a01b031683529383019391830191600101610d99565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610e0b57858101830151858201604001528201610def565b81811115610e1d576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e4657610e46610ebe565b500190565b600082610e6857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610e8757610e87610ebe565b500290565b600082821015610e9e57610e9e610ebe565b500390565b6000600019821415610eb757610eb7610ebe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220a0a3f69e3e827ea808b372768843989f67ab5da4438a1c28d8f7dea87b31db0764736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102975760003560e01c806395d89b411161015a578063df20fd49116100c1578063f2fde38b1161007a578063f2fde38b14610823578063f429389014610843578063f708a64f14610858578063f84ba65d14610878578063f887ea4014610898578063fe9fbb80146108b857600080fd5b8063df20fd491461076f578063e1dcc71f1461078f578063e96fada2146107ae578063f0b37c04146107ce578063f0fc6bca146107ee578063f1f3bca31461080357600080fd5b8063b6a5d7de11610113578063b6a5d7de1461069e578063bf56b371146106be578063ca33e64c146106d4578063d51ed1c8146106f4578063d806d12f14610714578063dd62ed3e1461072957600080fd5b806395d89b41146105de5780639d1944f514610609578063a4b45c0014610629578063a8aa1b3114610649578063a9059cbb14610669578063b210b06d1461068957600080fd5b80632f54bf6e116101fe578063658d4b7f116101b7578063658d4b7f146105065780636ddd17131461052657806370a08231146105405780637d1db4a51461057657806382334b941461058c578063893d20e8146105ac57600080fd5b80632f54bf6e146104415780632f5620d114610470578063313ce567146104905780633bb8a8d4146104ac578063571ac8b0146104c65780635c85974f146104e657600080fd5b8063201e799111610250578063201e79911461038c5780632375ce40146103ac57806323b872dd146103cc57806328fd3198146103ec5780632b112e491461040c5780632d48e8961461042157600080fd5b80630445b667146102a357806304a66b48146102cc57806306fdde03146102ee578063095ea7b3146103275780631161ae391461035757806318160ddd1461037757600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960275481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e7366004612304565b6108d8565b005b3480156102fa57600080fd5b50604080518082019091526007815266486f74446f676560c81b60208201525b6040516102c391906123b8565b34801561033357600080fd5b50610347610342366004612180565b61093c565b60405190151581526020016102c3565b34801561036357600080fd5b50610347610372366004612288565b6109a9565b34801561038357600080fd5b506006546102b9565b34801561039857600080fd5b506102ec6103a7366004612288565b6109bd565b3480156103b857600080fd5b506102ec6103c73660046122aa565b6109ed565b3480156103d857600080fd5b506103476103e736600461210a565b610a42565b3480156103f857600080fd5b506102b96104073660046120b4565b610b04565b34801561041857600080fd5b506102b9610b82565b34801561042d57600080fd5b506102ec61043c366004612288565b610bd4565b34801561044d57600080fd5b5061034761045c3660046120b4565b6000546001600160a01b0391821691161490565b34801561047c57600080fd5b506102ec61048b3660046121e3565b610c61565b34801561049c57600080fd5b50604051600981526020016102c3565b3480156104b857600080fd5b50601e546103479060ff1681565b3480156104d257600080fd5b506103476104e13660046120b4565b610cc7565b3480156104f257600080fd5b506102ec610501366004612233565b610cd5565b34801561051257600080fd5b506102ec61052136600461214b565b610d1b565b34801561053257600080fd5b506026546103479060ff1681565b34801561054c57600080fd5b506102b961055b3660046120b4565b6001600160a01b031660009081526008602052604090205490565b34801561058257600080fd5b506102b960075481565b34801561059857600080fd5b506102ec6105a7366004612265565b610d6b565b3480156105b857600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b3480156105ea57600080fd5b50604080518082019091526002815261121160f21b602082015261031a565b34801561061557600080fd5b506102ec610624366004612233565b610dec565b34801561063557600080fd5b506102ec6106443660046120d1565b610e25565b34801561065557600080fd5b506018546105c6906001600160a01b031681565b34801561067557600080fd5b50610347610684366004612180565b610e78565b34801561069557600080fd5b506102ec610e85565b3480156106aa57600080fd5b506102ec6106b93660046120b4565b610eb1565b3480156106ca57600080fd5b506102b960195481565b3480156106e057600080fd5b506013546105c6906001600160a01b031681565b34801561070057600080fd5b506102b961070f366004612233565b610f02565b34801561072057600080fd5b506102b9610f46565b34801561073557600080fd5b506102b96107443660046120d1565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561077b57600080fd5b506102ec61078a3660046121c7565b610fb9565b34801561079b57600080fd5b50601e5461034790610100900460ff1681565b3480156107ba57600080fd5b506014546105c6906001600160a01b031681565b3480156107da57600080fd5b506102ec6107e93660046120b4565b610ff5565b3480156107fa57600080fd5b506102ec611040565b34801561080f57600080fd5b506102b961081e3660046121ac565b61109e565b34801561082f57600080fd5b506102ec61083e3660046120b4565b6110fa565b34801561084f57600080fd5b506102ec611190565b34801561086457600080fd5b506102ec61087336600461214b565b6111ef565b34801561088457600080fd5b506102ec61089336600461214b565b6112f7565b3480156108a457600080fd5b506017546105c6906001600160a01b031681565b3480156108c457600080fd5b506103476108d33660046120b4565b611347565b6108e133611347565b6109065760405162461bcd60e51b81526004016108fd9061242d565b60405180910390fd5b600d859055600e849055600f83905560108290556109308261092a85818989611365565b90611365565b60115560125550505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109979086815260200190565b60405180910390a35060015b92915050565b6000826109b583610f02565b119392505050565b6109c633611347565b6109e25760405162461bcd60e51b81526004016108fd9061242d565b601591909155601655565b6109f633611347565b610a125760405162461bcd60e51b81526004016108fd9061242d565b6002610a1e83856124a6565b11158015610a2b57508183115b610a3457600080fd5b601a92909255601b55601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aef576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610aca9184906113c4565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610afa8484846113fe565b90505b9392505050565b6024805460405163051fa63360e31b81526001600160a01b0384811660048301526000939216916328fd3198910160206040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a3919061224c565b6005546001600160a01b0316600090815260086020526040812054610bcf906004546001600160a01b0316600090815260086020526040902054610bc9906006549061174c565b9061174c565b905090565b610bdd33611347565b610bf95760405162461bcd60e51b81526004016108fd9061242d565b602480546040516316a4744b60e11b8152600481018590529182018390526001600160a01b031690632d48e896906044015b600060405180830381600087803b158015610c4557600080fd5b505af1158015610c59573d6000803e3d6000fd5b505050505050565b610c6a33611347565b610c865760405162461bcd60e51b81526004016108fd9061242d565b601e8054601f9590955560006020556021939093556022919091554360235561ffff1990921692151561ff0019169290921761010091151591909102179055565b60006109a38260001961093c565b610cde33611347565b610cfa5760405162461bcd60e51b81526004016108fd9061242d565b6103e8600654610d0a91906124a6565b811015610d1657600080fd5b600755565b610d2433611347565b610d405760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610d7433611347565b610d905760405162461bcd60e51b81526004016108fd9061242d565b600454610da79083906001600160a01b031661178e565b8015610de85742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b610df533611347565b610e115760405162461bcd60e51b81526004016108fd9061242d565b620b71b08110610e2057600080fd5b602555565b610e2e33611347565b610e4a5760405162461bcd60e51b81526004016108fd9061242d565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610afd3384846113fe565b610e8e33611347565b610eaa5760405162461bcd60e51b81526004016108fd9061242d565b6000601c55565b6000546001600160a01b03163314610edb5760405162461bcd60e51b81526004016108fd9061240d565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60006109a3610f0f610b82565b6018546001600160a01b0316600090815260086020526040902054610f4090610f39906002611897565b8590611897565b90611916565b600080610f6442610bc9601d54601c5461136590919063ffffffff16565b90506000610f8b601154610bc9601b54610f40601a5460115461189790919063ffffffff16565b9050610fb2610fa9601d54610f40858561189790919063ffffffff16565b60115490611365565b9250505090565b610fc233611347565b610fde5760405162461bcd60e51b81526004016108fd9061242d565b6026805460ff191692151592909217909155602755565b6000546001600160a01b0316331461101f5760405162461bcd60e51b81526004016108fd9061240d565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60248054604051630afbf02f60e11b81523360048201526001600160a01b03909116916315f7e05e9101600060405180830381600087803b15801561108457600080fd5b505af1158015611098573d6000803e3d6000fd5b50505050565b60004360195460016110b0919061248e565b106110c3576012546109a390600161174c565b8180156110e55750426110e3601d54601c5461136590919063ffffffff16565b115b156110f2576109a3610f46565b505060115490565b6000546001600160a01b031633146111245760405162461bcd60e51b81526004016108fd9061240d565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61119933611347565b6111b55760405162461bcd60e51b81526004016108fd9061242d565b60145460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610de8573d6000803e3d6000fd5b6111f833611347565b6112145760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b038216301480159061123b57506018546001600160a01b03838116911614155b61124457600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556112ac5760248054604051630a5b654b60e11b81526001600160a01b0385811660048301526000938201939093529116906314b6ca9690604401610c2b565b602480546001600160a01b0384811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401610c2b565b61130033611347565b61131c5760405162461bcd60e51b81526004016108fd9061242d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b600080611372838561248e565b905083811015610afd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108fd565b600081848411156113e85760405162461bcd60e51b81526004016108fd91906123b8565b5060006113f584866124e7565b95945050505050565b60285460009060ff161561141e57611417848484611958565b9050610afd565b6114288483611a3e565b611430611aa7565b1561143d5761143d611af6565b611445611ed2565b1561145257611452611f2d565b60195415801561146f57506018546001600160a01b038481169116145b1561149f576001600160a01b03841660009081526008602052604090205461149657600080fd5b61149f43601955565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546114f19184906113c4565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156115265782611531565b611531858585611fbf565b6001600160a01b0385166000908152600860205260409020549091506115579082611365565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff166115fd57602480546001600160a01b0387811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b1580156115ea57600080fd5b505af19250505080156115fb575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661169057602480546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b15801561167d57600080fd5b505af192505050801561168e575060015b505b6024546025546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116c89160040190815260200190565b600060405180830381600087803b1580156116e257600080fd5b505af19250505080156116f3575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161173991815260200190565b60405180910390a3506001949350505050565b6000610afd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113c4565b6028805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906117dc576117dc612514565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061181057611810612514565b6001600160a01b03928316602091820292909201015260175460405163b6f9de9560e01b815291169063b6f9de9590859061185690600090869088904290600401612383565b6000604051808303818588803b15801561186f57600080fd5b505af1158015611883573d6000803e3d6000fd5b50506028805460ff19169055505050505050565b6000826118a6575060006109a3565b60006118b283856124c8565b9050826118bf85836124a6565b14610afd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108fd565b6000610afd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612071565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119a99184906113c4565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119d89083611365565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a2c9086815260200190565b60405180910390a35060019392505050565b60075481111580611a6757506001600160a01b0382166000908152600b602052604090205460ff165b610de85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108fd565b6018546000906001600160a01b03163314801590611ac8575060285460ff16155b8015611ad6575060265460ff165b8015610bcf57505060275430600090815260086020526040902054101590565b6028805460ff19166001179055601554601654600091611b15916109a9565b611b2157600d54611b24565b60005b90506000611b486002610f40601154610f408660275461189790919063ffffffff16565b90506000611b618260275461174c90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611b9b57611b9b612514565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611bcc57611bcc612514565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611c16908690600090879030904290600401612452565b600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b505050506000611c5d824761174c90919063ffffffff16565b90506000611c78611c6f886002611916565b6011549061174c565b90506000611c8d6002610f408481878d611897565b90506000611caa83610f40600f548761189790919063ffffffff16565b90506000611cc784610f406010548861189790919063ffffffff16565b9050602460009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d1957600080fd5b505af193505050508015611d2b575060015b506014546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611d7e576040519150601f19603f3d011682016040523d82523d6000602084013e611d83565b606091505b5050905080611dd45760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108fd565b8915611ebb5760175460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b158015611e4557600080fd5b505af1158015611e59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e7e91906122d6565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506028805460ff19169055505050505050505050565b6018546000906001600160a01b03163314801590611ef3575060285460ff16155b8015611f015750601e5460ff165b8015611f1c575043602254602354611f19919061248e565b11155b8015610bcf57505060215447101590565b602154600454611f4691906001600160a01b031661178e565b601e54610100900460ff1615611f915742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b43602355602154602054611fa491611365565b6020819055601f541015611fbd57601e805460ff191690555b565b6012546018546000918291611ff19190610f4090611fea906001600160a01b0389811691161461109e565b8690611897565b3060009081526008602052604090205490915061200e9082611365565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061205f9085815260200190565b60405180910390a36113f5838261174c565b600081836120925760405162461bcd60e51b81526004016108fd91906123b8565b5060006113f584866124a6565b803580151581146120af57600080fd5b919050565b6000602082840312156120c657600080fd5b8135610afd8161252a565b600080604083850312156120e457600080fd5b82356120ef8161252a565b915060208301356120ff8161252a565b809150509250929050565b60008060006060848603121561211f57600080fd5b833561212a8161252a565b9250602084013561213a8161252a565b929592945050506040919091013590565b6000806040838503121561215e57600080fd5b82356121698161252a565b91506121776020840161209f565b90509250929050565b6000806040838503121561219357600080fd5b823561219e8161252a565b946020939093013593505050565b6000602082840312156121be57600080fd5b610afd8261209f565b600080604083850312156121da57600080fd5b61219e8361209f565b600080600080600060a086880312156121fb57600080fd5b6122048661209f565b94506020860135935060408601359250606086013591506122276080870161209f565b90509295509295909350565b60006020828403121561224557600080fd5b5035919050565b60006020828403121561225e57600080fd5b5051919050565b6000806040838503121561227857600080fd5b823591506121776020840161209f565b6000806040838503121561229b57600080fd5b50508035926020909101359150565b6000806000606084860312156122bf57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156122eb57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561231c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526020808501945080840160005b838110156123785781516001600160a01b031687529582019590820190600101612353565b509495945050505050565b84815260806020820152600061239c608083018661233f565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156123e5578581018301518582016040015282016123c9565b818111156123f7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a06040820152600061247160a083018661233f565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156124a1576124a16124fe565b500190565b6000826124c357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156124e2576124e26124fe565b500290565b6000828210156124f9576124f96124fe565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461253f57600080fd5b5056fea2646970667358221220c2f1ac92ee8eb4205f2462871eee1c27cfefd3c783a3e2b5413df8a3323aeee364736f6c63430008070033
Deployed Bytecode Sourcemap
11639:15044:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13497:49;;;;;;;;;;;;;;;;;;;11149:25:1;;;11137:2;11122:18;13497:49:0;;;;;;;;24243:449;;;;;;;;;;-1:-1:-1;24243:449:0;;;;;:::i;:::-;;:::i;:::-;;14801:80;;;;;;;;;;-1:-1:-1;14873:5:0;;;;;;;;;;;;-1:-1:-1;;;14873:5:0;;;;14801:80;;;;;;;:::i;15223:216::-;;;;;;;;;;-1:-1:-1;15223:216:0;;;;;:::i;:::-;;:::i;:::-;;;7496:14:1;;7489:22;7471:41;;7459:2;7444:18;15223:216:0;7331:187:1;26408:150:0;;;;;;;;;;-1:-1:-1;26408:150:0;;;;;:::i;:::-;;:::i;14531:88::-;;;;;;;;;;-1:-1:-1;14604:12:0;;14531:88;;25100:183;;;;;;;;;;-1:-1:-1;25100:183:0;;;;;:::i;:::-;;:::i;22944:342::-;;;;;;;;;;-1:-1:-1;22944:342:0;;;;;:::i;:::-;;:::i;15741:370::-;;;;;;;;;;-1:-1:-1;15741:370:0;;;;;:::i;:::-;;:::i;25780:146::-;;;;;;;;;;-1:-1:-1;25780:146:0;;;;;:::i;:::-;;:::i;26083:142::-;;;;;;;;;;;;;:::i;25483:183::-;;;;;;;;;;-1:-1:-1;25483:183:0;;;;;:::i;:::-;;:::i;3495:103::-;;;;;;;;;;-1:-1:-1;3495:103:0;;;;;:::i;:::-;3550:4;3585:5;-1:-1:-1;;;;;3574:16:0;;;3585:5;;3574:16;;3495:103;22491:445;;;;;;;;;;-1:-1:-1;22491:445:0;;;;;:::i;:::-;;:::i;14625:80::-;;;;;;;;;;-1:-1:-1;14625:80:0;;12075:1;12167:36:1;;12155:2;12140:18;14625:80:0;12025:184:1;13118:38:0;;;;;;;;;;-1:-1:-1;13118:38:0;;;;;;;;15447:122;;;;;;;;;;-1:-1:-1;15447:122:0;;;;;:::i;:::-;;:::i;23471:145::-;;;;;;;;;;-1:-1:-1;23471:145:0;;;;;:::i;:::-;;:::i;23979:120::-;;;;;;;;;;-1:-1:-1;23979:120:0;;;;;:::i;:::-;;:::i;13460:30::-;;;;;;;;;;-1:-1:-1;13460:30:0;;;;;;;;14971:105;;;;;;;;;;-1:-1:-1;14971:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15055:18:0;15037:7;15055:18;;;:9;:18;;;;;;;14971:105;12148:46;;;;;;;;;;;;;;;;21192:318;;;;;;;;;;-1:-1:-1;21192:318:0;;;;;:::i;:::-;;:::i;14887:78::-;;;;;;;;;;-1:-1:-1;14939:7:0;14957:5;-1:-1:-1;;;;;14957:5:0;14887:78;;;-1:-1:-1;;;;;5893:32:1;;;5875:51;;5863:2;5848:18;14887:78:0;5729:203:1;14711:84:0;;;;;;;;;;-1:-1:-1;14785:7:0;;;;;;;;;;;;-1:-1:-1;;;14785:7:0;;;;14711:84;;25935:136;;;;;;;;;;-1:-1:-1;25935:136:0;;;;;:::i;:::-;;:::i;24700:228::-;;;;;;;;;;-1:-1:-1;24700:228:0;;;;;:::i;:::-;;:::i;12864:19::-;;;;;;;;;;-1:-1:-1;12864:19:0;;;;-1:-1:-1;;;;;12864:19:0;;;15577:156;;;;;;;;;;-1:-1:-1;15577:156:0;;;;;:::i;:::-;;:::i;21522:105::-;;;;;;;;;;;;;:::i;3168:94::-;;;;;;;;;;-1:-1:-1;3168:94:0;;;;;:::i;:::-;;:::i;12892:25::-;;;;;;;;;;;;;;;;12662:36;;;;;;;;;;-1:-1:-1;12662:36:0;;;;-1:-1:-1;;;;;12662:36:0;;;26233:167;;;;;;;;;;-1:-1:-1;26233:167:0;;;;;:::i;:::-;;:::i;18139:391::-;;;;;;;;;;;;;:::i;15082:133::-;;;;;;;;;;-1:-1:-1;15082:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;15184:19:0;;;15166:7;15184:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15082:133;24936:156;;;;;;;;;;-1:-1:-1;24936:156:0;;;;;:::i;:::-;;:::i;13163:40::-;;;;;;;;;;-1:-1:-1;13163:40:0;;;;;;;;;;;12705:35;;;;;;;;;;-1:-1:-1;12705:35:0;;;;-1:-1:-1;;;;;12705:35:0;;;3338:97;;;;;;;;;;-1:-1:-1;3338:97:0;;;;;:::i;:::-;;:::i;25678:90::-;;;;;;;;;;;;;:::i;17825:306::-;;;;;;;;;;-1:-1:-1;17825:306:0;;;;;:::i;:::-;;:::i;3895:173::-;;;;;;;;;;-1:-1:-1;3895:173:0;;;;;:::i;:::-;;:::i;25291:180::-;;;;;;;;;;;;;:::i;23624:347::-;;;;;;;;;;-1:-1:-1;23624:347:0;;;;;:::i;:::-;;:::i;24107:128::-;;;;;;;;;;-1:-1:-1;24107:128:0;;;;;:::i;:::-;;:::i;12833:24::-;;;;;;;;;;-1:-1:-1;12833:24:0;;;;-1:-1:-1;;;;;12833:24:0;;;3669:107;;;;;;;;;;-1:-1:-1;3669:107:0;;;;;:::i;:::-;;:::i;24243:449::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;;;;;;;;;24407:12:::1;:28:::0;;;24446:10:::1;:24:::0;;;24481:13:::1;:30:::0;;;24522:12:::1;:28:::0;;;24572:69:::1;24537:13:::0;24572:50:::1;24497:14:::0;24572:50;24422:13;24459:11;24572:17:::1;:30::i;:::-;:34:::0;::::1;:50::i;:69::-;24561:8;:80:::0;24652:14:::1;:32:::0;-1:-1:-1;;;;24243:449:0:o;15223:216::-;15327:10;15298:4;15315:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15315:32:0;;;;;;;;;;:41;;;15372:37;15298:4;;15315:32;;15372:37;;;;15350:6;11149:25:1;;11137:2;11122:18;;11003:177;15372:37:0;;;;;;;;-1:-1:-1;15427:4:0;15223:216;;;;;:::o;26408:150::-;26488:4;26544:6;26512:29;26532:8;26512:19;:29::i;:::-;:38;;26408:150;-1:-1:-1;;;26408:150:0:o;25100:183::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;25198:15:::1;:25:::0;;;;25234:26:::1;:41:::0;25100:183::o;22944:342::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;23104:1:::1;23077:23;23089:11:::0;23077:9;:23:::1;:::i;:::-;:28;;:55;;;;;23121:11;23109:9;:23;23077:55;23069:64;;;::::0;::::1;;23144:26;:38:::0;;;;23193:28:::1;:42:::0;23246:23:::1;:32:::0;22944:342::o;15741:370::-;-1:-1:-1;;;;;15861:19:0;;15841:4;15861:19;;;:11;:19;;;;;;;;15881:10;15861:31;;;;;;;;-1:-1:-1;;15861:52:0;15858:186;;15963:69;;;;;;;;;;;-1:-1:-1;;;15963:69:0;;;;;;;;-1:-1:-1;;;;;15963:19:0;;-1:-1:-1;15963:19:0;;;:11;:19;;;;;15983:10;15963:31;;;;;;;;;;:69;;15999:6;;15963:35;:69::i;:::-;-1:-1:-1;;;;;15929:19:0;;;;;;:11;:19;;;;;;;;15949:10;15929:31;;;;;;;:103;15858:186;16063:40;16077:6;16085:9;16096:6;16063:13;:40::i;:::-;16056:47;;15741:370;;;;;;:::o;25780:146::-;25876:11;;;:42;;-1:-1:-1;;;25876:42:0;;-1:-1:-1;;;;;5893:32:1;;;25876:42:0;;;5875:51:1;25849:7:0;;25876:11;;;:29;;5848:18:1;25876:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;26083:142::-;26211:4;;-1:-1:-1;;;;;26211:4:0;26136:7;15055:18;;;:9;:18;;;;;;26163:54;;26190:4;;-1:-1:-1;;;;;26190:4:0;15037:7;15055:18;;;:9;:18;;;;;;26163:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;26156:61;;26083:142;:::o;25483:183::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;25593:11:::1;::::0;;:65:::1;::::0;-1:-1:-1;;;25593:65:0;;::::1;::::0;::::1;11946:25:1::0;;;11987:18;;;11980:34;;;-1:-1:-1;;;;;25593:11:0::1;::::0;:35:::1;::::0;11919:18:1;;25593:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25483:183:::0;;:::o;22491:445::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;22646:18:::1;:29:::0;;22686:14:::1;:21:::0;;;;-1:-1:-1;22718:22:0::1;:26:::0;22755:17:::1;:27:::0;;;;22793:22:::1;:32:::0;;;;22859:12:::1;22836:20;:35:::0;-1:-1:-1;;22882:46:0;;;22646:29;::::1;;-1:-1:-1::0;;22882:46:0;;;;;22646:29:::1;22882:46:::0;::::1;;::::0;;;::::1;;::::0;;22491:445::o;15447:122::-;15502:4;15526:35;15534:7;-1:-1:-1;;15526:7:0;:35::i;23471:145::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;23571:4:::1;23556:12;;:19;;;;:::i;:::-;23546:6;:29;;23538:38;;;::::0;::::1;;23587:12;:21:::0;23471:145::o;23979:120::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24063:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;24063:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23979:120::o;21192:318::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;21318:4:::1;::::0;21300:23:::1;::::0;21310:6;;-1:-1:-1;;;;;21318:4:0::1;21300:9;:23::i;:::-;21337:24;21334:169;;;21408:15;21377:28;:46:::0;21467:23:::1;::::0;21443:48:::1;::::0;11149:25:1;;;21443:48:0::1;::::0;11137:2:1;11122:18;21443:48:0::1;;;;;;;21334:169;21192:318:::0;;:::o;25935:136::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;26025:6:::1;26019:3;:12;26011:21;;;::::0;::::1;;26043:14;:20:::0;25935:136::o;24700:228::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;24819:21:::1;:46:::0;;-1:-1:-1;;;;;24819:46:0;;::::1;-1:-1:-1::0;;;;;;24819:46:0;;::::1;;::::0;;;24876:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;24700:228::o;15577:156::-;15657:4;15681:44;15695:10;15707:9;15718:6;15681:13;:44::i;21522:105::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;21618:1:::1;21587:28;:32:::0;21522:105::o;3168:94::-;3550:4;3585:5;-1:-1:-1;;;;;3585:5:0;2892:10;3574:16;2876:38;;;;-1:-1:-1;;;2876:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:19:0::1;;::::0;;;3250:4:::1;3228:19;::::0;;;;;;;:26;;-1:-1:-1;;3228:26:0::1;::::0;;::::1;::::0;;3168:94::o;26233:167::-;26301:7;26328:64;26369:22;:20;:22::i;:::-;26351:4;;-1:-1:-1;;;;;26351:4:0;15037:7;15055:18;;;:9;:18;;;;;;26328:36;;26341:22;;26361:1;26341:19;:22::i;:::-;26328:8;;:12;:36::i;:::-;:40;;:64::i;18139:391::-;18188:7;18208:21;18232:78;18294:15;18232:57;18265:23;;18232:28;;:32;;:57;;;;:::i;:78::-;18208:102;;18321:19;18343:88;18422:8;;18343:74;18388:28;;18343:40;18356:26;;18343:8;;:12;;:40;;;;:::i;:88::-;18321:110;;18449:73;18462:59;18497:23;;18462:30;18478:13;18462:11;:15;;:30;;;;:::i;:59::-;18449:8;;;:12;:73::i;:::-;18442:80;;;;18139:391;:::o;24936:156::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;25028:11:::1;:22:::0;;-1:-1:-1;;25028:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25061:13:::1;:23:::0;24936:156::o;3338:97::-;3550:4;3585:5;-1:-1:-1;;;;;3585:5:0;2892:10;3574:16;2876:38;;;;-1:-1:-1;;;2876:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3400:19:0::1;3422:5;3400:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3400:27:0::1;::::0;;3338:97::o;25678:90::-;25723:11;;;:37;;-1:-1:-1;;;25723:37:0;;25749:10;25723:37;;;5875:51:1;-1:-1:-1;;;;;25723:11:0;;;;:25;;5848:18:1;25723:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25678:90::o;17825:306::-;17881:7;17922:12;17904:10;;17917:1;17904:14;;;;:::i;:::-;:30;17901:67;;17944:14;;:21;;17963:1;17944:18;:21::i;17901:67::-;17981:7;:86;;;;;18052:15;17992:57;18025:23;;17992:28;;:32;;:57;;;;:::i;:::-;:75;17981:86;17978:120;;;18077:18;:16;:18::i;17978:120::-;-1:-1:-1;;18115:8:0;;;17825:306::o;3895:173::-;3550:4;3585:5;-1:-1:-1;;;;;3585:5:0;2892:10;3574:16;2876:38;;;;-1:-1:-1;;;2876:38:0;;;;;;;:::i;:::-;3971:5:::1;:11:::0;;-1:-1:-1;;;;;;3971:11:0::1;-1:-1:-1::0;;;;;3971:11:0;::::1;::::0;;::::1;::::0;;3993:19;;;-1:-1:-1;3993:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3993:26:0::1;::::0;;::::1;::::0;;;4035:25;;5875:51:1;;;4035:25:0::1;::::0;5848:18:1;4035:25:0::1;;;;;;;3895:173:::0;:::o;25291:180::-;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;25413:20:::1;::::0;25405:58:::1;::::0;25373:21:::1;::::0;-1:-1:-1;;;;;25413:20:0::1;::::0;25405:58;::::1;;;::::0;25373:21;;25344:26:::1;25405:58:::0;25344:26;25405:58;25373:21;25413:20;25405:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;23624:347:::0;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23721:23:0;::::1;23739:4;23721:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;23758:4:0::1;::::0;-1:-1:-1;;;;;23748:14:0;;::::1;23758:4:::0;::::1;23748:14;;23721:41;23713:50;;;::::0;::::1;;-1:-1:-1::0;;;;;23774:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23774:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23818:146:::1;;23843:11;::::0;;:31:::1;::::0;-1:-1:-1;;;23843:31:0;;-1:-1:-1;;;;;6353:32:1;;;23843:31:0::1;::::0;::::1;6335:51:1::0;23843:11:0::1;6402:18:1::0;;;6395:34;;;;23843:11:0;::::1;::::0;:20:::1;::::0;6308:18:1;;23843:31:0::1;6153:282:1::0;23818:146:0::1;23905:11;::::0;;-1:-1:-1;;;;;23934:17:0;;::::1;23905:11;23934:17:::0;;;:9:::1;:17;::::0;;;;;;;23905:47;;-1:-1:-1;;;23905:47:0;;::::1;::::0;::::1;6335:51:1::0;;;;6402:18;;;6395:34;;;;23905:11:0::1;::::0;:20:::1;::::0;6308:18:1;;23905:47:0::1;6153:282:1::0;24107:128:0;3053:24;3066:10;3053:12;:24::i;:::-;3045:48;;;;-1:-1:-1;;;3045:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24195:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;24195:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24107:128::o;3669:107::-;-1:-1:-1;;;;;3749:19:0;3725:4;3749:19;;;:14;:19;;;;;;;;;3669:107::o;225:181::-;283:7;;315:5;319:1;315;:5;:::i;:::-;303:17;;344:1;339;:6;;331:46;;;;-1:-1:-1;;;331:46:0;;9414:2:1;331:46:0;;;9396:21:1;9453:2;9433:18;;;9426:30;9492:29;9472:18;;;9465:57;9539:18;;331:46:0;9212:351:1;554:192:0;640:7;676:12;668:6;;;;660:29;;;;-1:-1:-1;;;660:29:0;;;;;;;;:::i;:::-;-1:-1:-1;700:9:0;712:5;716:1;712;:5;:::i;:::-;700:17;554:192;-1:-1:-1;;;;;554:192:0:o;16119:1060::-;16231:6;;16211:4;;16231:6;;16228:63;;;16247:41;16262:6;16270:9;16281:6;16247:14;:41::i;:::-;16240:48;;;;16228:63;16311:28;16324:6;16332;16311:12;:28::i;:::-;16355:16;:14;:16::i;:::-;16352:35;;;16374:10;:8;:10::i;:::-;16400:19;:17;:19::i;:::-;16397:48;;;16422:20;:18;:20::i;:::-;23361:10;;:15;;;16460:32;;-1:-1:-1;16488:4:0;;-1:-1:-1;;;;;16475:17:0;;;16488:4;;16475:17;16460:32;16457:81;;;-1:-1:-1;;;;;16503:17:0;;16523:1;16503:17;;;:9;:17;;;;;;16495:30;;;;;;16527:8;23443:12;23430:10;:25;23392:71;16527:8;16570:53;;;;;;;;;;;-1:-1:-1;;;16570:53:0;;;;;;;;-1:-1:-1;;;;;16570:17:0;;-1:-1:-1;16570:17:0;;;:9;:17;;;;;;;;:53;;16592:6;;16570:21;:53::i;:::-;-1:-1:-1;;;;;16550:17:0;;;;;;:9;:17;;;;;;;;:73;;;;17790:11;:19;;;;;;;;17789:20;16661:67;;16722:6;16661:67;;;16685:34;16693:6;16701:9;16712:6;16685:7;:34::i;:::-;-1:-1:-1;;;;;16762:20:0;;;;;;:9;:20;;;;;;16636:92;;-1:-1:-1;16762:40:0;;16636:92;16762:24;:40::i;:::-;-1:-1:-1;;;;;16739:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;16819:24;;;;;:16;:24;;;;;;;16815:96;;16850:11;;;-1:-1:-1;;;;;16879:17:0;;;16850:11;16879:17;;;:9;:17;;;;;;;;16850:47;;-1:-1:-1;;;16850:47:0;;;;;6335:51:1;;;;6402:18;;;6395:34;;;;16850:11:0;;:20;;6308:18:1;;16850:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16846:63;;-1:-1:-1;;;;;16925:27:0;;;;;;:16;:27;;;;;;;;16921:105;;16959:11;;;-1:-1:-1;;;;;16991:20:0;;;16959:11;16991:20;;;:9;:20;;;;;;;;16959:53;;-1:-1:-1;;;16959:53:0;;;;;6335:51:1;;;;6402:18;;;6395:34;;;;16959:11:0;;:20;;6308:18:1;;16959:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16955:69;;17042:11;;17062:14;;17042:35;;-1:-1:-1;;;;;;17042:35:0;;-1:-1:-1;;;;;17042:11:0;;;;:19;;:35;;;;11149:25:1;;;11137:2;11122:18;;11003:177;17042:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17038:51;17123:9;-1:-1:-1;;;;;17106:43:0;17115:6;-1:-1:-1;;;;;17106:43:0;;17134:14;17106:43;;;;11149:25:1;;11137:2;11122:18;;11003:177;17106:43:0;;;;;;;;-1:-1:-1;17167:4:0;;16119:1060;-1:-1:-1;;;;16119:1060:0:o;412:136::-;470:7;497:43;501:1;504;497:43;;;;;;;;;;;;;;;;;:3;:43::i;22122:361::-;13599:6;:13;;-1:-1:-1;;13599:13:0;13608:4;13599:13;;;22222:16:::1;::::0;;22236:1:::1;22222:16:::0;;;;;::::1;::::0;;-1:-1:-1;;22222:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;22259:4:0::1;::::0;22249:7;;;;-1:-1:-1;;;;;;22259:4:0::1;::::0;22249:7;;-1:-1:-1;22259:4:0::1;::::0;22249:7:::1;;;;:::i;:::-;;;;;;:14;-1:-1:-1::0;;;;;22249:14:0::1;;;-1:-1:-1::0;;;;;22249:14:0::1;;;::::0;::::1;22292:4;22274;22279:1;22274:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22274:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;22310:6:::1;::::0;:165:::1;::::0;-1:-1:-1;;;22310:165:0;;:6;::::1;::::0;:57:::1;::::0;22375:6;;22310:165:::1;::::0;:6:::1;::::0;22413:4;;22432:2;;22449:15:::1;::::0;22310:165:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13617:6:0;:14;;-1:-1:-1;;13617:14:0;;;-1:-1:-1;;;;;;22122:361:0:o;752:250::-;810:7;834:6;830:47;;-1:-1:-1;864:1:0;857:8;;830:47;889:9;901:5;905:1;901;:5;:::i;:::-;889:17;-1:-1:-1;934:1:0;925:5;929:1;889:17;925:5;:::i;:::-;:10;917:56;;;;-1:-1:-1;;;917:56:0;;10129:2:1;917:56:0;;;10111:21:1;10168:2;10148:18;;;10141:30;10207:34;10187:18;;;10180:62;-1:-1:-1;;;10258:18:1;;;10251:31;10299:19;;917:56:0;9927:397:1;1008:132:0;1066:7;1093:39;1097:1;1100;1093:39;;;;;;;;;;;;;;;;;:3;:39::i;17191:330::-;17321:53;;;;;;;;;;;-1:-1:-1;;;17321:53:0;;;;;;;;-1:-1:-1;;;;;17321:17:0;;17284:4;17321:17;;;:9;:17;;;;;;;:53;;17343:6;;17321:21;:53::i;:::-;-1:-1:-1;;;;;17301:17:0;;;;;;;:9;:17;;;;;;:73;;;;17408:20;;;;;;;:32;;17433:6;17408:24;:32::i;:::-;-1:-1:-1;;;;;17385:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17456:35;;;;;;;;;;17484:6;11149:25:1;;11137:2;11122:18;;11003:177;17456:35:0;;;;;;;;-1:-1:-1;17509:4:0;17191:330;;;;;:::o;17529:166::-;17626:12;;17616:6;:22;;:49;;;-1:-1:-1;;;;;;17642:23:0;;;;;;:15;:23;;;;;;;;17616:49;17608:79;;;;-1:-1:-1;;;17608:79:0;;9068:2:1;17608:79:0;;;9050:21:1;9107:2;9087:18;;;9080:30;-1:-1:-1;;;9126:18:1;;;9119:47;9183:18;;17608:79:0;8866:341:1;18918:197:0;19005:4;;18967;;-1:-1:-1;;;;;19005:4:0;18991:10;:18;;;;:38;;-1:-1:-1;19023:6:0;;;;19022:7;18991:38;:62;;;;-1:-1:-1;19042:11:0;;;;18991:62;:116;;;;-1:-1:-1;;19094:13:0;;19084:4;19066:24;;;;:9;:24;;;;;;:41;;;18918:197::o;19123:1755::-;13599:6;:13;;-1:-1:-1;;13599:13:0;13608:4;13599:13;;;19218:15:::1;::::0;19235:26:::1;::::0;13599:6;;19202:60:::1;::::0;:15:::1;:60::i;:::-;:79;;19269:12;;19202:79;;;19265:1;19202:79;19172:109;;19292:23;19318:59;19375:1;19318:52;19361:8;;19318:38;19336:19;19318:13;;:17;;:38;;;;:::i;:59::-;19292:85;;19388:20;19411:34;19429:15;19411:13;;:17;;:34;;;;:::i;:::-;19482:16;::::0;;19496:1:::1;19482:16:::0;;;;;::::1;::::0;;19388:57;;-1:-1:-1;19458:21:0::1;::::0;19482:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19482:16:0::1;19458:40;;19527:4;19509;19514:1;19509:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19509:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19553:4:::1;::::0;19543:7;;19553:4;::::1;::::0;19543;;19553;;19543:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;19543:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;19628:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;19628:188:0;;19594:21:::1;::::0;19628:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;19700:12;;19570:21:::1;::::0;19743:4;;19770::::1;::::0;19790:15:::1;::::0;19628:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19827:17;19847:40;19873:13;19847:21;:25;;:40;;;;:::i;:::-;19827:60:::0;-1:-1:-1;19898:19:0::1;19920:40;19933:26;:19:::0;19957:1:::1;19933:23;:26::i;:::-;19920:8;::::0;;:12:::1;:40::i;:::-;19898:62:::0;-1:-1:-1;19971:26:0::1;20000:58;20056:1;20000:51;19898:62:::0;20000:51;:9;20014:19;20000:13:::1;:34::i;:58::-;19971:87;;20069:27;20099:45;20132:11;20099:28;20113:13;;20099:9;:13;;:28;;;;:::i;:45::-;20069:75;;20155:26;20184:44;20216:11;20184:27;20198:12;;20184:9;:13;;:27;;;;:::i;:44::-;20155:73;;20245:11;;;;;;;;;-1:-1:-1::0;;;;;20245:11:0::1;-1:-1:-1::0;;;;;20245:19:0::1;;20272;20245:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;20366:20:0::1;::::0;20358:77:::1;::::0;20317:12:::1;::::0;-1:-1:-1;;;;;20366:20:0::1;::::0;20425:5:::1;::::0;20400:18;;20317:12;20358:77;20317:12;20358:77;20400:18;20366:20;20425:5;20358:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20316:119;;;20454:7;20446:50;;;::::0;-1:-1:-1;;;20446:50:0;;9770:2:1;20446:50:0::1;::::0;::::1;9752:21:1::0;9809:2;9789:18;;;9782:30;9848:32;9828:18;;;9821:60;9898:18;;20446:50:0::1;9568:354:1::0;20446:50:0::1;20512:19:::0;;20509:362:::1;;20547:6;::::0;20721:21:::1;::::0;20547:244:::1;::::0;-1:-1:-1;;;20547:244:0;;20623:4:::1;20547:244;::::0;::::1;7060:34:1::0;7110:18;;;7103:34;;;20547:6:0::1;7153:18:1::0;;;7146:34;;;7196:18;;;7189:34;-1:-1:-1;;;;;20721:21:0;;::::1;7239:19:1::0;;;7232:44;20761:15:0::1;7292:19:1::0;;;7285:35;20547:6:0;::::1;::::0;:22:::1;::::0;20577:18;;6994:19:1;;20547:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;20811:48:0::1;::::0;;11946:25:1;;;12002:2;11987:18;;11980:34;;;20811:48:0::1;::::0;-1:-1:-1;11919:18:1;20811:48:0::1;;;;;;;20509:362;-1:-1:-1::0;;13617:6:0;:14;;-1:-1:-1;;13617:14:0;;;-1:-1:-1;;;;;;;;;19123:1755:0:o;20886:298::-;20976:4;;20938;;-1:-1:-1;;;;;20976:4:0;20962:10;:18;;;;:42;;-1:-1:-1;20998:6:0;;;;20997:7;20962:42;:77;;;;-1:-1:-1;21021:18:0;;;;20962:77;:155;;;;;21105:12;21079:22;;21056:20;;:45;;;;:::i;:::-;:61;;20962:155;:214;;;;-1:-1:-1;;21159:17:0;;21134:21;:42;;;20886:298::o;21635:479::-;21695:17;;21714:4;;21685:34;;21695:17;-1:-1:-1;;;;;21714:4:0;21685:9;:34::i;:::-;21733:21;;;;;;;21730:166;;;21801:15;21770:28;:46;21860:23;;21836:48;;11149:25:1;;;21836:48:0;;11137:2:1;11122:18;21836:48:0;;;;;;;21730:166;21929:12;21906:20;:35;22004:17;;21977:22;;:45;;:26;:45::i;:::-;21952:22;:70;;;22061:14;;-1:-1:-1;22033:74:0;;;22078:18;:26;;-1:-1:-1;;22078:26:0;;;22033:74;21635:479::o;18538:372::-;18709:14;;18698:4;;18623:7;;;;18663:61;;18709:14;18663:41;;18674:29;;-1:-1:-1;;;;;18686:16:0;;;18698:4;;18686:16;18674:11;:29::i;:::-;18663:6;;:10;:41::i;:61::-;18782:4;18764:24;;;;:9;:24;;;;;;18643:81;;-1:-1:-1;18764:39:0;;18643:81;18764:28;:39::i;:::-;18755:4;18737:24;;;;:9;:24;;;;;;;:66;;;;18819:42;;-1:-1:-1;;;;;18819:42:0;;;;;;;18851:9;11149:25:1;;11137:2;11122:18;;11003:177;18819:42:0;;;;;;;;18881:21;:6;18892:9;18881:10;:21::i;1146:345::-;1232:7;1334:12;1327:5;1319:28;;;;-1:-1:-1;;;1319:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1358:9:0;1370:5;1374:1;1370;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:52;;;836:1;833;826:12;788:52;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;691:388;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1084:456;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1084:456::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1545:315;;;;;:::o;1865:::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:52;;;2010:1;2007;2000:12;1962:52;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1865:315:1:o;2185:180::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:52;;;2310:1;2307;2300:12;2262:52;2333:26;2349:9;2333:26;:::i;2370:248::-;2435:6;2443;2496:2;2484:9;2475:7;2471:23;2467:32;2464:52;;;2512:1;2509;2502:12;2464:52;2535:26;2551:9;2535:26;:::i;2623:454::-;2712:6;2720;2728;2736;2744;2797:3;2785:9;2776:7;2772:23;2768:33;2765:53;;;2814:1;2811;2804:12;2765:53;2837:26;2853:9;2837:26;:::i;:::-;2827:36;;2910:2;2899:9;2895:18;2882:32;2872:42;;2961:2;2950:9;2946:18;2933:32;2923:42;;3012:2;3001:9;2997:18;2984:32;2974:42;;3035:36;3066:3;3055:9;3051:19;3035:36;:::i;:::-;3025:46;;2623:454;;;;;;;;:::o;3082:180::-;3141:6;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;-1:-1:-1;3233:23:1;;3082:180;-1:-1:-1;3082:180:1:o;3267:184::-;3337:6;3390:2;3378:9;3369:7;3365:23;3361:32;3358:52;;;3406:1;3403;3396:12;3358:52;-1:-1:-1;3429:16:1;;3267:184;-1:-1:-1;3267:184:1:o;3456:248::-;3521:6;3529;3582:2;3570:9;3561:7;3557:23;3553:32;3550:52;;;3598:1;3595;3588:12;3550:52;3634:9;3621:23;3611:33;;3663:35;3694:2;3683:9;3679:18;3663:35;:::i;3709:248::-;3777:6;3785;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;;3877:23:1;;;3947:2;3932:18;;;3919:32;;-1:-1:-1;3709:248:1:o;3962:316::-;4039:6;4047;4055;4108:2;4096:9;4087:7;4083:23;4079:32;4076:52;;;4124:1;4121;4114:12;4076:52;-1:-1:-1;;4147:23:1;;;4217:2;4202:18;;4189:32;;-1:-1:-1;4268:2:1;4253:18;;;4240:32;;3962:316;-1:-1:-1;3962:316:1:o;4283:306::-;4371:6;4379;4387;4440:2;4428:9;4419:7;4415:23;4411:32;4408:52;;;4456:1;4453;4446:12;4408:52;4485:9;4479:16;4469:26;;4535:2;4524:9;4520:18;4514:25;4504:35;;4579:2;4568:9;4564:18;4558:25;4548:35;;4283:306;;;;;:::o;4594:454::-;4689:6;4697;4705;4713;4721;4774:3;4762:9;4753:7;4749:23;4745:33;4742:53;;;4791:1;4788;4781:12;4742:53;-1:-1:-1;;4814:23:1;;;4884:2;4869:18;;4856:32;;-1:-1:-1;4935:2:1;4920:18;;4907:32;;4986:2;4971:18;;4958:32;;-1:-1:-1;5037:3:1;5022:19;5009:33;;-1:-1:-1;4594:454:1;-1:-1:-1;4594:454:1:o;5053:461::-;5106:3;5144:5;5138:12;5171:6;5166:3;5159:19;5197:4;5226:2;5221:3;5217:12;5210:19;;5263:2;5256:5;5252:14;5284:1;5294:195;5308:6;5305:1;5302:13;5294:195;;;5373:13;;-1:-1:-1;;;;;5369:39:1;5357:52;;5429:12;;;;5464:15;;;;5405:1;5323:9;5294:195;;;-1:-1:-1;5505:3:1;;5053:461;-1:-1:-1;;;;;5053:461:1:o;7749:510::-;8020:6;8009:9;8002:25;8063:3;8058:2;8047:9;8043:18;8036:31;7983:4;8084:57;8136:3;8125:9;8121:19;8113:6;8084:57;:::i;:::-;-1:-1:-1;;;;;8177:32:1;;;;8172:2;8157:18;;8150:60;-1:-1:-1;8241:2:1;8226:18;8219:34;8076:65;7749:510;-1:-1:-1;;7749:510:1:o;8264:597::-;8376:4;8405:2;8434;8423:9;8416:21;8466:6;8460:13;8509:6;8504:2;8493:9;8489:18;8482:34;8534:1;8544:140;8558:6;8555:1;8552:13;8544:140;;;8653:14;;;8649:23;;8643:30;8619:17;;;8638:2;8615:26;8608:66;8573:10;;8544:140;;;8702:6;8699:1;8696:13;8693:91;;;8772:1;8767:2;8758:6;8747:9;8743:22;8739:31;8732:42;8693:91;-1:-1:-1;8845:2:1;8824:15;-1:-1:-1;;8820:29:1;8805:45;;;;8852:2;8801:54;;8264:597;-1:-1:-1;;;8264:597:1:o;10329:329::-;10531:2;10513:21;;;10570:1;10550:18;;;10543:29;-1:-1:-1;;;10603:2:1;10588:18;;10581:36;10649:2;10634:18;;10329:329::o;10663:335::-;10865:2;10847:21;;;10904:2;10884:18;;;10877:30;-1:-1:-1;;;10938:2:1;10923:18;;10916:41;10989:2;10974:18;;10663:335::o;11185:582::-;11484:6;11473:9;11466:25;11527:6;11522:2;11511:9;11507:18;11500:34;11570:3;11565:2;11554:9;11550:18;11543:31;11447:4;11591:57;11643:3;11632:9;11628:19;11620:6;11591:57;:::i;:::-;-1:-1:-1;;;;;11684:32:1;;;;11679:2;11664:18;;11657:60;-1:-1:-1;11748:3:1;11733:19;11726:35;11583:65;11185:582;-1:-1:-1;;;11185:582:1:o;12214:128::-;12254:3;12285:1;12281:6;12278:1;12275:13;12272:39;;;12291:18;;:::i;:::-;-1:-1:-1;12327:9:1;;12214:128::o;12347:217::-;12387:1;12413;12403:132;;12457:10;12452:3;12448:20;12445:1;12438:31;12492:4;12489:1;12482:15;12520:4;12517:1;12510:15;12403:132;-1:-1:-1;12549:9:1;;12347:217::o;12569:168::-;12609:7;12675:1;12671;12667:6;12663:14;12660:1;12657:21;12652:1;12645:9;12638:17;12634:45;12631:71;;;12682:18;;:::i;:::-;-1:-1:-1;12722:9:1;;12569:168::o;12742:125::-;12782:4;12810:1;12807;12804:8;12801:34;;;12815:18;;:::i;:::-;-1:-1:-1;12852:9:1;;12742:125::o;12872:127::-;12933:10;12928:3;12924:20;12921:1;12914:31;12964:4;12961:1;12954:15;12988:4;12985:1;12978:15;13004:127;13065:10;13060:3;13056:20;13053:1;13046:31;13096:4;13093:1;13086:15;13120:4;13117:1;13110:15;13268:131;-1:-1:-1;;;;;13343:31:1;;13333:42;;13323:70;;13389:1;13386;13379:12;13323:70;13268:131;:::o
Swarm Source
ipfs://a0a3f69e3e827ea808b372768843989f67ab5da4438a1c28d8f7dea87b31db07
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.