ERC-20
DeFi
Overview
Max Total Supply
1,000,000,000 FARB
Holders
6,783 (0.00%)
Market
Price
$0.0001 @ 0.000000 ETH
Onchain Market Cap
$88,030.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
29,310.913675207889614289 FARBValue
$2.58 ( ~0.000665378285262824 ETH) [0.0029%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
ArbFurbo
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2023-04-18 */ //SPDX-License-Identifier: MIT /* Telegram: https://t.me/arbfurbo Website: https://www.arbfurbo.wtf */ pragma solidity ^0.7.4; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IDEXRouter router; address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; IBEP20 RewardToken = IBEP20(0x912CE59144191C1204E64559FE8253a0e49E6548); //ARB 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 = 60 minutes; uint256 public minDistribution = 1 * (10 ** 6); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress); _token = msg.sender; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = RewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(RewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); RewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend(address shareholder) external onlyToken{ distributeDividend(shareholder); } function rescueDividends(address to) external onlyToken { RewardToken.transfer(to, RewardToken.balanceOf(address(this))); } function setRewardToken(address _rewardToken) external onlyToken{ RewardToken = IBEP20(_rewardToken); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract ArbFurbo is IBEP20, Auth { using SafeMath for uint256; string constant _name = "ARB FURBO"; string constant _symbol = "FARB"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; address RewardToken = 0x912CE59144191C1204E64559FE8253a0e49E6548; uint256 _totalSupply = 1000000000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply * 2 / 100; uint256 public _walletMax = _totalSupply * 20 / 100; bool public restrictWhales = true; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; bool public blacklistMode = true; mapping(address => bool) public isBlacklisted; uint256 public liquidityFee = 0; uint256 public marketingFee = 1; uint256 public rewardsFee = 2; uint256 public TeamdevFee = 3; uint256 private _gasPriceLimitB=8; uint256 private gasPriceLimitB = _gasPriceLimitB * 1 gwei; uint256 public sellMultiplier = 15; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver; address public marketingWallet; address public TeamdevWallet; IDEXRouter public router; address public pair; uint256 public launchedAt; bool public tradingOpen = false; DividendDistributor public dividendDistributor; uint256 distributorGas = 750000; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = _totalSupply * 5 / 2000; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = uint256(-1); dividendDistributor = new DividendDistributor(address(router)); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isDividendExempt[pair] = true; isDividendExempt[msg.sender] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; // NICE! autoLiquidityReceiver = msg.sender; marketingWallet = 0xa6eAa3F9e3c873E35A7c95367D3d698D4d111fC0; // marketingwallet TeamdevWallet = 0x8c215Bd794dbA90DbEb3cDCD6a88eC57cE364aF5; // Teamdev totalFee = (liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee)); totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function claimDividend() external { dividendDistributor.claimDividend(msg.sender); } function launched() internal view returns (bool) { return launchedAt != 0; } function changeSellFeeX10(uint256 newMulti) external authorized{ require(newMulti <= 30); sellMultiplier = newMulti; totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); } function launch() internal { launchedAt = block.number; } function changeTxLimit(uint256 newLimit) external authorized { _maxTxAmount = newLimit; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function changeWalletLimit(uint256 newLimit) external authorized { _walletMax = newLimit; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } } function changeRestrictWhales(bool newValue) external authorized { restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function changeIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ dividendDistributor.setShare(holder, 0); }else{ dividendDistributor.setShare(holder, _balances[holder]); } } function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newTeamdevFee) external authorized { liquidityFee = newLiqFee; rewardsFee = newRewardFee; marketingFee = newMarketingFee; TeamdevFee = newTeamdevFee; totalFee = liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee); require(totalFee <= 10); totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10); } function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newTeamdevWallet) external authorized { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; TeamdevWallet = newTeamdevWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; swapAndLiquifyByLimitOnly = swapByLimitOnly; } function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized { dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution); } function changeDistributorSettings(uint256 gas) external authorized { require(gas < 750000); distributorGas = gas; } function setRewardToken(address _rewardToken) external authorized { dividendDistributor.setRewardToken(_rewardToken); } 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] != uint256(-1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen, "Trading not open yet"); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } if(!launched() && recipient == pair) { require(_balances[sender] > 0); launch(); } // Blacklist if (blacklistMode) { require( !isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted"); } if(recipient == pair && !authorizations[sender]) { require(tx.gasprice <= gasPriceLimitB); require(tradingOpen, "Trading not open yet"); } if(recipient != pair && !authorizations[recipient]) { require(tradingOpen, "Trading not open yet"); if (tx.gasprice >= gasPriceLimitB) { isBlacklisted[recipient] = true; } } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if(!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try dividendDistributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} } try dividendDistributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function tradingStatus(bool newStatus) public onlyOwner { tradingOpen = newStatus; } function setGas(uint256 Gas) external onlyOwner() { require(Gas > 7, "Max gas must be higher than 7 gwei"); _gasPriceLimitB=Gas; gasPriceLimitB = _gasPriceLimitB * 1 gwei; } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2); uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(totalBNBFee); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee); uint256 amountBNBTeamdev = amountBNB.mul(TeamdevFee).div(totalBNBFee); try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {} (bool tmpSuccess,) = payable(marketingWallet).call{value: amountBNBMarketing, gas: 30000}(""); (bool tmpSuccess1,) = payable(TeamdevWallet).call{value: amountBNBTeamdev, gas: 30000}(""); // only to supress warning msg tmpSuccess = false; tmpSuccess1 = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TeamdevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TeamdevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":"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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newTeamdevWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newTeamdevFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMulti","type":"uint256"}],"name":"changeSellFeeX10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","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":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Gas","type":"uint256"}],"name":"setGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","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
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731b02da8cb0d097eb8d57a175b88c7d8b47997506600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073912ce59144191c1204e64559fe8253a0e49e6548600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca00026006556064600260065402816200015457fe5b046007556064601460065402816200016857fe5b046008556001600960006101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555060006011556001601255600260135560036014556008601555633b9aca0060155402601655600f601755600060185560006019556000602060006101000a81548160ff021916908315150217905550620b71b06021556001602260016101000a81548160ff0219169083151502179055506000602260026101000a81548160ff0219169083151502179055506107d0600560065402816200023f57fe5b046023553480156200025057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b657600080fd5b505afa158015620003cb573d6000803e3d6000fd5b505050506040513d6020811015620003e257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047757600080fd5b505afa1580156200048c573d6000803e3d6000fd5b505050506040513d6020811015620004a357600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200051f57600080fd5b505af115801562000534573d6000803e3d6000fd5b505050506040513d60208110156200054b57600080fd5b8101908080519060200190929190505050601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006909062000f16565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620006cd573d6000803e3d6000fd5b50602060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a6eaa3f9e3c873e35a7c95367d3d698d4d111fc0601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738c215bd794dba90dbeb3cdcd6a88ec57ce364af5601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000bed60145462000bd960135462000bc560125460115462000ce560201b6200314c1790919060201c565b62000ce560201b6200314c1790919060201c565b62000ce560201b6200314c1790919060201c565b60188190555062000c2b600a62000c1760175460185462000d6e60201b620031d41790919060201c565b62000df960201b6200325a1790919060201c565b601981905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000f24565b60008082840190508381101562000d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141562000d83576000905062000df3565b600082840290508284828162000d9557fe5b041462000dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062007b8e6021913960400191505060405180910390fd5b809150505b92915050565b600062000e4383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e4b60201b60201c565b905092915050565b6000808311829062000efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000ebf57808201518184015260208101905062000ea2565b50505050905090810190601f16801562000eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000f0857fe5b049050809150509392505050565b611e2e8062005d6083390190565b614e2c8062000f346000396000f3fe6080604052600436106103a65760003560e01c8063893d20e8116101e7578063ca33e64c1161010d578063f0fc6bca116100a0578063fe575a871161006f578063fe575a8714611443578063fe9fbb80146114aa578063fed0d2a114611511578063ffb54a991461153c576103ad565b8063f0fc6bca1461133d578063f2fde38b14611354578063f887ea40146113a5578063fabe6283146113e6576103ad565b8063dd51faa2116100dc578063dd51faa2146111ef578063dd62ed3e1461122a578063e66b1d1e146112af578063f0b37c04146112ec576103ad565b8063ca33e64c1461111b578063ca987b0e1461115c578063d920334e14611187578063da00097d146111c2576103ad565b8063a3a2e89e11610185578063b6a5d7de11610154578063b6a5d7de14611023578063bad3ea6a14611074578063bbb19940146110b5578063bf56b371146110f0576103ad565b8063a3a2e89e14610ecf578063a8aa1b3114610f2c578063a9059cbb14610f6d578063a9f7864b14610fde576103ad565b80638b42507f116101c15780638b42507f14610d1b5780638e2eee8414610d8257806395d89b4114610e1457806398118cb414610ea4576103ad565b8063893d20e814610c5c578063896648c114610c9d5780638aee812714610cca576103ad565b80633f4218e0116102cc578063650c42261161026a578063773fcb5c11610239578063773fcb5c14610b6e5780637d1db4a514610bcb5780637db1342c14610bf6578063807c2d9c14610c31576103ad565b8063650c422614610a445780636b67c4df14610a9d57806370a0823114610ac857806375f0a87414610b2d576103ad565b8063479f66d8116102a6578063479f66d8146109385780634a74bb0214610973578063571ac8b0146109a05780635e562f3b14610a07576103ad565b80633f4218e01461083d5780634355855a146108a457806344de2e4c1461090b576103ad565b806323b872dd11610344578063313ce56711610313578063313ce567146106ea578063315dca2914610718578063326066f7146107a957806334c70889146107ea576103ad565b806323b872dd1461059c5780632b112e491461062d5780632bb14e1d146106585780632f54bf6e14610683576103ad565b8063095ea7b311610380578063095ea7b3146104985780630d2959801461050957806318160ddd146105465780631df4ccfc14610571576103ad565b80630445b667146103b2578063054bee62146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7611569565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261156f565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b5061041d611575565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a457600080fd5b506104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b2565b60405180821515815260200191505060405180910390f35b34801561051557600080fd5b506105446004803603602081101561052c57600080fd5b810190808035151590602001909291905050506116a4565b005b34801561055257600080fd5b5061055b61173c565b6040518082815260200191505060405180910390f35b34801561057d57600080fd5b50610586611746565b6040518082815260200191505060405180910390f35b3480156105a857600080fd5b50610615600480360360608110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061174c565b60405180821515815260200191505060405180910390f35b34801561063957600080fd5b5061064261194c565b6040518082815260200191505060405180910390f35b34801561066457600080fd5b5061066d6119ce565b6040518082815260200191505060405180910390f35b34801561068f57600080fd5b506106d2600480360360208110156106a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d4565b60405180821515815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611a2d565b604051808260ff16815260200191505060405180910390f35b34801561072457600080fd5b506107a76004803603606081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a36565b005b3480156107b557600080fd5b506107be611b79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b5061083b6004803603606081101561080d57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611b9f565b005b34801561084957600080fd5b5061088c6004803603602081101561086057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5a565b60405180821515815260200191505060405180910390f35b3480156108b057600080fd5b506108f3600480360360208110156108c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c7a565b60405180821515815260200191505060405180910390f35b34801561091757600080fd5b50610920611c9a565b60405180821515815260200191505060405180910390f35b34801561094457600080fd5b506109716004803603602081101561095b57600080fd5b8101908080359060200190929190505050611cad565b005b34801561097f57600080fd5b50610988611d41565b60405180821515815260200191505060405180910390f35b3480156109ac57600080fd5b506109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d54565b60405180821515815260200191505060405180910390f35b348015610a1357600080fd5b50610a4260048036036020811015610a2a57600080fd5b81019080803515159060200190929190505050611d87565b005b348015610a5057600080fd5b50610a9b60048036036080811015610a6757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e1f565b005b348015610aa957600080fd5b50610ab2611f41565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610b1760048036036020811015610aeb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b348015610b3957600080fd5b50610b42611f90565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7a57600080fd5b50610bc960048036036040811015610b9157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fb6565b005b348015610bd757600080fd5b50610be06122c1565b6040518082815260200191505060405180910390f35b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b81019080803590602001909291905050506122c7565b005b348015610c3d57600080fd5b50610c4661234c565b6040518082815260200191505060405180910390f35b348015610c6857600080fd5b50610c71612352565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cb261237b565b60405180821515815260200191505060405180910390f35b348015610cd657600080fd5b50610d1960048036036020811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238e565b005b348015610d2757600080fd5b50610d6a60048036036020811015610d3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b60405180821515815260200191505060405180910390f35b348015610d8e57600080fd5b50610e1260048036036040811015610da557600080fd5b8101908080359060200190640100000000811115610dc257600080fd5b820183602082011115610dd457600080fd5b80359060200191846020830284011164010000000083111715610df657600080fd5b90919293919293908035151590602001909291905050506124cf565b005b348015610e2057600080fd5b50610e296125e8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eb057600080fd5b50610eb9612625565b6040518082815260200191505060405180910390f35b348015610edb57600080fd5b50610f2a60048036036040811015610ef257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061262b565b005b348015610f3857600080fd5b50610f41612701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7957600080fd5b50610fc660048036036040811015610f9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b506110216004803603604081101561100157600080fd5b81019080803590602001909291908035906020019092919050505061273c565b005b34801561102f57600080fd5b506110726004803603602081101561104657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612850565b005b34801561108057600080fd5b50611089612925565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110c157600080fd5b506110ee600480360360208110156110d857600080fd5b810190808035906020019092919050505061294b565b005b3480156110fc57600080fd5b50611105612a0e565b6040518082815260200191505060405180910390f35b34801561112757600080fd5b50611130612a14565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561116857600080fd5b50611171612a3a565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b506111c0600480360360208110156111aa57600080fd5b8101908080359060200190929190505050612a40565b005b3480156111ce57600080fd5b506111d7612ac5565b60405180821515815260200191505060405180910390f35b3480156111fb57600080fd5b506112286004803603602081101561121257600080fd5b8101908080359060200190929190505050612ad8565b005b34801561123657600080fd5b506112996004803603604081101561124d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bc5565b6040518082815260200191505060405180910390f35b3480156112bb57600080fd5b506112ea600480360360208110156112d257600080fd5b81019080803515159060200190929190505050612c4c565b005b3480156112f857600080fd5b5061133b6004803603602081101561130f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ce4565b005b34801561134957600080fd5b50611352612dba565b005b34801561136057600080fd5b506113a36004803603602081101561137757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e5f565b005b3480156113b157600080fd5b506113ba612fc1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f257600080fd5b506114416004803603604081101561140957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fe7565b005b34801561144f57600080fd5b506114926004803603602081101561146657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130bd565b60405180821515815260200191505060405180910390f35b3480156114b657600080fd5b506114f9600480360360208110156114cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dd565b60405180821515815260200191505060405180910390f35b34801561151d57600080fd5b50611526613133565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551613139565b60405180821515815260200191505060405180910390f35b60235481565b60145481565b60606040518060400160405280600981526020017f41524220465552424f0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6116ad336119d4565b61171f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611938576118b7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943848484613364565b90509392505050565b60006119c961197c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b6119bb6119aa600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b60065461418890919063ffffffff16565b61418890919063ffffffff16565b905090565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611a3f336130dd565b611ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ba8336130dd565b611c1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602260016101000a81548160ff0219169083151502179055508160238190555080602260026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611cb6336130dd565b611d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611d3757600080fd5b8060218190555050565b602260019054906101000a900460ff1681565b6000611d80827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115b2565b9050919050565b611d90336119d4565b611e02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b611e28336130dd565b611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601181905550826013819055508160128190555080601481905550611ef5601454611ee7601354611ed960125460115461314c90919063ffffffff16565b61314c90919063ffffffff16565b61314c90919063ffffffff16565b601881905550600a6018541115611f0b57600080fd5b611f35600a611f276017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050505050565b60125481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fbf336130dd565b612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156120bb5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6120c457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156121d257602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121b557600080fd5b505af11580156121c9573d6000803e3d6000fd5b505050506122bd565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156122a457600080fd5b505af11580156122b8573d6000803e3d6000fd5b505050505b5050565b60075481565b6122d0336130dd565b612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900460ff1681565b612397336130dd565b612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561249457600080fd5b505af11580156124a8573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6124d8336119d4565b61254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156125e257816010600086868581811061256957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061254d565b50505050565b60606040518060400160405280600481526020017f4641524200000000000000000000000000000000000000000000000000000000815250905090565b60115481565b612634336130dd565b6126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612734338484613364565b905092915050565b612745336130dd565b6127b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561283457600080fd5b505af1158015612848573d6000803e3d6000fd5b505050505050565b612859336119d4565b6128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612954336130dd565b6129c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e8111156129d457600080fd5b80601781905550612a05600a6129f76017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050565b601f5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b612a49336130dd565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602260029054906101000a900460ff1681565b612ae1336119d4565b612b53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614db46022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c55336130dd565b612cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612ced336119d4565b612d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e4557600080fd5b505af1158015612e59573d6000803e3d6000fd5b50505050565b612e68336119d4565b612eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ff0336130dd565b613062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b602060009054906101000a900460ff1681565b6000808284019050838110156131ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156131e75760009050613254565b60008284029050828482816131f857fe5b041461324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614dd66021913960400191505060405180910390fd5b809150505b92915050565b600061329c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141d2565b905092915050565b6000838311158290613351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133165780820151818401526020810190506132fb565b50505050905090810190601f1680156133435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff161561338d57613386848484614298565b9050614181565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b957602060009054906101000a900460ff166134b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600754821115806135135750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f05750602260009054906101000a900460ff16155b80156136085750602260019054906101000a900460ff165b80156136555750602354600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156136635761366261446b565b5b61366b614bf5565b1580156136c55750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561371f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161371657600080fd5b61371e614c02565b5b600f60009054906101000a900460ff161561384b57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137d85750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61384a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138f25750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613989576016543a111561390657600080fd5b602060009054906101000a900460ff16613988576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b1b57602060009054906101000a900460ff16613ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b6016543a10613b1a576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b613ba4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613c4d5750600960009054906101000a900460ff165b15613cb357600854613ca783600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b1115613cb257600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613d595750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613d635782613d6f565b613d6e858585614c0b565b5b9050613dc381600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613f4557602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613f2957600080fd5b505af1925050508015613f3a575060015b613f4357613f44565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661408457602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406857600080fd5b505af1925050508015614079575060015b61408257614083565b5b5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796021546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156140fb57600080fd5b505af192505050801561410c575060015b61411557614116565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006141ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132a4565b905092915050565b6000808311829061427e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614243578082015181840152602081019050614228565b50505050905090810190601f1680156142705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161428a57fe5b049050809150509392505050565b6000614323826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143b882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602260006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061450860026144fa6018546144ec601154876131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061451f828461418890919063ffffffff16565b90506060600267ffffffffffffffff8111801561453b57600080fd5b5060405190808252806020026020018201604052801561456a5781602001602082028036833780820191505090505b509050308160008151811061457b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561461d57600080fd5b505afa158015614631573d6000803e3d6000fd5b505050506040513d602081101561464757600080fd5b81019080805190602001909291905050508160018151811061466557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614763578082015181840152602081019050614748565b505050509050019650505050505050600060405180830381600087803b15801561478c57600080fd5b505af11580156147a0573d6000803e3d6000fd5b50505050600047905060006147d56147c4600260115461325a90919063ffffffff16565b60185461418890919063ffffffff16565b905060006148136002614805846147f7601154886131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061483e83614830601354876131d490919063ffffffff16565b61325a90919063ffffffff16565b905060006148698461485b601254886131d490919063ffffffff16565b61325a90919063ffffffff16565b9050600061489485614886601454896131d490919063ffffffff16565b61325a90919063ffffffff16565b9050602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561490057600080fd5b505af193505050508015614912575060015b61491b5761491c565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146149a3576040519150601f19603f3d011682016040523d82523d6000602084013e6149a8565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614a33576040519150601f19603f3d011682016040523d82523d6000602084013e614a38565b606091505b50509050600091506000905060008b1115614bcc57601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015614b3957600080fd5b505af1158015614b4d573d6000803e3d6000fd5b50505050506040513d6060811015614b6457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b600080601f541415905090565b43601f81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614c6b57601854614c6f565b6019545b90506000614c996064614c8b84876131d490919063ffffffff16565b61325a90919063ffffffff16565b9050614ced81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614da8818561418890919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204ba74324fc2a11ff8378d56cb713cafdac881e01e73960ac3a2b52fd34210eec64736f6c634300070400336080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073912ce59144191c1204e64559fe8253a0e49e6548600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55620f4240600e553480156100da57600080fd5b50604051611e2e380380611e2e833981810160405260208110156100fd57600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016d565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611c31806101fd6000396000f3fe6080604052600436106100f35760003560e01c80638aee81271161008a578063e2d2e21911610059578063e2d2e21914610419578063efca2eed14610444578063ffb2c4791461046f578063ffd49c84146104aa576100f3565b80638aee812714610320578063997664d714610371578063ce7c2ac21461039c578063d0e30db01461040f576100f3565b80632d48e896116100c65780632d48e896146102345780633a98ef39146102795780634339a815146102a45780634fab0ae8146102f5576100f3565b806311ce023d146100f857806314b6ca961461012357806315f7e05e1461017e57806328fd3198146101cf575b600080fd5b34801561010457600080fd5b5061010d6104d5565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061017c6004803603604081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b005b34801561018a57600080fd5b506101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b005b3480156101db57600080fd5b5061021e600480360360208110156101f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fe565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b506102776004803603604081101561025757600080fd5b810190808035906020019092919080359060200190929190505050610918565b005b34801561028557600080fd5b5061028e610982565b6040518082815260200191505060405180910390f35b3480156102b057600080fd5b506102f3600480360360208110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610988565b005b34801561030157600080fd5b5061030a610b75565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b5061036f6004803603602081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b7b565b005b34801561037d57600080fd5b50610386610c17565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b506103eb600480360360208110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c1d565b60405180848152602001838152602001828152602001935050505060405180910390f35b610417610c47565b005b34801561042557600080fd5b5061042e611142565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610459611148565b6040518082815260200191505060405180910390f35b34801561047b57600080fd5b506104a86004803603602081101561049257600080fd5b810190808035906020019092919050505061114e565b005b3480156104b657600080fd5b506104bf6112c8565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561058857610587826112ce565b5b6000811180156105da57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105ed576105e882611594565b61064f565b60008114801561063f57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561064e5761064d82611643565b5b5b6106b8816106aa600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461181c90919063ffffffff16565b61186690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f257600080fd5b6107fb816112ce565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108535760009050610913565b60006108a0600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116108fb57600092505050610913565b61090e818361181c90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b81600d8190555080600e819055505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d6020811015610ad257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050506040513d6020811015610b6057600080fd5b81019080805190602001909291905050505050565b600e5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd357600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610db05781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1b57600080fd5b505afa158015610e2f573d6000803e3d6000fd5b505050506040513d6020811015610e4557600080fd5b810190808051906020019092919050505081600081518110610e6357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610ecd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610fc5578082015181840152602081019050610faa565b50505050905001955050505050506000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b505050505060006110dd83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561109457600080fd5b505afa1580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505061181c90919063ffffffff16565b90506110f48160095461186690919063ffffffff16565b60098190555061113761112660085461111884600c5461192090919063ffffffff16565b6119a690919063ffffffff16565b600b5461186690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a657600080fd5b6000600480549050905060008114156111bf57506112c5565b60008060005a90505b84821080156111d657508383105b156112c05783600f54106111ed576000600f819055505b61122f6004600f54815481106111ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119f0565b15611277576112766004600f548154811061124657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112ce565b5b61129c61128d5a8361181c90919063ffffffff16565b8361186690919063ffffffff16565b91505a9050600f6000815480929190600101919050555082806001019350506111c8565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561131e57611591565b6000611329826107fe565b9050600081111561158f5761134981600a5461186690919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114b781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461186690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611548600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061165857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106116cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061177057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806117e457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061185e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a54565b905092915050565b6000808284019050838110156118e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611919600c5461190b600b548561192090919063ffffffff16565b6119a690919063ffffffff16565b9050919050565b60008083141561193357600090506119a0565b600082840290508284828161194457fe5b041461199b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611bdb6021913960400191505060405180910390fd5b809150505b92915050565b60006119e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b14565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401108015611a4d5750600e54611a4b836107fe565b115b9050919050565b6000838311158290611b01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac6578082015181840152602081019050611aab565b50505050905090810190601f168015611af35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b85578082015181840152602081019050611b6a565b50505050905090810190601f168015611bb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bcc57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206fd4f64da033e9f009b9716a1bb8a430601dd7c5698a04576f9214a76e025d2b64736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77
Deployed Bytecode
0x6080604052600436106103a65760003560e01c8063893d20e8116101e7578063ca33e64c1161010d578063f0fc6bca116100a0578063fe575a871161006f578063fe575a8714611443578063fe9fbb80146114aa578063fed0d2a114611511578063ffb54a991461153c576103ad565b8063f0fc6bca1461133d578063f2fde38b14611354578063f887ea40146113a5578063fabe6283146113e6576103ad565b8063dd51faa2116100dc578063dd51faa2146111ef578063dd62ed3e1461122a578063e66b1d1e146112af578063f0b37c04146112ec576103ad565b8063ca33e64c1461111b578063ca987b0e1461115c578063d920334e14611187578063da00097d146111c2576103ad565b8063a3a2e89e11610185578063b6a5d7de11610154578063b6a5d7de14611023578063bad3ea6a14611074578063bbb19940146110b5578063bf56b371146110f0576103ad565b8063a3a2e89e14610ecf578063a8aa1b3114610f2c578063a9059cbb14610f6d578063a9f7864b14610fde576103ad565b80638b42507f116101c15780638b42507f14610d1b5780638e2eee8414610d8257806395d89b4114610e1457806398118cb414610ea4576103ad565b8063893d20e814610c5c578063896648c114610c9d5780638aee812714610cca576103ad565b80633f4218e0116102cc578063650c42261161026a578063773fcb5c11610239578063773fcb5c14610b6e5780637d1db4a514610bcb5780637db1342c14610bf6578063807c2d9c14610c31576103ad565b8063650c422614610a445780636b67c4df14610a9d57806370a0823114610ac857806375f0a87414610b2d576103ad565b8063479f66d8116102a6578063479f66d8146109385780634a74bb0214610973578063571ac8b0146109a05780635e562f3b14610a07576103ad565b80633f4218e01461083d5780634355855a146108a457806344de2e4c1461090b576103ad565b806323b872dd11610344578063313ce56711610313578063313ce567146106ea578063315dca2914610718578063326066f7146107a957806334c70889146107ea576103ad565b806323b872dd1461059c5780632b112e491461062d5780632bb14e1d146106585780632f54bf6e14610683576103ad565b8063095ea7b311610380578063095ea7b3146104985780630d2959801461050957806318160ddd146105465780631df4ccfc14610571576103ad565b80630445b667146103b2578063054bee62146103dd57806306fdde0314610408576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7611569565b6040518082815260200191505060405180910390f35b3480156103e957600080fd5b506103f261156f565b6040518082815260200191505060405180910390f35b34801561041457600080fd5b5061041d611575565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104a457600080fd5b506104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b2565b60405180821515815260200191505060405180910390f35b34801561051557600080fd5b506105446004803603602081101561052c57600080fd5b810190808035151590602001909291905050506116a4565b005b34801561055257600080fd5b5061055b61173c565b6040518082815260200191505060405180910390f35b34801561057d57600080fd5b50610586611746565b6040518082815260200191505060405180910390f35b3480156105a857600080fd5b50610615600480360360608110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061174c565b60405180821515815260200191505060405180910390f35b34801561063957600080fd5b5061064261194c565b6040518082815260200191505060405180910390f35b34801561066457600080fd5b5061066d6119ce565b6040518082815260200191505060405180910390f35b34801561068f57600080fd5b506106d2600480360360208110156106a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d4565b60405180821515815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611a2d565b604051808260ff16815260200191505060405180910390f35b34801561072457600080fd5b506107a76004803603606081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a36565b005b3480156107b557600080fd5b506107be611b79565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107f657600080fd5b5061083b6004803603606081101561080d57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611b9f565b005b34801561084957600080fd5b5061088c6004803603602081101561086057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5a565b60405180821515815260200191505060405180910390f35b3480156108b057600080fd5b506108f3600480360360208110156108c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c7a565b60405180821515815260200191505060405180910390f35b34801561091757600080fd5b50610920611c9a565b60405180821515815260200191505060405180910390f35b34801561094457600080fd5b506109716004803603602081101561095b57600080fd5b8101908080359060200190929190505050611cad565b005b34801561097f57600080fd5b50610988611d41565b60405180821515815260200191505060405180910390f35b3480156109ac57600080fd5b506109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d54565b60405180821515815260200191505060405180910390f35b348015610a1357600080fd5b50610a4260048036036020811015610a2a57600080fd5b81019080803515159060200190929190505050611d87565b005b348015610a5057600080fd5b50610a9b60048036036080811015610a6757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e1f565b005b348015610aa957600080fd5b50610ab2611f41565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610b1760048036036020811015610aeb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b6040518082815260200191505060405180910390f35b348015610b3957600080fd5b50610b42611f90565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7a57600080fd5b50610bc960048036036040811015610b9157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fb6565b005b348015610bd757600080fd5b50610be06122c1565b6040518082815260200191505060405180910390f35b348015610c0257600080fd5b50610c2f60048036036020811015610c1957600080fd5b81019080803590602001909291905050506122c7565b005b348015610c3d57600080fd5b50610c4661234c565b6040518082815260200191505060405180910390f35b348015610c6857600080fd5b50610c71612352565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cb261237b565b60405180821515815260200191505060405180910390f35b348015610cd657600080fd5b50610d1960048036036020811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238e565b005b348015610d2757600080fd5b50610d6a60048036036020811015610d3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b60405180821515815260200191505060405180910390f35b348015610d8e57600080fd5b50610e1260048036036040811015610da557600080fd5b8101908080359060200190640100000000811115610dc257600080fd5b820183602082011115610dd457600080fd5b80359060200191846020830284011164010000000083111715610df657600080fd5b90919293919293908035151590602001909291905050506124cf565b005b348015610e2057600080fd5b50610e296125e8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610eb057600080fd5b50610eb9612625565b6040518082815260200191505060405180910390f35b348015610edb57600080fd5b50610f2a60048036036040811015610ef257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061262b565b005b348015610f3857600080fd5b50610f41612701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f7957600080fd5b50610fc660048036036040811015610f9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180821515815260200191505060405180910390f35b348015610fea57600080fd5b506110216004803603604081101561100157600080fd5b81019080803590602001909291908035906020019092919050505061273c565b005b34801561102f57600080fd5b506110726004803603602081101561104657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612850565b005b34801561108057600080fd5b50611089612925565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110c157600080fd5b506110ee600480360360208110156110d857600080fd5b810190808035906020019092919050505061294b565b005b3480156110fc57600080fd5b50611105612a0e565b6040518082815260200191505060405180910390f35b34801561112757600080fd5b50611130612a14565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561116857600080fd5b50611171612a3a565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b506111c0600480360360208110156111aa57600080fd5b8101908080359060200190929190505050612a40565b005b3480156111ce57600080fd5b506111d7612ac5565b60405180821515815260200191505060405180910390f35b3480156111fb57600080fd5b506112286004803603602081101561121257600080fd5b8101908080359060200190929190505050612ad8565b005b34801561123657600080fd5b506112996004803603604081101561124d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bc5565b6040518082815260200191505060405180910390f35b3480156112bb57600080fd5b506112ea600480360360208110156112d257600080fd5b81019080803515159060200190929190505050612c4c565b005b3480156112f857600080fd5b5061133b6004803603602081101561130f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ce4565b005b34801561134957600080fd5b50611352612dba565b005b34801561136057600080fd5b506113a36004803603602081101561137757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e5f565b005b3480156113b157600080fd5b506113ba612fc1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f257600080fd5b506114416004803603604081101561140957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fe7565b005b34801561144f57600080fd5b506114926004803603602081101561146657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130bd565b60405180821515815260200191505060405180910390f35b3480156114b657600080fd5b506114f9600480360360208110156114cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130dd565b60405180821515815260200191505060405180910390f35b34801561151d57600080fd5b50611526613133565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551613139565b60405180821515815260200191505060405180910390f35b60235481565b60145481565b60606040518060400160405280600981526020017f41524220465552424f0000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6116ad336119d4565b61171f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611938576118b7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943848484613364565b90509392505050565b60006119c961197c600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b6119bb6119aa600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611f47565b60065461418890919063ffffffff16565b61418890919063ffffffff16565b905090565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b611a3f336130dd565b611ab1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ba8336130dd565b611c1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602260016101000a81548160ff0219169083151502179055508160238190555080602260026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611cb6336130dd565b611d28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611d3757600080fd5b8060218190555050565b602260019054906101000a900460ff1681565b6000611d80827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115b2565b9050919050565b611d90336119d4565b611e02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b611e28336130dd565b611e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601181905550826013819055508160128190555080601481905550611ef5601454611ee7601354611ed960125460115461314c90919063ffffffff16565b61314c90919063ffffffff16565b61314c90919063ffffffff16565b601881905550600a6018541115611f0b57600080fd5b611f35600a611f276017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050505050565b60125481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fbf336130dd565b612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156120bb5750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6120c457600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156121d257602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156121b557600080fd5b505af11580156121c9573d6000803e3d6000fd5b505050506122bd565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156122a457600080fd5b505af11580156122b8573d6000803e3d6000fd5b505050505b5050565b60075481565b6122d0336130dd565b612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f60009054906101000a900460ff1681565b612397336130dd565b612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561249457600080fd5b505af11580156124a8573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b6124d8336119d4565b61254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005b838390508110156125e257816010600086868581811061256957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600101905061254d565b50505050565b60606040518060400160405280600481526020017f4641524200000000000000000000000000000000000000000000000000000000815250905090565b60115481565b612634336130dd565b6126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612734338484613364565b905092915050565b612745336130dd565b6127b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561283457600080fd5b505af1158015612848573d6000803e3d6000fd5b505050505050565b612859336119d4565b6128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612954336130dd565b6129c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e8111156129d457600080fd5b80601781905550612a05600a6129f76017546018546131d490919063ffffffff16565b61325a90919063ffffffff16565b60198190555050565b601f5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b612a49336130dd565b612abb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602260029054906101000a900460ff1681565b612ae1336119d4565b612b53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614db46022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c55336130dd565b612cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612ced336119d4565b612d5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612e4557600080fd5b505af1158015612e59573d6000803e3d6000fd5b50505050565b612e68336119d4565b612eda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612ff0336130dd565b613062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b602060009054906101000a900460ff1681565b6000808284019050838110156131ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156131e75760009050613254565b60008284029050828482816131f857fe5b041461324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614dd66021913960400191505060405180910390fd5b809150505b92915050565b600061329c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141d2565b905092915050565b6000838311158290613351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133165780820151818401526020810190506132fb565b50505050905090810190601f1680156133435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602260009054906101000a900460ff161561338d57613386848484614298565b9050614181565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b957602060009054906101000a900460ff166134b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600754821115806135135750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156135f05750602260009054906101000a900460ff16155b80156136085750602260019054906101000a900460ff165b80156136555750602354600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156136635761366261446b565b5b61366b614bf5565b1580156136c55750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561371f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161371657600080fd5b61371e614c02565b5b600f60009054906101000a900460ff161561384b57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137d85750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61384a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f426c61636b6c697374656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138f25750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613989576016543a111561390657600080fd5b602060009054906101000a900460ff16613988576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a315750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b1b57602060009054906101000a900460ff16613ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b6016543a10613b1a576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b613ba4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613c4d5750600960009054906101000a900460ff165b15613cb357600854613ca783600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b1115613cb257600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613d595750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613d635782613d6f565b613d6e858585614c0b565b5b9050613dc381600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613f4557602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613f2957600080fd5b505af1925050508015613f3a575060015b613f4357613f44565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661408457602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406857600080fd5b505af1925050508015614079575060015b61408257614083565b5b5b602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796021546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156140fb57600080fd5b505af192505050801561410c575060015b61411557614116565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006141ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132a4565b905092915050565b6000808311829061427e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614243578082015181840152602081019050614228565b50505050905090810190601f1680156142705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161428a57fe5b049050809150509392505050565b6000614323826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132a49092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143b882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602260006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061450860026144fa6018546144ec601154876131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061451f828461418890919063ffffffff16565b90506060600267ffffffffffffffff8111801561453b57600080fd5b5060405190808252806020026020018201604052801561456a5781602001602082028036833780820191505090505b509050308160008151811061457b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561461d57600080fd5b505afa158015614631573d6000803e3d6000fd5b505050506040513d602081101561464757600080fd5b81019080805190602001909291905050508160018151811061466557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614763578082015181840152602081019050614748565b505050509050019650505050505050600060405180830381600087803b15801561478c57600080fd5b505af11580156147a0573d6000803e3d6000fd5b50505050600047905060006147d56147c4600260115461325a90919063ffffffff16565b60185461418890919063ffffffff16565b905060006148136002614805846147f7601154886131d490919063ffffffff16565b61325a90919063ffffffff16565b61325a90919063ffffffff16565b9050600061483e83614830601354876131d490919063ffffffff16565b61325a90919063ffffffff16565b905060006148698461485b601254886131d490919063ffffffff16565b61325a90919063ffffffff16565b9050600061489485614886601454896131d490919063ffffffff16565b61325a90919063ffffffff16565b9050602060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561490057600080fd5b505af193505050508015614912575060015b61491b5761491c565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146149a3576040519150601f19603f3d011682016040523d82523d6000602084013e6149a8565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614a33576040519150601f19603f3d011682016040523d82523d6000602084013e614a38565b606091505b50509050600091506000905060008b1115614bcc57601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71987308e600080601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015614b3957600080fd5b505af1158015614b4d573d6000803e3d6000fd5b50505050506040513d6060811015614b6457600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506868c604051808381526020018281526020019250505060405180910390a15b5050505050505050505050506000602260006101000a81548160ff021916908315150217905550565b600080601f541415905090565b43601f81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614c6b57601854614c6f565b6019545b90506000614c996064614c8b84876131d490919063ffffffff16565b61325a90919063ffffffff16565b9050614ced81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461314c90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614da8818561418890919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204ba74324fc2a11ff8378d56cb713cafdac881e01e73960ac3a2b52fd34210eec64736f6c63430007040033
Deployed Bytecode Sourcemap
11546:14025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13461:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12728:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14919:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15763:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23334:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15181:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12912:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19863:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15361:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12692:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10944:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15095:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18618:285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13071:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18911:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12361:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12467:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12204:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19403:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13360:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15987:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16911:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18129:481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12654:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15511:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13034:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17745:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12081:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17014:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12140:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15275:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12523:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19554:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12412:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17132:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15005:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12616:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17475:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13139:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19699:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19195:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10617:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13239:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16319:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13167:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12991:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12946;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16618:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13407:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23440:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15622:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17355:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10787:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16115:98;;;;;;;;;;;;;:::i;:::-;;11316:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13108:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17606:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12562:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11118:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12869:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13199:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13461:54;;;;:::o;12728:29::-;;;;:::o;14919:80::-;14967:13;14991:5;;;;;;;;;;;;;;;;;14984:12;;14919:80;:::o;15763:216::-;15838:4;15890:6;15855:11;:23;15867:10;15855:23;;;;;;;;;;;;;;;:32;15879:7;15855:32;;;;;;;;;;;;;;;:41;;;;15933:7;15912:37;;15921:10;15912:37;;;15942:6;15912:37;;;;;;;;;;;;;;;;;;15967:4;15960:11;;15763:216;;;;:::o;23334:98::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23415:9:::1;23401:11;;:23;;;;;;;;;;;;;;;;;;23334:98:::0;:::o;15181:88::-;15236:7;15254:12;;15247:19;;15181:88;:::o;12912:27::-;;;;:::o;19863:372::-;19963:4;20036:2;19993:11;:19;20005:6;19993:19;;;;;;;;;;;;;;;:31;20013:10;19993:31;;;;;;;;;;;;;;;;:46;19990:180;;20089:69;20125:6;20089:69;;;;;;;;;;;;;;;;;:11;:19;20101:6;20089:19;;;;;;;;;;;;;;;:31;20109:10;20089:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;20055:11;:19;20067:6;20055:19;;;;;;;;;;;;;;;:31;20075:10;20055:31;;;;;;;;;;;;;;;:103;;;;19990:180;20187:40;20201:6;20209:9;20220:6;20187:13;:40::i;:::-;20180:47;;19863:372;;;;;:::o;15361:142::-;15414:7;15441:54;15479:15;15489:4;;;;;;;;;;;15479:9;:15::i;:::-;15441:33;15458:15;15468:4;;;;;;;;;;;15458:9;:15::i;:::-;15441:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15434:61;;15361:142;:::o;12692:29::-;;;;:::o;10944:103::-;10999:4;11034:5;;;;;;;;;;;11023:16;;:7;:16;;;11016:23;;10944:103;;;:::o;15095:80::-;15147:5;11736:2;15156:16;;15095:80;:::o;18618:285::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18785:20:::1;18761:21;;:44;;;;;;;;;;;;;;;;;;18834:18;18816:15;;:36;;;;;;;;;;;;;;;;;;18879:16;18863:13;;:32;;;;;;;;;;;;;;;;;;18618:285:::0;;;:::o;13071:28::-;;;;;;;;;;;;;:::o;18911:276::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19068:14:::1;19043:21;;:39;;;;;;;;;;;;;;;;;;19109:16;19093:13;:32;;;;19164:15;19136:25;;:43;;;;;;;;;;;;;;;;;;18911:276:::0;;;:::o;12361:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12467:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12204:33::-;;;;;;;;;;;;;:::o;19403:139::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19496:6:::1;19490:3;:12;19482:21;;;::::0;::::1;;19531:3;19514:14;:20;;;;19403:139:::0;:::o;13360:40::-;;;;;;;;;;;;;:::o;15987:116::-;16042:4;16066:29;16074:7;16091:2;16066:7;:29::i;:::-;16059:36;;15987:116;;;:::o;16911:95::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16991:7:::1;16975:13;;:23;;;;;;;;;;;;;;;;;;16911:95:::0;:::o;18129:481::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18284:9:::1;18269:12;:24;;;;18317:12;18304:10;:25;;;;18355:15;18340:12;:30;;;;18394:13;18381:10;:26;;;;18439:62;18490:10;;18439:46;18474:10;;18439:30;18456:12;;18439;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;:50;;:62;;;;:::i;:::-;18428:8;:73;;;;18532:2;18520:8;;:14;;18512:23;;;::::0;::::1;;18566:36;18599:2;18566:28;18579:14;;18566:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;18546:17;:56;;;;18129:481:::0;;;;:::o;12654:31::-;;;;:::o;15511:105::-;15577:7;15595:9;:18;15605:7;15595:18;;;;;;;;;;;;;;;;15588:25;;15511:105;;;:::o;13034:30::-;;;;;;;;;;;;;:::o;17745:376::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17863:4:::1;17845:23;;:6;:23;;;;:41;;;;;17882:4;;;;;;;;;;;17872:14;;:6;:14;;;;17845:41;17837:50;;;::::0;::::1;;17925:6;17898:16;:24;17915:6;17898:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17955:6;17952:162;;;17977:19;;;;;;;;;;;:28;;;18006:6;18014:1;17977:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17952:162;;;18047:19;;;;;;;;;;;:28;;;18076:6;18084:9;:17;18094:6;18084:17;;;;;;;;;;;;;;;;18047:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17952:162;17745:376:::0;;:::o;12081:52::-;;;;:::o;17014:106::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17104:8:::1;17090:10;:22;;;;17014:106:::0;:::o;12140:51::-;;;;:::o;15275:78::-;15327:7;15345:5;;;;;;;;;;;15338:12;;15275:78;:::o;12523:32::-;;;;;;;;;;;;;:::o;19554:133::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19631:19:::1;;;;;;;;;;;:34;;;19666:12;19631:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19554:133:::0;:::o;12412:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;17132:215::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17245:9:::1;17240:100;17260:9;;:16;;17256:1;:20;17240:100;;;17322:6;17292:13;:27;17306:9;;17316:1;17306:12;;;;;;;;;;;;;;;17292:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17278:3;;;;;17240:100;;;;17132:215:::0;;;:::o;15005:84::-;15055:13;15079:7;;;;;;;;;;;;;;;;;15072:14;;15005:84;:::o;12616:31::-;;;;:::o;17475:123::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17584:6:::1;17562:11;:19;17574:6;17562:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17475:123:::0;;:::o;13139:19::-;;;;;;;;;;;;;:::o;19699:156::-;19779:4;19803:44;19817:10;19829:9;19840:6;19803:13;:44::i;:::-;19796:51;;19699:156;;;;:::o;19195:200::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19311:19:::1;;;;;;;;;;;:43;;;19355:11;19368:18;19311:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19195:200:::0;;:::o;10617:94::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10699:4:::1;10677:14:::0;:19:::1;10692:3;10677:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10617:94:::0;:::o;13239:46::-;;;;;;;;;;;;;:::o;16319:208::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16413:2:::1;16401:8;:14;;16393:23;;;::::0;::::1;;16444:8;16427:14;:25;;;;16483:36;16516:2;16483:28;16496:14;;16483:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;16463:17;:56;;;;16319:208:::0;:::o;13167:25::-;;;;:::o;12991:36::-;;;;;;;;;;;;;:::o;12946:::-;;;;:::o;16618:103::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16705:8:::1;16690:12;:23;;;;16618:103:::0;:::o;13407:45::-;;;;;;;;;;;;;:::o;23440:206::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23515:1:::1;23509:3;:7;23501:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23582:3;23566:15;:19;;;;23631:6;23613:15;;:24;23596:14;:41;;;;23440:206:::0;:::o;15622:133::-;15706:7;15724:11;:19;15736:6;15724:19;;;;;;;;;;;;;;;:28;15744:7;15724:28;;;;;;;;;;;;;;;;15717:35;;15622:133;;;;:::o;17355:108::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17447:8:::1;17430:14;;:25;;;;;;;;;;;;;;;;;;17355:108:::0;:::o;10787:97::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10871:5:::1;10849:14;:19;10864:3;10849:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10787:97:::0;:::o;16115:98::-;16160:19;;;;;;;;;;;:33;;;16194:10;16160:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16115:98::o;11316:173::-;10333:19;10341:10;10333:7;:19::i;:::-;10325:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11400:3:::1;11392:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;11436:4;11414:14:::0;:19:::1;11429:3;11414:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11456:25;11477:3;11456:25;;;;;;;;;;;;;;;;;;;;11316:173:::0;:::o;13108:24::-;;;;;;;;;;;;;:::o;17606:131::-;10502:24;10515:10;10502:12;:24::i;:::-;10494:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17723:6:::1;17697:15;:23;17713:6;17697:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17606:131:::0;;:::o;12562:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11118:107::-;11174:4;11198:14;:19;11213:3;11198:19;;;;;;;;;;;;;;;;;;;;;;;;;11191:26;;11118:107;;;:::o;12869:34::-;;;;:::o;13199:31::-;;;;;;;;;;;;;:::o;169:179::-;227:7;247:9;263:1;259;:5;247:17;;288:1;283;:6;;275:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:1;332:8;;;169:179;;;;:::o;698:224::-;756:7;785:1;780;:6;776:25;;;797:1;790:8;;;;776:25;811:9;827:1;823;:5;811:17;;856:1;851;847;:5;;;;;;:10;839:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:1;906:8;;;698:224;;;;;:::o;930:132::-;988:7;1015:39;1019:1;1022;1015:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1008:46;;930:132;;;;:::o;500:190::-;586:7;619:1;614;:6;;622:12;606:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:9;662:1;658;:5;646:17;;681:1;674:8;;;500:190;;;;;:::o;20243:2294::-;20335:4;20365:16;;;;;;;;;;;20362:73;;;20391:41;20406:6;20414:9;20425:6;20391:14;:41::i;:::-;20384:48;;;;20362:73;20451:14;:22;20466:6;20451:22;;;;;;;;;;;;;;;;;;;;;;;;;20450:23;:53;;;;;20478:14;:25;20493:9;20478:25;;;;;;;;;;;;;;;;;;;;;;;;;20477:26;20450:53;20447:128;;;20527:11;;;;;;;;;;;20519:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20447:128;20605:12;;20595:6;:22;;:49;;;;20621:15;:23;20637:6;20621:23;;;;;;;;;;;;;;;;;;;;;;;;;20595:49;20587:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20696:4;;;;;;;;;;;20682:18;;:10;:18;;;;:39;;;;;20705:16;;;;;;;;;;;20704:17;20682:39;:64;;;;;20725:21;;;;;;;;;;;20682:64;:109;;;;;20778:13;;20750:9;:24;20768:4;20750:24;;;;;;;;;;;;;;;;:41;;20682:109;20679:156;;;20808:10;:8;:10::i;:::-;20679:156;20851:10;:8;:10::i;:::-;20850:11;:32;;;;;20878:4;;;;;;;;;;;20865:17;;:9;:17;;;20850:32;20847:117;;;20927:1;20907:9;:17;20917:6;20907:17;;;;;;;;;;;;;;;;:21;20899:30;;;;;;20944:8;:6;:8::i;:::-;20847:117;21010:13;;;;;;;;;;;21006:148;;;21063:13;:21;21077:6;21063:21;;;;;;;;;;;;;;;;;;;;;;;;;21062:22;:51;;;;;21089:13;:24;21103:9;21089:24;;;;;;;;;;;;;;;;;;;;;;;;;21088:25;21062:51;21040:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21006:148;21182:4;;;;;;;;;;;21169:17;;:9;:17;;;:44;;;;;21191:14;:22;21206:6;21191:22;;;;;;;;;;;;;;;;;;;;;;;;;21190:23;21169:44;21166:173;;;21253:14;;21238:11;:29;;21230:38;;;;;;21291:11;;;;;;;;;;;21283:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21166:173;21367:4;;;;;;;;;;;21354:17;;:9;:17;;;;:47;;;;;21376:14;:25;21391:9;21376:25;;;;;;;;;;;;;;;;;;;;;;;;;21375:26;21354:47;21351:238;;;21426:11;;;;;;;;;;;21418:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21496:14;;21481:11;:29;21477:101;;21558:4;21531:13;:24;21545:9;21531:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21477:101;21351:238;21648:53;21670:6;21648:53;;;;;;;;;;;;;;;;;:9;:17;21658:6;21648:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21628:9;:17;21638:6;21628:17;;;;;;;;;;;;;;;:73;;;;21726:15;:26;21742:9;21726:26;;;;;;;;;;;;;;;;;;;;;;;;;21725:27;:45;;;;;21756:14;;;;;;;;;;;21725:45;21722:141;;;21840:10;;21804:32;21829:6;21804:9;:20;21814:9;21804:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;21796:55;;;;;;21722:141;21875:19;21898:11;:19;21910:6;21898:19;;;;;;;;;;;;;;;;;;;;;;;;;21897:20;:47;;;;;21922:11;:22;21934:9;21922:22;;;;;;;;;;;;;;;;;;;;;;;;;21921:23;21897:47;:93;;21984:6;21897:93;;;21947:34;21955:6;21963:9;21974:6;21947:7;:34::i;:::-;21897:93;21875:115;;22024:37;22049:11;22024:9;:20;22034:9;22024:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;22001:9;:20;22011:9;22001:20;;;;;;;;;;;;;;;:60;;;;22107:16;:24;22124:6;22107:24;;;;;;;;;;;;;;;;;;;;;;;;;22103:127;;22152:19;;;;;;;;;;;:28;;;22181:6;22189:9;:17;22199:6;22189:17;;;;;;;;;;;;;;;;22152:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22148:71;;;;;;22103:127;22246:16;:27;22263:9;22246:27;;;;;;;;;;;;;;;;;;;;;;;;;22242:137;;22294:19;;;;;;;;;;;:28;;;22323:9;22334;:20;22344:9;22334:20;;;;;;;;;;;;;;;;22294:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22290:77;;;;;;22242:137;22395:19;;;;;;;;;;;:27;;;22423:14;;22395:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22391:59;;;;;;22484:9;22467:40;;22476:6;22467:40;;;22495:11;22467:40;;;;;;;;;;;;;;;;;;22525:4;22518:11;;;20243:2294;;;;;;:::o;356:136::-;414:7;441:43;445:1;448;441:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;434:50;;356:136;;;;:::o;1070:189::-;1156:7;1188:1;1184;:5;1191:12;1176:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:9;1231:1;1227;:5;;;;;;1215:17;;1250:1;1243:8;;;1070:189;;;;;:::o;22549:330::-;22642:4;22679:53;22701:6;22679:53;;;;;;;;;;;;;;;;;:9;:17;22689:6;22679:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22659:9;:17;22669:6;22659:17;;;;;;;;;;;;;;;:73;;;;22766:32;22791:6;22766:9;:20;22776:9;22766:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22743:9;:20;22753:9;22743:20;;;;;;;;;;;;;;;:55;;;;22831:9;22814:35;;22823:6;22814:35;;;22842:6;22814:35;;;;;;;;;;;;;;;;;;22867:4;22860:11;;22549:330;;;;;:::o;23654:1848::-;13579:4;13560:16;;:23;;;;;;;;;;;;;;;;;;23716::::1;23742:9;:24;23760:4;23742:24;;;;;;;;;;;;;;;;23716:50;;23777:23;23803:54;23855:1;23803:47;23841:8;;23803:33;23823:12;;23803:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;23777:80;;23868:20;23891:36;23911:15;23891;:19;;:36;;;;:::i;:::-;23868:59;;23940:21;23978:1;23964:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23940:40;;24009:4;23991;23996:1;23991:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;24035:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;24025:4;24030:1;24025:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;24061:6;;;;;;;;;;;:57;;;24133:12;24160:1;24176:4;24203;24223:15;24061:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24262:17;24282:21;24262:41;;24316:19;24338:33;24351:19;24368:1;24351:12;;:16;;:19;;;;:::i;:::-;24338:8;;:12;;:33;;;;:::i;:::-;24316:55;;24392:26;24421:51;24470:1;24421:44;24453:11;24421:27;24435:12;;24421:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;24392:80;;24483:27;24513:42;24543:11;24513:25;24527:10;;24513:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;24483:72;;24566:26;24595:44;24627:11;24595:27;24609:12;;24595:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;24566:73;;24650:24;24677:42;24707:11;24677:25;24691:10;;24677:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;24650:69;;24736:19;;;;;;;;;;;:27;;;24771:19;24736:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24732:73;;;;;;24818:15;24846;;;;;;;;;;;24838:29;;24875:18;24900:5;24838:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24817:93;;;24922:16;24951:13;;;;;;;;;;;24943:27;;24978:16;25001:5;24943:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24921:90;;;25085:5;25072:18;;25115:5;25101:19;;25154:1;25136:15;:19;25133:362;;;25171:6;;;;;;;;;;;:22;;;25201:18;25247:4;25271:15;25305:1;25325::::0;25345:21:::1;;;;;;;;;;;25385:15;25171:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25435:48;25447:18;25467:15;25435:48;;;;;;;;;;;;;;;;;;;;;;;;25133:362;13594:1;;;;;;;;;;;;13625:5:::0;13606:16;;:24;;;;;;;;;;;;;;;;;;23654:1848::o;16221:90::-;16264:4;16302:1;16288:10;;:15;;16281:22;;16221:90;:::o;16535:71::-;16586:12;16573:10;:25;;;;16535:71::o;22887:439::-;22973:7;23003:21;23035:9;23027:17;;:4;;;;;;;;;;;:17;;;:48;;23067:8;;23027:48;;;23047:17;;23027:48;23003:72;;23086:17;23106:34;23136:3;23106:25;23117:13;23106:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23086:54;;23180:39;23209:9;23180;:24;23198:4;23180:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23153:9;:24;23171:4;23153:24;;;;;;;;;;;;;;;:66;;;;23260:4;23235:42;;23244:6;23235:42;;;23267:9;23235:42;;;;;;;;;;;;;;;;;;23297:21;23308:9;23297:6;:10;;:21;;;;:::i;:::-;23290:28;;;;22887:439;;;;;:::o
Swarm Source
ipfs://6fd4f64da033e9f009b9716a1bb8a430601dd7c5698a04576f9214a76e025d2b
[ 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.