ETH Price: $2,698.95 (-0.03%)

Token

Shibs Ark (Shark)
 

Overview

Max Total Supply

1,000,000,000 Shark

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
999.89991001 Shark

Value
$0.00
0x713E958f4499198B2d3692D28121DD82fD3CC8ef
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:
Shark

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-01
*/

//SPDX-License-Identifier: MIT

/*

"may you have fair winds and following seas"

https://shibsark.com

https://t.me/shibsark

0x56f24bb3e12D919bb44F6A519e2bfa37ea185955 - GO CHECK IT

*/



pragma solidity 0.8.17;

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 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 creatorOwner) { _owner = creatorOwner; }
	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 Shark is IERC20, Auth {
	uint8 private constant _decimals      = 9;
	uint256 private constant _totalSupply = 1_000_000_000 * (10**_decimals);
	string private constant _name         = "Shibs Ark";
	string private constant _symbol       = "Shark";

	uint8 private _buyTaxRate  = 10;
	uint8 private _sellTaxRate = 5;

	uint16 private _taxSharesMarketing   = 8;
	uint16 private _taxSharesDevelopment = 2;
	uint16 private _taxSharesBurn        = 0;
	uint16 private _taxSharesLP          = 0;
	uint16 private _totalTaxShares = _taxSharesMarketing + _taxSharesDevelopment + _taxSharesBurn + _taxSharesLP;

	address payable private _walletMarketing = payable(0x4Cc924197225589B8dDD8Cce291d0f4b0D639743); 
	address payable private _walletDevelopment = payable(0x7819524A0078548F1a682d235C56F8db3442506A); 

	uint256 private _maxTxAmount     = _totalSupply; 
	uint256 private _maxWalletAmount = _totalSupply;
	uint256 private _taxSwapMin = _totalSupply * 10 / 100000;
	uint256 private _taxSwapMax = _totalSupply * 115 / 100000;

	mapping (address => uint256) private _balances;
	mapping (address => mapping (address => uint256)) private _allowances;
	mapping (address => bool) private _noFees;
	mapping (address => bool) private _noLimits;

	address constant private _burnWallet = address(0);
	address private _lpOwner;

	address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //uniswap v2 router
	IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
	address private _primaryLP;
	mapping (address => bool) private _isLP;

	bool private _tradingOpen;

	bool private _inTaxSwap = false;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);
	event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

	constructor() Auth(msg.sender) {
		_lpOwner = msg.sender;

		_balances[_owner] = _totalSupply - _balances[address(this)];
		emit Transfer(address(0), _owner, _balances[_owner]);

		_noFees[_owner] = true;
		_noFees[address(this)] = true;
		_noFees[_swapRouterAddress] = true;
		_noFees[_walletMarketing] = true;
		_noFees[_walletDevelopment] = true;
		_noFees[_burnWallet] = true;
		_noLimits[_owner] = true;
		_noLimits[address(this)] = true;
		_noLimits[_swapRouterAddress] = true;
		_noLimits[_walletMarketing] = true;
		_noLimits[_walletDevelopment] = true;
		_noLimits[_burnWallet] = true;	
	}

	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external pure override returns (string memory) { return _symbol; }
	function name() external pure override returns (string memory) { return _name; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function approve(address spender, uint256 amount) public override returns (bool) {
		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

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

	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
		require(_checkTradingOpen(sender), "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 openTrading() external onlyOwner {
		require(!_tradingOpen, "trading already open");
		_openTrading();
	}

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

	function addInitialLiquidity() external onlyOwner lockTaxSwap {
		require(_primaryLP == address(0), "LP exists");
		require(address(this).balance>0, "No ETH in contract");
		require(_balances[address(this)]>0, "No tokens in contract");
		_primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
		_addLiquidity(_balances[address(this)], address(this).balance, false);
		_isLP[_primaryLP] = true;
	}

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

	function _openTrading() internal {
		_maxTxAmount     = _totalSupply * 1 / 100; 
		_maxWalletAmount = _totalSupply * 1 / 100;
		_tradingOpen = true;
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		require(sender != address(0), "No transfers from Zero wallet");
		if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
		if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
		
		if ( sender != address(this) && recipient != address(this) && sender != _owner ) { require(_checkLimits(sender, 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 _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
		bool limitCheckPassed = true;
		if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
			if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
			else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
		}
		return limitCheckPassed;
	}

	function _checkTradingOpen(address sender) private view returns (bool){
		bool checkResult = false;
		if ( _tradingOpen ) { checkResult = true; } 
		else if (_noFees[sender] && _noLimits[sender]) { 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 ( _isLP[sender] ) { taxAmount = amount * _buyTaxRate / 100; }
		else if ( _isLP[recipient] ) { taxAmount = amount * _sellTaxRate / 100; }
		return taxAmount;
	}


	function getExemptions(address wallet) external view returns (bool noFees, bool noLimits) {
		return ( _noFees[wallet], _noLimits[wallet] );
	}
	function setExemptions(address wallet, bool noFees, bool noLimits) external onlyOwner {
		if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
		_noFees[ wallet ] = noFees;
		_noLimits[ wallet ] = noLimits;
	}
	function setExtraLP(address lpContractAddress, bool isLiquidityPool) external onlyOwner { 
		require(lpContractAddress != _primaryLP, "Cannot change the primary LP");
		_isLP[lpContractAddress] = isLiquidityPool; 
		if (isLiquidityPool) { 
			_noFees[lpContractAddress] = false; 
			_noLimits[lpContractAddress] = false; 
		}
	}
	function isLP(address wallet) external view returns (bool) {
		return _isLP[wallet];
	}

	function getTaxInfo() external view returns (uint8 buyTax, uint8 sellTax, uint16 sharesMarketing, uint16 sharesDevelopment, uint16 sharesLP, uint16 sharesTokenBurn ) {
		return ( _buyTaxRate, _sellTaxRate, _taxSharesMarketing, _taxSharesDevelopment, _taxSharesLP, _taxSharesBurn);
	}
	function setTaxRates(uint8 newBuyTax, uint8 newSellTax) external onlyOwner {
		require(newBuyTax + newSellTax <= 99, "Roundtrip too high");
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
	}  
	function setTaxDistribution(uint16 sharesTokenBurn, uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDevelopment) external onlyOwner {
		_taxSharesLP = sharesAutoLP;
		_taxSharesMarketing = sharesMarketing;
		_taxSharesDevelopment = sharesDevelopment;
		_totalTaxShares = sharesTokenBurn + sharesAutoLP + sharesMarketing + sharesDevelopment;
	}

	function getAddresses() external view returns (address owner, address primaryLP, address marketing, address development, address LPowner ) {
		return ( _owner, _primaryLP, _walletMarketing, _walletDevelopment, _lpOwner);
	}
	function setTaxWallets(address newMarketing, address newDevelopment, address newLpOwner) external onlyOwner {
		require(!_isLP[newMarketing] && !_isLP[newDevelopment] && !_isLP[newLpOwner], "LP cannot be tax wallet");
		_walletMarketing = payable(newMarketing);
		_walletDevelopment = payable(newDevelopment);
		_lpOwner = newLpOwner;
		_noFees[newMarketing] = true;
		_noFees[newDevelopment] = true;
		_noLimits[newMarketing] = true;
		_noLimits[newDevelopment] = true;
	}

	function getLimitsInfo() external view returns (uint256 maxTX, uint256 maxWallet, uint256 taxSwapMin, uint256 taxSwapMax ) {
		return ( _maxTxAmount, _maxWalletAmount, _taxSwapMin, _taxSwapMax);
	}
	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 setTaxSwapLimits(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
		require(_taxSwapMax>=_taxSwapMin, "MinMax error");
		require(_taxSwapMax>_totalSupply / 100000, "Upper threshold too low");
		require(_taxSwapMax<_totalSupply / 100, "Upper threshold too high");
	}

	function _burnTokens(address fromWallet, uint256 amount) private {
		if ( amount > 0 ) {
			_balances[fromWallet] -= amount;
			_balances[_burnWallet] += amount;
			emit Transfer(fromWallet, _burnWallet, amount);
		}
	}

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

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

			uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
			uint256 _tokensToBurn = _taxTokensAvailable * _taxSharesBurn / _totalTaxShares;
			_burnTokens(address(this), _tokensToBurn);
			
			uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP - _tokensToBurn;
			if( _tokensToSwap > 10**_decimals ) {
				uint256 _ethPreSwap = address(this).balance;
				_swapTaxTokensForEth(_tokensToSwap);
				uint256 _ethSwapped = address(this).balance - _ethPreSwap;
				if ( _taxSharesLP > 0 ) {
					uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
					_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] = _primarySwapRouter.WETH();
		_primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
	}

	function _distributeTaxEth(uint256 amount) private {
		uint16 _taxShareTotal = _taxSharesMarketing + _taxSharesDevelopment;
		if (_taxShareTotal > 0) {
			uint256 marketingAmount = amount * _taxSharesMarketing / _taxShareTotal;
			uint256 developmentAmount = amount * _taxSharesDevelopment / _taxShareTotal;
			if ( marketingAmount > 0 ) { _walletMarketing.transfer(marketingAmount); }
			if ( developmentAmount > 0 ) { _walletDevelopment.transfer(developmentAmount); }
		}
	}

	function manualTaxSwapAndSend(bool swapTokens, bool sendEth) external onlyOwner {
		if (swapTokens) {
			uint256 taxTokenBalance = balanceOf(address(this));
			require(taxTokenBalance > 0, "No tokens");
			_swapTaxTokensForEth(taxTokenBalance);
		}
		if (sendEth) { 
			uint256 ethBalance = address(this).balance;
			require(ethBalance > 0, "No tokens");
			_distributeTaxEth(address(this).balance); 
		}
	}

	function burnTokens(uint256 amount) external {
		uint256 _tokensAvailable = balanceOf(msg.sender);
		require(amount <= _tokensAvailable, "Token balance too low");
		_burnTokens(msg.sender, amount);
		emit TokensBurned(msg.sender, amount);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addInitialLiquidity","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":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAddresses","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"primaryLP","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"development","type":"address"},{"internalType":"address","name":"LPowner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getExemptions","outputs":[{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLimitsInfo","outputs":[{"internalType":"uint256","name":"maxTX","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"taxSwapMin","type":"uint256"},{"internalType":"uint256","name":"taxSwapMax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxInfo","outputs":[{"internalType":"uint8","name":"buyTax","type":"uint8"},{"internalType":"uint8","name":"sellTax","type":"uint8"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"},{"internalType":"uint16","name":"sharesLP","type":"uint16"},{"internalType":"uint16","name":"sharesTokenBurn","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"swapTokens","type":"bool"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpContractAddress","type":"address"},{"internalType":"bool","name":"isLiquidityPool","type":"bool"}],"name":"setExtraLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesTokenBurn","type":"uint16"},{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"}],"name":"setTaxRates","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":"setTaxSwapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketing","type":"address"},{"internalType":"address","name":"newDevelopment","type":"address"},{"internalType":"address","name":"newLpOwner","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

6080604052600a600060146101000a81548160ff021916908360ff1602179055506005600060156101000a81548160ff021916908360ff1602179055506008600060166101000a81548161ffff021916908361ffff1602179055506002600060186101000a81548161ffff021916908361ffff160217905550600080601a6101000a81548161ffff021916908361ffff160217905550600080601c6101000a81548161ffff021916908361ffff1602179055506000601c9054906101000a900461ffff166000601a9054906101000a900461ffff16600060189054906101000a900461ffff16600060169054906101000a900461ffff1662000102919062000abb565b6200010e919062000abb565b6200011a919062000abb565b6000601e6101000a81548161ffff021916908361ffff160217905550734cc924197225589b8ddd8cce291d0f4b0d639743600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737819524a0078548f1a682d235c56f8db3442506a600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001f0919062000c63565b633b9aca0062000201919062000cb4565b6003556009600a62000214919062000c63565b633b9aca0062000225919062000cb4565b600455620186a0600a6009600a6200023e919062000c63565b633b9aca006200024f919062000cb4565b6200025b919062000cb4565b62000267919062000d2e565b600555620186a060736009600a62000280919062000c63565b633b9aca0062000291919062000cb4565b6200029d919062000cb4565b620002a9919062000d2e565b600655737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60016101000a81548160ff0219169083151502179055503480156200032957600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a620003fd919062000c63565b633b9aca006200040e919062000cb4565b6200041a919062000d66565b600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200055e919062000db2565b60405180910390a36001600960008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000dcf565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ac88262000a7e565b915062000ad58362000a7e565b9250828201905061ffff81111562000af25762000af162000a8c565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562000b575780860481111562000b2f5762000b2e62000a8c565b5b600185161562000b3f5780820291505b808102905062000b4f8562000af8565b945062000b0f565b94509492505050565b60008262000b72576001905062000c45565b8162000b82576000905062000c45565b816001811462000b9b576002811462000ba65762000bdc565b600191505062000c45565b60ff84111562000bbb5762000bba62000a8c565b5b8360020a91508482111562000bd55762000bd462000a8c565b5b5062000c45565b5060208310610133831016604e8410600b841016171562000c165782820a90508381111562000c105762000c0f62000a8c565b5b62000c45565b62000c25848484600162000b05565b9250905081840481111562000c3f5762000c3e62000a8c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c708262000c4c565b915062000c7d8362000c56565b925062000cac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b60565b905092915050565b600062000cc18262000c4c565b915062000cce8362000c4c565b925082820262000cde8162000c4c565b9150828204841483151762000cf85762000cf762000a8c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d3b8262000c4c565b915062000d488362000c4c565b92508262000d5b5762000d5a62000cff565b5b828204905092915050565b600062000d738262000c4c565b915062000d808362000c4c565b925082820390508181111562000d9b5762000d9a62000a8c565b5b92915050565b62000dac8162000c4c565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b614edb8062000ddf6000396000f3fe6080604052600436106101855760003560e01c8063931b68ea116100d1578063c9567bf91161008a578063e4dbc45b11610064578063e4dbc45b1461059a578063f2fde38b146105c3578063f9fdeae3146105ec578063fd965024146106155761018c565b8063c9567bf91461051d578063d6f155ad14610534578063dd62ed3e1461055d5761018c565b8063931b68ea146103f657806395d89b41146104345780639fda05811461045f578063a39fac1214610488578063a9059cbb146104b7578063b1421803146104f45761018c565b806322a62e1e1161013e5780636d1b229d116101185780636d1b229d146103255780636f013db91461034e57806370a082311461037c5780637df0f767146103b95761018c565b806322a62e1e1461028d57806323b872dd146102bd578063313ce567146102fa5761018c565b80630210a83d1461019157806306fdde03146101a8578063095ea7b3146101d357806318160ddd1461021057806318839bc31461023b57806321c42e11146102645761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063e565b005b3480156101b457600080fd5b506101bd610afd565b6040516101ca919061388e565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190613949565b610b3a565b60405161020791906139a4565b60405180910390f35b34801561021c57600080fd5b50610225610c2c565b60405161023291906139ce565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613a15565b610c50565b005b34801561027057600080fd5b5061028b60048036038101906102869190613a68565b610e2d565b005b34801561029957600080fd5b506102a261105d565b6040516102b496959493929190613ae1565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190613b42565b6110de565b6040516102f191906139a4565b60405180910390f35b34801561030657600080fd5b5061030f6112e8565b60405161031c9190613b95565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613bb0565b6112f1565b005b34801561035a57600080fd5b5061036361139d565b6040516103739493929190613bdd565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613c22565b6113bd565b6040516103b091906139ce565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190613c22565b611406565b6040516103ed91906139a4565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613c22565b61145c565b60405161042b929190613c4f565b60405180910390f35b34801561044057600080fd5b50610449611502565b604051610456919061388e565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190613c78565b61153f565b005b34801561049457600080fd5b5061049d61192e565b6040516104ae959493929190613cda565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613949565b6119f5565b6040516104eb91906139a4565b60405180910390f35b34801561050057600080fd5b5061051b60048036038101906105169190613d59565b611a52565b005b34801561052957600080fd5b50610532611c10565b005b34801561054057600080fd5b5061055b60048036038101906105569190613d99565b611cf8565b005b34801561056957600080fd5b50610584600480360381019061057f9190613dd9565b611e44565b60405161059191906139ce565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190613e55565b611ecb565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190613efa565b61210a565b005b3480156105f857600080fd5b50610613600480360381019061060e9190613f27565b612212565b005b34801561062157600080fd5b5061063c60048036038101906106379190613fba565b61233b565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c39061406c565b60405180910390fd5b6001600f60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f906140d8565b60405180910390fd5b600047116107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290614144565b60405180910390fd5b6000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906141b0565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906141e5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097b91906141e5565b6040518363ffffffff1660e01b8152600401610998929190614212565b6020604051808303816000875af11580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db91906141e5565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a66600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000612455565b6001600e6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f53686962732041726b0000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c1a91906139ce565b60405180910390a36001905092915050565b60006009600a610c3c919061439d565b633b9aca00610c4b91906143e8565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd59061406c565b60405180910390fd5b8080610ce75750815b15610d7a57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090614476565b60405180910390fd5b5b81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb29061406c565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906144e2565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611059576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600080600080600080600060149054906101000a900460ff16600060159054906101000a900460ff16600060169054906101000a900461ffff16600060189054906101000a900461ffff166000601c9054906101000a900461ffff166000601a9054906101000a900461ffff16955095509550955095509550909192939495565b60006110e984612543565b611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061454e565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112d45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611253919061456e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112df84848461261e565b90509392505050565b60006009905090565b60006112fc336113bd565b905080821115611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906145ee565b60405180910390fd5b61134b3383612b4d565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68360405161139191906139ce565b60405180910390a25050565b600080600080600354600454600554600654935093509350935090919293565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691509150915091565b60606040518060400160405280600581526020017f536861726b000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c49061406c565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116715750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116c75750600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd9061465a565b60405180910390fd5b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094509450945094509091929394565b6000611a0033612543565b611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a369061454e565b60405180910390fd5b611a4a33848461261e565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061406c565b60405180910390fd5b600060016103e88461ffff166009600a611afa919061439d565b633b9aca00611b0991906143e8565b611b1391906143e8565b611b1d91906146a9565b611b2791906146da565b9050600354811015611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061475a565b60405180910390fd5b80600381905550600060016103e88461ffff166009600a611b8f919061439d565b633b9aca00611b9e91906143e8565b611ba891906143e8565b611bb291906146a9565b611bbc91906146da565b9050600454811015611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa906147c6565b60405180910390fd5b8060048190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c959061406c565b60405180910390fd5b600f60009054906101000a900460ff1615611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590614832565b60405180910390fd5b611cf6612c6d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9061406c565b60405180910390fd5b8115611de7576000611d97306113bd565b905060008111611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd39061489e565b60405180910390fd5b611de581612d00565b505b8015611e4057600047905060008111611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c9061489e565b60405180910390fd5b611e3e47612f1f565b505b5050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f509061406c565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611f75919061439d565b633b9aca00611f8491906143e8565b611f8e91906143e8565b611f9891906146a9565b6005819055508063ffffffff168263ffffffff166009600a611fba919061439d565b633b9aca00611fc991906143e8565b611fd391906143e8565b611fdd91906146a9565b600681905550600554600654101561202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061490a565b60405180910390fd5b620186a06009600a61203c919061439d565b633b9aca0061204b91906143e8565b61205591906146a9565b60065411612098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208f90614976565b60405180910390fd5b60646009600a6120a8919061439d565b633b9aca006120b791906143e8565b6120c191906146a9565b60065410612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906149e2565b60405180910390fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f9061406c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516122079190614a61565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122979061406c565b60405180910390fd5b826000601c6101000a81548161ffff021916908361ffff16021790555081600060166101000a81548161ffff021916908361ffff16021790555080600060186101000a81548161ffff021916908361ffff160217905550808284866123059190614a7c565b61230f9190614a7c565b6123199190614a7c565b6000601e6101000a81548161ffff021916908361ffff16021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c09061406c565b60405180910390fd5b606381836123d79190614ab2565b60ff16111561241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241290614b33565b60405180910390fd5b81600060146101000a81548160ff021916908360ff16021790555080600060156101000a81548160ff021916908360ff1602179055505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561248757600090505b612490846130ae565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016124f796959493929190614b8e565b60606040518083038185885af1158015612515573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061253a9190614c04565b50505050505050565b60008060009050600f60009054906101000a900460ff16156125685760019050612615565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561260a5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561261457600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268590614ca3565b60405180910390fd5b600f60009054906101000a900460ff1661278457600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127445750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a9061454e565b60405180910390fd5b5b600f60019054906101000a900460ff161580156127ea5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127f8576127f7613298565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561286057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128b8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612908576128c884848461348e565b612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fe90614d0f565b60405180910390fd5b5b6000612915858585613625565b905060008184612925919061456e565b905083600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612972919061456e565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612a4d5781600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0991906146da565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9891906146da565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b3891906139ce565b60405180910390a36001925050509392505050565b6000811115612c695780600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ba5919061456e565b9250508190555080600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bfb91906146da565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c6091906139ce565b60405180910390a35b5050565b606460016009600a612c7f919061439d565b633b9aca00612c8e91906143e8565b612c9891906143e8565b612ca291906146a9565b600381905550606460016009600a612cba919061439d565b633b9aca00612cc991906143e8565b612cd391906143e8565b612cdd91906146a9565b6004819055506001600f60006101000a81548160ff021916908315150217905550565b612d09816130ae565b6000600267ffffffffffffffff811115612d2657612d25614d2f565b5b604051908082528060200260200182016040528015612d545781602001602082028036833780820191505090505b5090503081600081518110612d6c57612d6b614d5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3791906141e5565b81600181518110612e4b57612e4a614d5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ee9959493929190614e4b565b600060405180830381600087803b158015612f0357600080fd5b505af1158015612f17573d6000803e3d6000fd5b505050505050565b60008060189054906101000a900461ffff16600060169054906101000a900461ffff16612f4c9190614a7c565b905060008161ffff1611156130aa5760008161ffff16600060169054906101000a900461ffff1661ffff1684612f8291906143e8565b612f8c91906146a9565b905060008261ffff16600060189054906101000a900461ffff1661ffff1685612fb591906143e8565b612fbf91906146a9565b9050600082111561303457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613032573d6000803e3d6000fd5b505b60008111156130a757600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130a5573d6000803e3d6000fd5b505b50505b5050565b80600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161328c91906139ce565b60405180910390a35b50565b6001600f60016101000a81548160ff02191690831515021790555060006132be306113bd565b905060055481101580156132de5750600f60009054906101000a900460ff165b156134705760065481106132f25760065490505b600060026000601e9054906101000a900461ffff1661ffff166000601c9054906101000a900461ffff1661ffff168461332b91906143e8565b61333591906146a9565b61333f91906146a9565b9050600080601e9054906101000a900461ffff1661ffff166000601a9054906101000a900461ffff1661ffff168461337791906143e8565b61338191906146a9565b905061338d3082612b4d565b600081838561339c919061456e565b6133a6919061456e565b90506009600a6133b6919061439d565b8111156134535760004790506133cb82612d00565b600081476133d9919061456e565b9050600080601c9054906101000a900461ffff1661ffff16111561345057600080601e9054906101000a900461ffff1661ffff166000601c9054906101000a900461ffff1661ffff168361342d91906143e8565b61343791906146a9565b9050613442866130ae565b61344e86826000612455565b505b50505b6000479050600081111561346b5761346a81612f1f565b5b505050505b506000600f60016101000a81548160ff021916908315150217905550565b60008060019050600f60009054906101000a900460ff1680156134fb5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135515750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561361a576003548311156135695760009050613619565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561360e575060045483600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461360c91906146da565b115b1561361857600090505b5b5b809150509392505050565b600080600f60009054906101000a900460ff16158061368d5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806136e15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136ef57600090506137f3565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613772576064600060149054906101000a900460ff1660ff168461376191906143e8565b61376b91906146a9565b90506137f2565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137f1576064600060159054906101000a900460ff1660ff16846137e491906143e8565b6137ee91906146a9565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561383857808201518184015260208101905061381d565b60008484015250505050565b6000601f19601f8301169050919050565b6000613860826137fe565b61386a8185613809565b935061387a81856020860161381a565b61388381613844565b840191505092915050565b600060208201905081810360008301526138a88184613855565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e0826138b5565b9050919050565b6138f0816138d5565b81146138fb57600080fd5b50565b60008135905061390d816138e7565b92915050565b6000819050919050565b61392681613913565b811461393157600080fd5b50565b6000813590506139438161391d565b92915050565b600080604083850312156139605761395f6138b0565b5b600061396e858286016138fe565b925050602061397f85828601613934565b9150509250929050565b60008115159050919050565b61399e81613989565b82525050565b60006020820190506139b96000830184613995565b92915050565b6139c881613913565b82525050565b60006020820190506139e360008301846139bf565b92915050565b6139f281613989565b81146139fd57600080fd5b50565b600081359050613a0f816139e9565b92915050565b600080600060608486031215613a2e57613a2d6138b0565b5b6000613a3c868287016138fe565b9350506020613a4d86828701613a00565b9250506040613a5e86828701613a00565b9150509250925092565b60008060408385031215613a7f57613a7e6138b0565b5b6000613a8d858286016138fe565b9250506020613a9e85828601613a00565b9150509250929050565b600060ff82169050919050565b613abe81613aa8565b82525050565b600061ffff82169050919050565b613adb81613ac4565b82525050565b600060c082019050613af66000830189613ab5565b613b036020830188613ab5565b613b106040830187613ad2565b613b1d6060830186613ad2565b613b2a6080830185613ad2565b613b3760a0830184613ad2565b979650505050505050565b600080600060608486031215613b5b57613b5a6138b0565b5b6000613b69868287016138fe565b9350506020613b7a868287016138fe565b9250506040613b8b86828701613934565b9150509250925092565b6000602082019050613baa6000830184613ab5565b92915050565b600060208284031215613bc657613bc56138b0565b5b6000613bd484828501613934565b91505092915050565b6000608082019050613bf260008301876139bf565b613bff60208301866139bf565b613c0c60408301856139bf565b613c1960608301846139bf565b95945050505050565b600060208284031215613c3857613c376138b0565b5b6000613c46848285016138fe565b91505092915050565b6000604082019050613c646000830185613995565b613c716020830184613995565b9392505050565b600080600060608486031215613c9157613c906138b0565b5b6000613c9f868287016138fe565b9350506020613cb0868287016138fe565b9250506040613cc1868287016138fe565b9150509250925092565b613cd4816138d5565b82525050565b600060a082019050613cef6000830188613ccb565b613cfc6020830187613ccb565b613d096040830186613ccb565b613d166060830185613ccb565b613d236080830184613ccb565b9695505050505050565b613d3681613ac4565b8114613d4157600080fd5b50565b600081359050613d5381613d2d565b92915050565b60008060408385031215613d7057613d6f6138b0565b5b6000613d7e85828601613d44565b9250506020613d8f85828601613d44565b9150509250929050565b60008060408385031215613db057613daf6138b0565b5b6000613dbe85828601613a00565b9250506020613dcf85828601613a00565b9150509250929050565b60008060408385031215613df057613def6138b0565b5b6000613dfe858286016138fe565b9250506020613e0f858286016138fe565b9150509250929050565b600063ffffffff82169050919050565b613e3281613e19565b8114613e3d57600080fd5b50565b600081359050613e4f81613e29565b92915050565b60008060008060808587031215613e6f57613e6e6138b0565b5b6000613e7d87828801613e40565b9450506020613e8e87828801613e40565b9350506040613e9f87828801613e40565b9250506060613eb087828801613e40565b91505092959194509250565b6000613ec7826138b5565b9050919050565b613ed781613ebc565b8114613ee257600080fd5b50565b600081359050613ef481613ece565b92915050565b600060208284031215613f1057613f0f6138b0565b5b6000613f1e84828501613ee5565b91505092915050565b60008060008060808587031215613f4157613f406138b0565b5b6000613f4f87828801613d44565b9450506020613f6087828801613d44565b9350506040613f7187828801613d44565b9250506060613f8287828801613d44565b91505092959194509250565b613f9781613aa8565b8114613fa257600080fd5b50565b600081359050613fb481613f8e565b92915050565b60008060408385031215613fd157613fd06138b0565b5b6000613fdf85828601613fa5565b9250506020613ff085828601613fa5565b9150509250929050565b7f4f6e6c7920636f6e7472616374205f6f776e65722063616e2063616c6c20746860008201527f69732066756e6374696f6e000000000000000000000000000000000000000000602082015250565b6000614056602b83613809565b915061406182613ffa565b604082019050919050565b6000602082019050818103600083015261408581614049565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b60006140c2600983613809565b91506140cd8261408c565b602082019050919050565b600060208201905081810360008301526140f1816140b5565b9050919050565b7f4e6f2045544820696e20636f6e74726163740000000000000000000000000000600082015250565b600061412e601283613809565b9150614139826140f8565b602082019050919050565b6000602082019050818103600083015261415d81614121565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b600061419a601583613809565b91506141a582614164565b602082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b6000815190506141df816138e7565b92915050565b6000602082840312156141fb576141fa6138b0565b5b6000614209848285016141d0565b91505092915050565b60006040820190506142276000830185613ccb565b6142346020830184613ccb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156142c15780860481111561429d5761429c61423b565b5b60018516156142ac5780820291505b80810290506142ba8561426a565b9450614281565b94509492505050565b6000826142da5760019050614396565b816142e85760009050614396565b81600181146142fe576002811461430857614337565b6001915050614396565b60ff84111561431a5761431961423b565b5b8360020a9150848211156143315761433061423b565b5b50614396565b5060208310610133831016604e8410600b841016171561436c5782820a9050838111156143675761436661423b565b5b614396565b6143798484846001614277565b925090508184048111156143905761438f61423b565b5b81810290505b9392505050565b60006143a882613913565b91506143b383613aa8565b92506143e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846142ca565b905092915050565b60006143f382613913565b91506143fe83613913565b925082820261440c81613913565b915082820484148315176144235761442261423b565b5b5092915050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b6000614460601083613809565b915061446b8261442a565b602082019050919050565b6000602082019050818103600083015261448f81614453565b9050919050565b7f43616e6e6f74206368616e676520746865207072696d617279204c5000000000600082015250565b60006144cc601c83613809565b91506144d782614496565b602082019050919050565b600060208201905081810360008301526144fb816144bf565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614538601083613809565b915061454382614502565b602082019050919050565b600060208201905081810360008301526145678161452b565b9050919050565b600061457982613913565b915061458483613913565b925082820390508181111561459c5761459b61423b565b5b92915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006145d8601583613809565b91506145e3826145a2565b602082019050919050565b60006020820190508181036000830152614607816145cb565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b6000614644601783613809565b915061464f8261460e565b602082019050919050565b6000602082019050818103600083015261467381614637565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146b482613913565b91506146bf83613913565b9250826146cf576146ce61467a565b5b828204905092915050565b60006146e582613913565b91506146f083613913565b92508282019050808211156147085761470761423b565b5b92915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614744601083613809565b915061474f8261470e565b602082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006147b0601483613809565b91506147bb8261477a565b602082019050919050565b600060208201905081810360008301526147df816147a3565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061481c601483613809565b9150614827826147e6565b602082019050919050565b6000602082019050818103600083015261484b8161480f565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614888600983613809565b915061489382614852565b602082019050919050565b600060208201905081810360008301526148b78161487b565b9050919050565b7f4d696e4d6178206572726f720000000000000000000000000000000000000000600082015250565b60006148f4600c83613809565b91506148ff826148be565b602082019050919050565b60006020820190508181036000830152614923816148e7565b9050919050565b7f5570706572207468726573686f6c6420746f6f206c6f77000000000000000000600082015250565b6000614960601783613809565b915061496b8261492a565b602082019050919050565b6000602082019050818103600083015261498f81614953565b9050919050565b7f5570706572207468726573686f6c6420746f6f20686967680000000000000000600082015250565b60006149cc601883613809565b91506149d782614996565b602082019050919050565b600060208201905081810360008301526149fb816149bf565b9050919050565b6000819050919050565b6000614a27614a22614a1d846138b5565b614a02565b6138b5565b9050919050565b6000614a3982614a0c565b9050919050565b6000614a4b82614a2e565b9050919050565b614a5b81614a40565b82525050565b6000602082019050614a766000830184614a52565b92915050565b6000614a8782613ac4565b9150614a9283613ac4565b9250828201905061ffff811115614aac57614aab61423b565b5b92915050565b6000614abd82613aa8565b9150614ac883613aa8565b9250828201905060ff811115614ae157614ae061423b565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b6000614b1d601283613809565b9150614b2882614ae7565b602082019050919050565b60006020820190508181036000830152614b4c81614b10565b9050919050565b6000819050919050565b6000614b78614b73614b6e84614b53565b614a02565b613913565b9050919050565b614b8881614b5d565b82525050565b600060c082019050614ba36000830189613ccb565b614bb060208301886139bf565b614bbd6040830187614b7f565b614bca6060830186614b7f565b614bd76080830185613ccb565b614be460a08301846139bf565b979650505050505050565b600081519050614bfe8161391d565b92915050565b600080600060608486031215614c1d57614c1c6138b0565b5b6000614c2b86828701614bef565b9350506020614c3c86828701614bef565b9250506040614c4d86828701614bef565b9150509250925092565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614c8d601d83613809565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614cf9601183613809565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dc2816138d5565b82525050565b6000614dd48383614db9565b60208301905092915050565b6000602082019050919050565b6000614df882614d8d565b614e028185614d98565b9350614e0d83614da9565b8060005b83811015614e3e578151614e258882614dc8565b9750614e3083614de0565b925050600181019050614e11565b5085935050505092915050565b600060a082019050614e6060008301886139bf565b614e6d6020830187614b7f565b8181036040830152614e7f8186614ded565b9050614e8e6060830185613ccb565b614e9b60808301846139bf565b969550505050505056fea2646970667358221220997abb80b495ac90beacfdfdfadd41558eb3361071a6cb44b26e0b77576b8ff364736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063931b68ea116100d1578063c9567bf91161008a578063e4dbc45b11610064578063e4dbc45b1461059a578063f2fde38b146105c3578063f9fdeae3146105ec578063fd965024146106155761018c565b8063c9567bf91461051d578063d6f155ad14610534578063dd62ed3e1461055d5761018c565b8063931b68ea146103f657806395d89b41146104345780639fda05811461045f578063a39fac1214610488578063a9059cbb146104b7578063b1421803146104f45761018c565b806322a62e1e1161013e5780636d1b229d116101185780636d1b229d146103255780636f013db91461034e57806370a082311461037c5780637df0f767146103b95761018c565b806322a62e1e1461028d57806323b872dd146102bd578063313ce567146102fa5761018c565b80630210a83d1461019157806306fdde03146101a8578063095ea7b3146101d357806318160ddd1461021057806318839bc31461023b57806321c42e11146102645761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063e565b005b3480156101b457600080fd5b506101bd610afd565b6040516101ca919061388e565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190613949565b610b3a565b60405161020791906139a4565b60405180910390f35b34801561021c57600080fd5b50610225610c2c565b60405161023291906139ce565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613a15565b610c50565b005b34801561027057600080fd5b5061028b60048036038101906102869190613a68565b610e2d565b005b34801561029957600080fd5b506102a261105d565b6040516102b496959493929190613ae1565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190613b42565b6110de565b6040516102f191906139a4565b60405180910390f35b34801561030657600080fd5b5061030f6112e8565b60405161031c9190613b95565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613bb0565b6112f1565b005b34801561035a57600080fd5b5061036361139d565b6040516103739493929190613bdd565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190613c22565b6113bd565b6040516103b091906139ce565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190613c22565b611406565b6040516103ed91906139a4565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613c22565b61145c565b60405161042b929190613c4f565b60405180910390f35b34801561044057600080fd5b50610449611502565b604051610456919061388e565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190613c78565b61153f565b005b34801561049457600080fd5b5061049d61192e565b6040516104ae959493929190613cda565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613949565b6119f5565b6040516104eb91906139a4565b60405180910390f35b34801561050057600080fd5b5061051b60048036038101906105169190613d59565b611a52565b005b34801561052957600080fd5b50610532611c10565b005b34801561054057600080fd5b5061055b60048036038101906105569190613d99565b611cf8565b005b34801561056957600080fd5b50610584600480360381019061057f9190613dd9565b611e44565b60405161059191906139ce565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190613e55565b611ecb565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190613efa565b61210a565b005b3480156105f857600080fd5b50610613600480360381019061060e9190613f27565b612212565b005b34801561062157600080fd5b5061063c60048036038101906106379190613fba565b61233b565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c39061406c565b60405180910390fd5b6001600f60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f906140d8565b60405180910390fd5b600047116107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290614144565b60405180910390fd5b6000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906141b0565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906141e5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097b91906141e5565b6040518363ffffffff1660e01b8152600401610998929190614212565b6020604051808303816000875af11580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db91906141e5565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a66600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000612455565b6001600e6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f53686962732041726b0000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c1a91906139ce565b60405180910390a36001905092915050565b60006009600a610c3c919061439d565b633b9aca00610c4b91906143e8565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd59061406c565b60405180910390fd5b8080610ce75750815b15610d7a57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090614476565b60405180910390fd5b5b81600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb29061406c565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906144e2565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611059576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600080600080600080600060149054906101000a900460ff16600060159054906101000a900460ff16600060169054906101000a900461ffff16600060189054906101000a900461ffff166000601c9054906101000a900461ffff166000601a9054906101000a900461ffff16955095509550955095509550909192939495565b60006110e984612543565b611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061454e565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112d45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611253919061456e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112df84848461261e565b90509392505050565b60006009905090565b60006112fc336113bd565b905080821115611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906145ee565b60405180910390fd5b61134b3383612b4d565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68360405161139191906139ce565b60405180910390a25050565b600080600080600354600454600554600654935093509350935090919293565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691509150915091565b60606040518060400160405280600581526020017f536861726b000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c49061406c565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116715750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116c75750600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd9061465a565b60405180910390fd5b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094509450945094509091929394565b6000611a0033612543565b611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a369061454e565b60405180910390fd5b611a4a33848461261e565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061406c565b60405180910390fd5b600060016103e88461ffff166009600a611afa919061439d565b633b9aca00611b0991906143e8565b611b1391906143e8565b611b1d91906146a9565b611b2791906146da565b9050600354811015611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061475a565b60405180910390fd5b80600381905550600060016103e88461ffff166009600a611b8f919061439d565b633b9aca00611b9e91906143e8565b611ba891906143e8565b611bb291906146a9565b611bbc91906146da565b9050600454811015611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa906147c6565b60405180910390fd5b8060048190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c959061406c565b60405180910390fd5b600f60009054906101000a900460ff1615611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590614832565b60405180910390fd5b611cf6612c6d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9061406c565b60405180910390fd5b8115611de7576000611d97306113bd565b905060008111611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd39061489e565b60405180910390fd5b611de581612d00565b505b8015611e4057600047905060008111611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c9061489e565b60405180910390fd5b611e3e47612f1f565b505b5050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f509061406c565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611f75919061439d565b633b9aca00611f8491906143e8565b611f8e91906143e8565b611f9891906146a9565b6005819055508063ffffffff168263ffffffff166009600a611fba919061439d565b633b9aca00611fc991906143e8565b611fd391906143e8565b611fdd91906146a9565b600681905550600554600654101561202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061490a565b60405180910390fd5b620186a06009600a61203c919061439d565b633b9aca0061204b91906143e8565b61205591906146a9565b60065411612098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208f90614976565b60405180910390fd5b60646009600a6120a8919061439d565b633b9aca006120b791906143e8565b6120c191906146a9565b60065410612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906149e2565b60405180910390fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f9061406c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516122079190614a61565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122979061406c565b60405180910390fd5b826000601c6101000a81548161ffff021916908361ffff16021790555081600060166101000a81548161ffff021916908361ffff16021790555080600060186101000a81548161ffff021916908361ffff160217905550808284866123059190614a7c565b61230f9190614a7c565b6123199190614a7c565b6000601e6101000a81548161ffff021916908361ffff16021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c09061406c565b60405180910390fd5b606381836123d79190614ab2565b60ff16111561241b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241290614b33565b60405180910390fd5b81600060146101000a81548160ff021916908360ff16021790555080600060156101000a81548160ff021916908360ff1602179055505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561248757600090505b612490846130ae565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016124f796959493929190614b8e565b60606040518083038185885af1158015612515573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061253a9190614c04565b50505050505050565b60008060009050600f60009054906101000a900460ff16156125685760019050612615565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561260a5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561261457600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268590614ca3565b60405180910390fd5b600f60009054906101000a900460ff1661278457600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127445750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a9061454e565b60405180910390fd5b5b600f60019054906101000a900460ff161580156127ea5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127f8576127f7613298565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561286057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128b8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612908576128c884848461348e565b612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fe90614d0f565b60405180910390fd5b5b6000612915858585613625565b905060008184612925919061456e565b905083600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612972919061456e565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612a4d5781600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0991906146da565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9891906146da565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b3891906139ce565b60405180910390a36001925050509392505050565b6000811115612c695780600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ba5919061456e565b9250508190555080600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bfb91906146da565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c6091906139ce565b60405180910390a35b5050565b606460016009600a612c7f919061439d565b633b9aca00612c8e91906143e8565b612c9891906143e8565b612ca291906146a9565b600381905550606460016009600a612cba919061439d565b633b9aca00612cc991906143e8565b612cd391906143e8565b612cdd91906146a9565b6004819055506001600f60006101000a81548160ff021916908315150217905550565b612d09816130ae565b6000600267ffffffffffffffff811115612d2657612d25614d2f565b5b604051908082528060200260200182016040528015612d545781602001602082028036833780820191505090505b5090503081600081518110612d6c57612d6b614d5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3791906141e5565b81600181518110612e4b57612e4a614d5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ee9959493929190614e4b565b600060405180830381600087803b158015612f0357600080fd5b505af1158015612f17573d6000803e3d6000fd5b505050505050565b60008060189054906101000a900461ffff16600060169054906101000a900461ffff16612f4c9190614a7c565b905060008161ffff1611156130aa5760008161ffff16600060169054906101000a900461ffff1661ffff1684612f8291906143e8565b612f8c91906146a9565b905060008261ffff16600060189054906101000a900461ffff1661ffff1685612fb591906143e8565b612fbf91906146a9565b9050600082111561303457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613032573d6000803e3d6000fd5b505b60008111156130a757600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130a5573d6000803e3d6000fd5b505b50505b5050565b80600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613295577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161328c91906139ce565b60405180910390a35b50565b6001600f60016101000a81548160ff02191690831515021790555060006132be306113bd565b905060055481101580156132de5750600f60009054906101000a900460ff165b156134705760065481106132f25760065490505b600060026000601e9054906101000a900461ffff1661ffff166000601c9054906101000a900461ffff1661ffff168461332b91906143e8565b61333591906146a9565b61333f91906146a9565b9050600080601e9054906101000a900461ffff1661ffff166000601a9054906101000a900461ffff1661ffff168461337791906143e8565b61338191906146a9565b905061338d3082612b4d565b600081838561339c919061456e565b6133a6919061456e565b90506009600a6133b6919061439d565b8111156134535760004790506133cb82612d00565b600081476133d9919061456e565b9050600080601c9054906101000a900461ffff1661ffff16111561345057600080601e9054906101000a900461ffff1661ffff166000601c9054906101000a900461ffff1661ffff168361342d91906143e8565b61343791906146a9565b9050613442866130ae565b61344e86826000612455565b505b50505b6000479050600081111561346b5761346a81612f1f565b5b505050505b506000600f60016101000a81548160ff021916908315150217905550565b60008060019050600f60009054906101000a900460ff1680156134fb5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135515750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561361a576003548311156135695760009050613619565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561360e575060045483600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461360c91906146da565b115b1561361857600090505b5b5b809150509392505050565b600080600f60009054906101000a900460ff16158061368d5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806136e15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136ef57600090506137f3565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613772576064600060149054906101000a900460ff1660ff168461376191906143e8565b61376b91906146a9565b90506137f2565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137f1576064600060159054906101000a900460ff1660ff16846137e491906143e8565b6137ee91906146a9565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561383857808201518184015260208101905061381d565b60008484015250505050565b6000601f19601f8301169050919050565b6000613860826137fe565b61386a8185613809565b935061387a81856020860161381a565b61388381613844565b840191505092915050565b600060208201905081810360008301526138a88184613855565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e0826138b5565b9050919050565b6138f0816138d5565b81146138fb57600080fd5b50565b60008135905061390d816138e7565b92915050565b6000819050919050565b61392681613913565b811461393157600080fd5b50565b6000813590506139438161391d565b92915050565b600080604083850312156139605761395f6138b0565b5b600061396e858286016138fe565b925050602061397f85828601613934565b9150509250929050565b60008115159050919050565b61399e81613989565b82525050565b60006020820190506139b96000830184613995565b92915050565b6139c881613913565b82525050565b60006020820190506139e360008301846139bf565b92915050565b6139f281613989565b81146139fd57600080fd5b50565b600081359050613a0f816139e9565b92915050565b600080600060608486031215613a2e57613a2d6138b0565b5b6000613a3c868287016138fe565b9350506020613a4d86828701613a00565b9250506040613a5e86828701613a00565b9150509250925092565b60008060408385031215613a7f57613a7e6138b0565b5b6000613a8d858286016138fe565b9250506020613a9e85828601613a00565b9150509250929050565b600060ff82169050919050565b613abe81613aa8565b82525050565b600061ffff82169050919050565b613adb81613ac4565b82525050565b600060c082019050613af66000830189613ab5565b613b036020830188613ab5565b613b106040830187613ad2565b613b1d6060830186613ad2565b613b2a6080830185613ad2565b613b3760a0830184613ad2565b979650505050505050565b600080600060608486031215613b5b57613b5a6138b0565b5b6000613b69868287016138fe565b9350506020613b7a868287016138fe565b9250506040613b8b86828701613934565b9150509250925092565b6000602082019050613baa6000830184613ab5565b92915050565b600060208284031215613bc657613bc56138b0565b5b6000613bd484828501613934565b91505092915050565b6000608082019050613bf260008301876139bf565b613bff60208301866139bf565b613c0c60408301856139bf565b613c1960608301846139bf565b95945050505050565b600060208284031215613c3857613c376138b0565b5b6000613c46848285016138fe565b91505092915050565b6000604082019050613c646000830185613995565b613c716020830184613995565b9392505050565b600080600060608486031215613c9157613c906138b0565b5b6000613c9f868287016138fe565b9350506020613cb0868287016138fe565b9250506040613cc1868287016138fe565b9150509250925092565b613cd4816138d5565b82525050565b600060a082019050613cef6000830188613ccb565b613cfc6020830187613ccb565b613d096040830186613ccb565b613d166060830185613ccb565b613d236080830184613ccb565b9695505050505050565b613d3681613ac4565b8114613d4157600080fd5b50565b600081359050613d5381613d2d565b92915050565b60008060408385031215613d7057613d6f6138b0565b5b6000613d7e85828601613d44565b9250506020613d8f85828601613d44565b9150509250929050565b60008060408385031215613db057613daf6138b0565b5b6000613dbe85828601613a00565b9250506020613dcf85828601613a00565b9150509250929050565b60008060408385031215613df057613def6138b0565b5b6000613dfe858286016138fe565b9250506020613e0f858286016138fe565b9150509250929050565b600063ffffffff82169050919050565b613e3281613e19565b8114613e3d57600080fd5b50565b600081359050613e4f81613e29565b92915050565b60008060008060808587031215613e6f57613e6e6138b0565b5b6000613e7d87828801613e40565b9450506020613e8e87828801613e40565b9350506040613e9f87828801613e40565b9250506060613eb087828801613e40565b91505092959194509250565b6000613ec7826138b5565b9050919050565b613ed781613ebc565b8114613ee257600080fd5b50565b600081359050613ef481613ece565b92915050565b600060208284031215613f1057613f0f6138b0565b5b6000613f1e84828501613ee5565b91505092915050565b60008060008060808587031215613f4157613f406138b0565b5b6000613f4f87828801613d44565b9450506020613f6087828801613d44565b9350506040613f7187828801613d44565b9250506060613f8287828801613d44565b91505092959194509250565b613f9781613aa8565b8114613fa257600080fd5b50565b600081359050613fb481613f8e565b92915050565b60008060408385031215613fd157613fd06138b0565b5b6000613fdf85828601613fa5565b9250506020613ff085828601613fa5565b9150509250929050565b7f4f6e6c7920636f6e7472616374205f6f776e65722063616e2063616c6c20746860008201527f69732066756e6374696f6e000000000000000000000000000000000000000000602082015250565b6000614056602b83613809565b915061406182613ffa565b604082019050919050565b6000602082019050818103600083015261408581614049565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b60006140c2600983613809565b91506140cd8261408c565b602082019050919050565b600060208201905081810360008301526140f1816140b5565b9050919050565b7f4e6f2045544820696e20636f6e74726163740000000000000000000000000000600082015250565b600061412e601283613809565b9150614139826140f8565b602082019050919050565b6000602082019050818103600083015261415d81614121565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b600061419a601583613809565b91506141a582614164565b602082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b6000815190506141df816138e7565b92915050565b6000602082840312156141fb576141fa6138b0565b5b6000614209848285016141d0565b91505092915050565b60006040820190506142276000830185613ccb565b6142346020830184613ccb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156142c15780860481111561429d5761429c61423b565b5b60018516156142ac5780820291505b80810290506142ba8561426a565b9450614281565b94509492505050565b6000826142da5760019050614396565b816142e85760009050614396565b81600181146142fe576002811461430857614337565b6001915050614396565b60ff84111561431a5761431961423b565b5b8360020a9150848211156143315761433061423b565b5b50614396565b5060208310610133831016604e8410600b841016171561436c5782820a9050838111156143675761436661423b565b5b614396565b6143798484846001614277565b925090508184048111156143905761438f61423b565b5b81810290505b9392505050565b60006143a882613913565b91506143b383613aa8565b92506143e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846142ca565b905092915050565b60006143f382613913565b91506143fe83613913565b925082820261440c81613913565b915082820484148315176144235761442261423b565b5b5092915050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b6000614460601083613809565b915061446b8261442a565b602082019050919050565b6000602082019050818103600083015261448f81614453565b9050919050565b7f43616e6e6f74206368616e676520746865207072696d617279204c5000000000600082015250565b60006144cc601c83613809565b91506144d782614496565b602082019050919050565b600060208201905081810360008301526144fb816144bf565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614538601083613809565b915061454382614502565b602082019050919050565b600060208201905081810360008301526145678161452b565b9050919050565b600061457982613913565b915061458483613913565b925082820390508181111561459c5761459b61423b565b5b92915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006145d8601583613809565b91506145e3826145a2565b602082019050919050565b60006020820190508181036000830152614607816145cb565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b6000614644601783613809565b915061464f8261460e565b602082019050919050565b6000602082019050818103600083015261467381614637565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146b482613913565b91506146bf83613913565b9250826146cf576146ce61467a565b5b828204905092915050565b60006146e582613913565b91506146f083613913565b92508282019050808211156147085761470761423b565b5b92915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000614744601083613809565b915061474f8261470e565b602082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006147b0601483613809565b91506147bb8261477a565b602082019050919050565b600060208201905081810360008301526147df816147a3565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061481c601483613809565b9150614827826147e6565b602082019050919050565b6000602082019050818103600083015261484b8161480f565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614888600983613809565b915061489382614852565b602082019050919050565b600060208201905081810360008301526148b78161487b565b9050919050565b7f4d696e4d6178206572726f720000000000000000000000000000000000000000600082015250565b60006148f4600c83613809565b91506148ff826148be565b602082019050919050565b60006020820190508181036000830152614923816148e7565b9050919050565b7f5570706572207468726573686f6c6420746f6f206c6f77000000000000000000600082015250565b6000614960601783613809565b915061496b8261492a565b602082019050919050565b6000602082019050818103600083015261498f81614953565b9050919050565b7f5570706572207468726573686f6c6420746f6f20686967680000000000000000600082015250565b60006149cc601883613809565b91506149d782614996565b602082019050919050565b600060208201905081810360008301526149fb816149bf565b9050919050565b6000819050919050565b6000614a27614a22614a1d846138b5565b614a02565b6138b5565b9050919050565b6000614a3982614a0c565b9050919050565b6000614a4b82614a2e565b9050919050565b614a5b81614a40565b82525050565b6000602082019050614a766000830184614a52565b92915050565b6000614a8782613ac4565b9150614a9283613ac4565b9250828201905061ffff811115614aac57614aab61423b565b5b92915050565b6000614abd82613aa8565b9150614ac883613aa8565b9250828201905060ff811115614ae157614ae061423b565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b6000614b1d601283613809565b9150614b2882614ae7565b602082019050919050565b60006020820190508181036000830152614b4c81614b10565b9050919050565b6000819050919050565b6000614b78614b73614b6e84614b53565b614a02565b613913565b9050919050565b614b8881614b5d565b82525050565b600060c082019050614ba36000830189613ccb565b614bb060208301886139bf565b614bbd6040830187614b7f565b614bca6060830186614b7f565b614bd76080830185613ccb565b614be460a08301846139bf565b979650505050505050565b600081519050614bfe8161391d565b92915050565b600080600060608486031215614c1d57614c1c6138b0565b5b6000614c2b86828701614bef565b9350506020614c3c86828701614bef565b9250506040614c4d86828701614bef565b9150509250925092565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614c8d601d83613809565b9150614c9882614c57565b602082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614cf9601183613809565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614dc2816138d5565b82525050565b6000614dd48383614db9565b60208301905092915050565b6000602082019050919050565b6000614df882614d8d565b614e028185614d98565b9350614e0d83614da9565b8060005b83811015614e3e578151614e258882614dc8565b9750614e3083614de0565b925050600181019050614e11565b5085935050505092915050565b600060a082019050614e6060008301886139bf565b614e6d6020830187614b7f565b8181036040830152614e7f8186614ded565b9050614e8e6060830185613ccb565b614e9b60808301846139bf565b969550505050505056fea2646970667358221220997abb80b495ac90beacfdfdfadd41558eb3361071a6cb44b26e0b77576b8ff364736f6c63430008110033

Deployed Bytecode Sourcemap

2097:13664:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6463:463;;;;;;;;;;;;;:::i;:::-;;4935:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5264:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4674:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9597:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9833:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10265:285;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;5679:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15512:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11838:199;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5018:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10171:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9449:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4848:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11351:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11123:225;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;5464:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12040:430;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6052:117;;;;;;;;;;;;;:::i;:::-;;15089:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5126:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12473:432;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1284:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10760:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10553:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6463:463;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;3837:4:::1;3824:10;;:17;;;;;;;;;;;;;;;;;;6560:1:::2;6538:24;;:10;;;;;;;;;;;:24;;;6530:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6611:1;6589:21;:23;6581:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6673:1;6648:9;:24;6666:4;6648:24;;;;;;;;;;;;;;;;:26;6640:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6736:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6718:58;;;6785:4;6792:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6718:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6705:10;;:113;;;;;;;;;;;;;;;;;;6823:69;6837:9;:24;6855:4;6837:24;;;;;;;;;;;;;;;;6863:21;6886:5;6823:13;:69::i;:::-;6917:4;6897:5;:17;6903:10;;;;;;;;;;;6897:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3859:5:::1;3846:10;;:18;;;;;;;;;;;;;;;;;;6463:463::o:0;4935:80::-;4983:13;5007:5;;;;;;;;;;;;;;;;;5000:12;;4935:80;:::o;5264:195::-;5339:4;5385:6;5350:11;:23;5362:10;5350:23;;;;;;;;;;;;;;;:32;5374:7;5350:32;;;;;;;;;;;;;;;:41;;;;5422:7;5401:37;;5410:10;5401:37;;;5431:6;5401:37;;;;;;:::i;:::-;;;;;;;;5450:4;5443:11;;5264:195;;;;:::o;4674:88::-;4729:7;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;4740:19;;4674:88;:::o;9597:233::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9692:8:::1;:18;;;;9704:6;9692:18;9688:72;;;9723:5;:13;9729:6;9723:13;;;;;;;;;;;;;;;;;;;;;;;;;9722:14;9714:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;9688:72;9784:6;9764:7;:17;9773:6;9764:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9817:8;9795:9;:19;9806:6;9795:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9597:233:::0;;;:::o;9833:335::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9956:10:::1;;;;;;;;;;;9935:31;;:17;:31;;::::0;9927:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10031:15;10004:5;:24;10010:17;10004:24;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;10056:15;10052:112;;;10109:5;10080:7;:26;10088:17;10080:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10152:5;10121:9;:28;10131:17;10121:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10052:112;9833:335:::0;;:::o;10265:285::-;10310:12;10324:13;10339:22;10363:24;10389:15;10406:22;10445:11;;;;;;;;;;;10458:12;;;;;;;;;;;10472:19;;;;;;;;;;;10493:21;;;;;;;;;;;10516:12;;;;;;;;;;;10530:14;;;;;;;;;;;10436:109;;;;;;;;;;;;10265:285;;;;;;:::o;5679:368::-;5779:4;5798:25;5816:6;5798:17;:25::i;:::-;5790:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;5887:17;5852:11;:19;5864:6;5852:19;;;;;;;;;;;;;;;:31;5872:10;5852:31;;;;;;;;;;;;;;;;:52;5849:142;;5979:6;5945:11;:19;5957:6;5945:19;;;;;;;;;;;;;;;:31;5965:10;5945:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5911:11;:19;5923:6;5911:19;;;;;;;;;;;;;;;:31;5931:10;5911:31;;;;;;;;;;;;;;;:74;;;;5849:142;6002:40;6016:6;6024:9;6035:6;6002:13;:40::i;:::-;5995:47;;5679:368;;;;;:::o;4765:80::-;4817:5;2172:1;4826:16;;4765:80;:::o;15512:246::-;15562:24;15589:21;15599:10;15589:9;:21::i;:::-;15562:48;;15633:16;15623:6;:26;;15615:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15680:31;15692:10;15704:6;15680:11;:31::i;:::-;15734:10;15721:32;;;15746:6;15721:32;;;;;;:::i;:::-;;;;;;;;15557:201;15512:246;:::o;11838:199::-;11886:13;11901:17;11920:18;11940;11975:12;;11989:16;;12007:11;;12020;;11966:66;;;;;;;;11838:199;;;;:::o;5018:105::-;5084:7;5102:9;:18;5112:7;5102:18;;;;;;;;;;;;;;;;5095:25;;5018:105;;;:::o;10171:89::-;10224:4;10242:5;:13;10248:6;10242:13;;;;;;;;;;;;;;;;;;;;;;;;;10235:20;;10171:89;;;:::o;9449:145::-;9511:11;9524:13;9553:7;:15;9561:6;9553:15;;;;;;;;;;;;;;;;;;;;;;;;;9570:9;:17;9580:6;9570:17;;;;;;;;;;;;;;;;;;;;;;;;;9544:45;;;;9449:145;;;:::o;4848:84::-;4898:13;4922:7;;;;;;;;;;;;;;;;;4915:14;;4848:84;:::o;11351:482::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11473:5:::1;:19;11479:12;11473:19;;;;;;;;;;;;;;;;;;;;;;;;;11472:20;:46;;;;;11497:5;:21;11503:14;11497:21;;;;;;;;;;;;;;;;;;;;;;;;;11496:22;11472:46;:68;;;;;11523:5;:17;11529:10;11523:17;;;;;;;;;;;;;;;;;;;;;;;;;11522:18;11472:68;11464:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;11600:12;11573:16;;:40;;;;;;;;;;;;;;;;;;11647:14;11618:18;;:44;;;;;;;;;;;;;;;;;;11678:10;11667:8;;:21;;;;;;;;;;;;;;;;;;11717:4;11693:7;:21;11701:12;11693:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11752:4;11726:7;:23;11734:14;11726:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11787:4;11761:9;:23;11771:12;11761:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11824:4;11796:9;:25;11806:14;11796:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11351:482:::0;;;:::o;11123:225::-;11170:13;11185:17;11204;11223:19;11244:15;11276:6;;;;;;;;;;;11284:10;;;;;;;;;;;11296:16;;;;;;;;;;;11314:18;;;;;;;;;;;11334:8;;;;;;;;;;;11267:76;;;;;;;;;;11123:225;;;;;:::o;5464:210::-;5544:4;5563:29;5581:10;5563:17;:29::i;:::-;5555:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5625:44;5639:10;5651:9;5662:6;5625:13;:44::i;:::-;5618:51;;5464:210;;;;:::o;12040:430::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12140:16:::1;12199:1;12192:4;12174:15;12159:30;;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12159:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;12140:60;;12225:12;;12213:8;:24;;12205:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;12278:8;12263:12;:23;;;;12291:20;12358:1;12351:4;12329:19;12314:34;;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12314:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;12291:68;;12388:16;;12372:12;:32;;12364:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12453:12;12434:16;:31;;;;12135:335;;12040:430:::0;;:::o;6052:117::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;6108:12:::1;;;;;;;;;;;6107:13;6099:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6150:14;:12;:14::i;:::-;6052:117::o:0;15089:418::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15178:10:::1;15174:168;;;15196:23;15222:24;15240:4;15222:9;:24::i;:::-;15196:50;;15278:1;15260:15;:19;15252:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15299:37;15320:15;15299:20;:37::i;:::-;15190:152;15174:168;15350:7;15346:157;;;15366:18;15387:21;15366:42;;15435:1;15422:10;:14;15414:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;15456:40;15474:21;15456:17;:40::i;:::-;15359:144;15346:157;15089:418:::0;;:::o;5126:133::-;5210:7;5228:11;:19;5240:6;5228:19;;;;;;;;;;;;;;;:28;5248:7;5228:28;;;;;;;;;;;;;;;;5221:35;;5126:133;;;;:::o;12473:432::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12635:10:::1;12609:36;;12624:8;12609:23;;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12609:23;;;;:::i;:::-;:36;;;;:::i;:::-;12595:11;:50;;;;12690:10;12664:36;;12679:8;12664:23;;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12664:23;;;;:::i;:::-;:36;;;;:::i;:::-;12650:11;:50;;;;12726:11;;12713;;:24;;12705:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12794:6;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12779:21;;;;:::i;:::-;12767:11;;:33;12759:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12868:3;2172:1;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;12853:18;;;;:::i;:::-;12841:11;;:30;12833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12473:432:::0;;;;:::o;1284:131::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1367:8:::1;1358:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1382:30;1403:8;1382:30;;;;;;:::i;:::-;;;;;;;;1284:131:::0;:::o;10760:358::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10922:12:::1;10907;;:27;;;;;;;;;;;;;;;;;;10961:15;10939:19;;:37;;;;;;;;;;;;;;;;;;11005:17;10981:21;;:41;;;;;;;;;;;;;;;;;;11096:17;11078:15;11063:12;11045:15;:30;;;;:::i;:::-;:48;;;;:::i;:::-;:68;;;;:::i;:::-;11027:15;;:86;;;;;;;;;;;;;;;;;;10760:358:::0;;;;:::o;10553:202::-;1221:6;;;;;;;;;;1207:20;;:10;:20;;;1199:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10667:2:::1;10653:10;10641:9;:22;;;;:::i;:::-;:28;;;;10633:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10711:9;10697:11;;:23;;;;;;;;;;;;;;;;;;10740:10;10725:12;;:25;;;;;;;;;;;;;;;;;;10553:202:::0;;:::o;6931:358::-;7028:24;7055:8;;;;;;;;;;;7028:35;;7073:8;7068:50;;;7113:1;7086:29;;7068:50;7122:28;7137:12;7122:14;:28::i;:::-;7155:18;;;;;;;;;;;:34;;;7197:13;7222:4;7229:12;7243:1;7246;7249:16;7267:15;7155:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7023:266;6931:358;;;:::o;8797:252::-;8862:4;8872:16;8891:5;8872:24;;8906:12;;;;;;;;;;;8901:118;;;8937:4;8923:18;;8901:118;;;8958:7;:15;8966:6;8958:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;8977:9;:17;8987:6;8977:17;;;;;;;;;;;;;;;;;;;;;;;;;8958:36;8954:65;;;9012:4;8998:18;;8954:65;8901:118;9033:11;9026:18;;;8797:252;;;:::o;7454:883::-;7546:4;7583:1;7565:20;;:6;:20;;;7557:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7629:12;;;;;;;;;;;7624:89;;7653:7;:15;7661:6;7653:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;7672:9;:17;7682:6;7672:17;;;;;;;;;;;;;;;;;;;;;;;;;7653:36;7645:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:89;7723:10;;;;;;;;;;;7722:11;:31;;;;;7737:5;:16;7743:9;7737:16;;;;;;;;;;;;;;;;;;;;;;;;;7722:31;7717:64;;;7758:20;:18;:20::i;:::-;7717:64;7812:4;7794:23;;:6;:23;;;;:53;;;;;7842:4;7821:26;;:9;:26;;;;7794:53;:73;;;;;7861:6;;;;;;;;;;7851:16;;:6;:16;;;;7794:73;7789:155;;;7880:39;7893:6;7901:9;7912:6;7880:12;:39::i;:::-;7872:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7789:155;7948:18;7969:40;7983:6;7991:9;8002:6;7969:13;:40::i;:::-;7948:61;;8014:23;8049:10;8040:6;:19;;;;:::i;:::-;8014:45;;8104:6;8084:9;:17;8094:6;8084:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;8064:9;:17;8074:6;8064:17;;;;;;;;;;;;;;;:46;;;;8133:1;8120:10;:14;8115:91;;;8193:10;8166:9;:24;8184:4;8166:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;8139:9;:24;8157:4;8139:24;;;;;;;;;;;;;;;:64;;;;8115:91;8256:15;8233:9;:20;8243:9;8233:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;8210:9;:20;8220:9;8210:20;;;;;;;;;;;;;;;:61;;;;8298:9;8281:35;;8290:6;8281:35;;;8309:6;8281:35;;;;;;:::i;:::-;;;;;;;;8328:4;8321:11;;;;7454:883;;;;;:::o;12910:225::-;12994:1;12985:6;:10;12980:151;;;13029:6;13004:9;:21;13014:10;13004:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;13067:6;13041:9;:22;3413:1;13041:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;3413:1;13084:41;;13093:10;13084:41;;;13118:6;13084:41;;;;;;:::i;:::-;;;;;;;;12980:151;12910:225;;:::o;7294:155::-;7370:3;7366:1;2172;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;7351:16;;;;:::i;:::-;:22;;;;:::i;:::-;7332:12;:41;;;;7417:3;7413:1;2172;2234:2;:13;;;;:::i;:::-;2217;:31;;;;:::i;:::-;7398:16;;;;:::i;:::-;:22;;;;:::i;:::-;7379:16;:41;;;;7440:4;7425:12;;:19;;;;;;;;;;;;;;;;;;7294:155::o;14262:333::-;14326:27;14341:11;14326:14;:27::i;:::-;14358:21;14396:1;14382:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14358:40;;14421:4;14403;14408:1;14403:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14441:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14431:4;14436:1;14431:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;14471:18;;;;;;;;;;;:69;;;14541:11;14553:1;14555:4;14568;14574:15;14471:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14321:274;14262:333;:::o;14600:484::-;14656:21;14702;;;;;;;;;;;14680:19;;;;;;;;;;;:43;;;;:::i;:::-;14656:67;;14749:1;14732:14;:18;;;14728:352;;;14758:23;14815:14;14784:45;;14793:19;;;;;;;;;;;14784:28;;:6;:28;;;;:::i;:::-;:45;;;;:::i;:::-;14758:71;;14835:25;14896:14;14863:47;;14872:21;;;;;;;;;;;14863:30;;:6;:30;;;;:::i;:::-;:47;;;;:::i;:::-;14835:75;;14939:1;14921:15;:19;14916:74;;;14945:16;;;;;;;;;;;:25;;:42;14971:15;14945:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14916:74;15020:1;15000:17;:21;14995:80;;;15026:18;;;;;;;;;;;:27;;:46;15054:17;15026:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14995:80;14752:328;;14728:352;14651:433;14600:484;:::o;6174:284::-;6288:12;6239:11;:26;6259:4;6239:26;;;;;;;;;;;;;;;:46;3503:42;6239:46;;;;;;;;;;;;;;;;:61;6234:220;;;6358:17;6309:11;:26;6329:4;6309:26;;;;;;;;;;;;;;;:46;3503:42;6309:46;;;;;;;;;;;;;;;:66;;;;3503:42;6386:62;;6403:4;6386:62;;;6430:17;6386:62;;;;;;:::i;:::-;;;;;;;;6234:220;6174:284;:::o;13140:1117::-;3837:4;3824:10;;:17;;;;;;;;;;;;;;;;;;13195:27:::1;13225:24;13243:4;13225:9;:24::i;:::-;13195:54;;13284:11;;13261:19;:34;;:50;;;;;13299:12;;;;;;;;;;;13261:50;13256:997;;;13348:11;;13325:19;:34;13320:80;;13386:11;;13364:33;;13320:80;13407:20;13485:1;13467:15;;;;;;;;;;;13430:52;;13452:12;;;;;;;;;;;13430:34;;:19;:34;;;;:::i;:::-;:52;;;;:::i;:::-;:56;;;;:::i;:::-;13407:79;;13492:21;13555:15:::0;::::1;;;;;;;;;;13516:54;;13538:14;;;;;;;;;;;13516:36;;:19;:36;;;;:::i;:::-;:54;;;;:::i;:::-;13492:78;;13576:41;13596:4;13603:13;13576:11;:41::i;:::-;13628:21;13689:13;13674:12;13652:19;:34;;;;:::i;:::-;:50;;;;:::i;:::-;13628:74;;2172:1;13728:2;:13;;;;:::i;:::-;13712;:29;13708:407;;;13751:19;13773:21;13751:43;;13801:35;13822:13;13801:20;:35::i;:::-;13843:19;13889:11;13865:21;:35;;;;:::i;:::-;13843:57;;13927:1;13912:12:::0;::::1;;;;;;;;;;:16;;;13907:202;;;13939:21;13992:15:::0;::::1;;;;;;;;;;13963:44;;13977:12;;;;;;;;;;;13963:26;;:11;:26;;;;:::i;:::-;:44;;;;:::i;:::-;13939:68;;14016:28;14031:12;14016:14;:28::i;:::-;14052:49;14066:12;14080:13;14095:5;14052:13;:49::i;:::-;13931:178;13907:202;13744:371;;13708:407;14120:27;14150:21;14120:51;;14202:1;14180:19;:23;14177:71;;;14207:38;14225:19;14207:17;:38::i;:::-;14177:71;13314:939;;;;13256:997;13190:1067;3859:5:::0;3846:10;;:18;;;;;;;;;;;;;;;;;;13140:1117::o;8342:450::-;8446:4;8457:21;8481:4;8457:28;;8495:12;;;;;;;;;;;:34;;;;;8512:9;:17;8522:6;8512:17;;;;;;;;;;;;;;;;;;;;;;;;;8511:18;8495:34;:59;;;;;8534:9;:20;8544:9;8534:20;;;;;;;;;;;;;;;;;;;;;;;;;8533:21;8495:59;8490:270;;;8585:12;;8568:14;:29;8563:192;;;8621:5;8602:24;;8563:192;;;8645:5;:16;8651:9;8645:16;;;;;;;;;;;;;;;;;;;;;;;;;8644:17;:79;;;;;8706:16;;8689:14;8666:9;:20;8676:9;8666:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;8644:79;8639:116;;;8747:5;8728:24;;8639:116;8563:192;8490:270;8771:16;8764:23;;;8342:450;;;;;:::o;9054:388::-;9151:7;9165:17;9193:12;;;;;;;;;;;9192:13;:32;;;;9209:7;:15;9217:6;9209:15;;;;;;;;;;;;;;;;;;;;;;;;;9192:32;:54;;;;9228:7;:18;9236:9;9228:18;;;;;;;;;;;;;;;;;;;;;;;;;9192:54;9187:230;;;9263:1;9251:13;;9187:230;;;9281:5;:13;9287:6;9281:13;;;;;;;;;;;;;;;;;;;;;;;;;9276:141;;;9334:3;9320:11;;;;;;;;;;;9311:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;9299:38;;9276:141;;;9354:5;:16;9360:9;9354:16;;;;;;;;;;;;;;;;;;;;;;;;;9349:68;;;9411:3;9396:12;;;;;;;;;;;9387:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;9375:39;;9349:68;9276:141;9187:230;9428:9;9421:16;;;9054:388;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:607::-;4130:6;4138;4146;4195:2;4183:9;4174:7;4170:23;4166:32;4163:119;;;4201:79;;:::i;:::-;4163:119;4321:1;4346:53;4391:7;4382:6;4371:9;4367:22;4346:53;:::i;:::-;4336:63;;4292:117;4448:2;4474:50;4516:7;4507:6;4496:9;4492:22;4474:50;:::i;:::-;4464:60;;4419:115;4573:2;4599:50;4641:7;4632:6;4621:9;4617:22;4599:50;:::i;:::-;4589:60;;4544:115;4059:607;;;;;:::o;4672:468::-;4737:6;4745;4794:2;4782:9;4773:7;4769:23;4765:32;4762:119;;;4800:79;;:::i;:::-;4762:119;4920:1;4945:53;4990:7;4981:6;4970:9;4966:22;4945:53;:::i;:::-;4935:63;;4891:117;5047:2;5073:50;5115:7;5106:6;5095:9;5091:22;5073:50;:::i;:::-;5063:60;;5018:115;4672:468;;;;;:::o;5146:86::-;5181:7;5221:4;5214:5;5210:16;5199:27;;5146:86;;;:::o;5238:112::-;5321:22;5337:5;5321:22;:::i;:::-;5316:3;5309:35;5238:112;;:::o;5356:89::-;5392:7;5432:6;5425:5;5421:18;5410:29;;5356:89;;;:::o;5451:115::-;5536:23;5553:5;5536:23;:::i;:::-;5531:3;5524:36;5451:115;;:::o;5572:743::-;5789:4;5827:3;5816:9;5812:19;5804:27;;5841:67;5905:1;5894:9;5890:17;5881:6;5841:67;:::i;:::-;5918:68;5982:2;5971:9;5967:18;5958:6;5918:68;:::i;:::-;5996:70;6062:2;6051:9;6047:18;6038:6;5996:70;:::i;:::-;6076;6142:2;6131:9;6127:18;6118:6;6076:70;:::i;:::-;6156:71;6222:3;6211:9;6207:19;6198:6;6156:71;:::i;:::-;6237;6303:3;6292:9;6288:19;6279:6;6237:71;:::i;:::-;5572:743;;;;;;;;;:::o;6321:619::-;6398:6;6406;6414;6463:2;6451:9;6442:7;6438:23;6434:32;6431:119;;;6469:79;;:::i;:::-;6431:119;6589:1;6614:53;6659:7;6650:6;6639:9;6635:22;6614:53;:::i;:::-;6604:63;;6560:117;6716:2;6742:53;6787:7;6778:6;6767:9;6763:22;6742:53;:::i;:::-;6732:63;;6687:118;6844:2;6870:53;6915:7;6906:6;6895:9;6891:22;6870:53;:::i;:::-;6860:63;;6815:118;6321:619;;;;;:::o;6946:214::-;7035:4;7073:2;7062:9;7058:18;7050:26;;7086:67;7150:1;7139:9;7135:17;7126:6;7086:67;:::i;:::-;6946:214;;;;:::o;7166:329::-;7225:6;7274:2;7262:9;7253:7;7249:23;7245:32;7242:119;;;7280:79;;:::i;:::-;7242:119;7400:1;7425:53;7470:7;7461:6;7450:9;7446:22;7425:53;:::i;:::-;7415:63;;7371:117;7166:329;;;;:::o;7501:553::-;7678:4;7716:3;7705:9;7701:19;7693:27;;7730:71;7798:1;7787:9;7783:17;7774:6;7730:71;:::i;:::-;7811:72;7879:2;7868:9;7864:18;7855:6;7811:72;:::i;:::-;7893;7961:2;7950:9;7946:18;7937:6;7893:72;:::i;:::-;7975;8043:2;8032:9;8028:18;8019:6;7975:72;:::i;:::-;7501:553;;;;;;;:::o;8060:329::-;8119:6;8168:2;8156:9;8147:7;8143:23;8139:32;8136:119;;;8174:79;;:::i;:::-;8136:119;8294:1;8319:53;8364:7;8355:6;8344:9;8340:22;8319:53;:::i;:::-;8309:63;;8265:117;8060:329;;;;:::o;8395:308::-;8504:4;8542:2;8531:9;8527:18;8519:26;;8555:65;8617:1;8606:9;8602:17;8593:6;8555:65;:::i;:::-;8630:66;8692:2;8681:9;8677:18;8668:6;8630:66;:::i;:::-;8395:308;;;;;:::o;8709:619::-;8786:6;8794;8802;8851:2;8839:9;8830:7;8826:23;8822:32;8819:119;;;8857:79;;:::i;:::-;8819:119;8977:1;9002:53;9047:7;9038:6;9027:9;9023:22;9002:53;:::i;:::-;8992:63;;8948:117;9104:2;9130:53;9175:7;9166:6;9155:9;9151:22;9130:53;:::i;:::-;9120:63;;9075:118;9232:2;9258:53;9303:7;9294:6;9283:9;9279:22;9258:53;:::i;:::-;9248:63;;9203:118;8709:619;;;;;:::o;9334:118::-;9421:24;9439:5;9421:24;:::i;:::-;9416:3;9409:37;9334:118;;:::o;9458:664::-;9663:4;9701:3;9690:9;9686:19;9678:27;;9715:71;9783:1;9772:9;9768:17;9759:6;9715:71;:::i;:::-;9796:72;9864:2;9853:9;9849:18;9840:6;9796:72;:::i;:::-;9878;9946:2;9935:9;9931:18;9922:6;9878:72;:::i;:::-;9960;10028:2;10017:9;10013:18;10004:6;9960:72;:::i;:::-;10042:73;10110:3;10099:9;10095:19;10086:6;10042:73;:::i;:::-;9458:664;;;;;;;;:::o;10128:120::-;10200:23;10217:5;10200:23;:::i;:::-;10193:5;10190:34;10180:62;;10238:1;10235;10228:12;10180:62;10128:120;:::o;10254:137::-;10299:5;10337:6;10324:20;10315:29;;10353:32;10379:5;10353:32;:::i;:::-;10254:137;;;;:::o;10397:470::-;10463:6;10471;10520:2;10508:9;10499:7;10495:23;10491:32;10488:119;;;10526:79;;:::i;:::-;10488:119;10646:1;10671:52;10715:7;10706:6;10695:9;10691:22;10671:52;:::i;:::-;10661:62;;10617:116;10772:2;10798:52;10842:7;10833:6;10822:9;10818:22;10798:52;:::i;:::-;10788:62;;10743:117;10397:470;;;;;:::o;10873:462::-;10935:6;10943;10992:2;10980:9;10971:7;10967:23;10963:32;10960:119;;;10998:79;;:::i;:::-;10960:119;11118:1;11143:50;11185:7;11176:6;11165:9;11161:22;11143:50;:::i;:::-;11133:60;;11089:114;11242:2;11268:50;11310:7;11301:6;11290:9;11286:22;11268:50;:::i;:::-;11258:60;;11213:115;10873:462;;;;;:::o;11341:474::-;11409:6;11417;11466:2;11454:9;11445:7;11441:23;11437:32;11434:119;;;11472:79;;:::i;:::-;11434:119;11592:1;11617:53;11662:7;11653:6;11642:9;11638:22;11617:53;:::i;:::-;11607:63;;11563:117;11719:2;11745:53;11790:7;11781:6;11770:9;11766:22;11745:53;:::i;:::-;11735:63;;11690:118;11341:474;;;;;:::o;11821:93::-;11857:7;11897:10;11890:5;11886:22;11875:33;;11821:93;;;:::o;11920:120::-;11992:23;12009:5;11992:23;:::i;:::-;11985:5;11982:34;11972:62;;12030:1;12027;12020:12;11972:62;11920:120;:::o;12046:137::-;12091:5;12129:6;12116:20;12107:29;;12145:32;12171:5;12145:32;:::i;:::-;12046:137;;;;:::o;12189:757::-;12271:6;12279;12287;12295;12344:3;12332:9;12323:7;12319:23;12315:33;12312:120;;;12351:79;;:::i;:::-;12312:120;12471:1;12496:52;12540:7;12531:6;12520:9;12516:22;12496:52;:::i;:::-;12486:62;;12442:116;12597:2;12623:52;12667:7;12658:6;12647:9;12643:22;12623:52;:::i;:::-;12613:62;;12568:117;12724:2;12750:52;12794:7;12785:6;12774:9;12770:22;12750:52;:::i;:::-;12740:62;;12695:117;12851:2;12877:52;12921:7;12912:6;12901:9;12897:22;12877:52;:::i;:::-;12867:62;;12822:117;12189:757;;;;;;;:::o;12952:104::-;12997:7;13026:24;13044:5;13026:24;:::i;:::-;13015:35;;12952:104;;;:::o;13062:138::-;13143:32;13169:5;13143:32;:::i;:::-;13136:5;13133:43;13123:71;;13190:1;13187;13180:12;13123:71;13062:138;:::o;13206:155::-;13260:5;13298:6;13285:20;13276:29;;13314:41;13349:5;13314:41;:::i;:::-;13206:155;;;;:::o;13367:345::-;13434:6;13483:2;13471:9;13462:7;13458:23;13454:32;13451:119;;;13489:79;;:::i;:::-;13451:119;13609:1;13634:61;13687:7;13678:6;13667:9;13663:22;13634:61;:::i;:::-;13624:71;;13580:125;13367:345;;;;:::o;13718:757::-;13800:6;13808;13816;13824;13873:3;13861:9;13852:7;13848:23;13844:33;13841:120;;;13880:79;;:::i;:::-;13841:120;14000:1;14025:52;14069:7;14060:6;14049:9;14045:22;14025:52;:::i;:::-;14015:62;;13971:116;14126:2;14152:52;14196:7;14187:6;14176:9;14172:22;14152:52;:::i;:::-;14142:62;;14097:117;14253:2;14279:52;14323:7;14314:6;14303:9;14299:22;14279:52;:::i;:::-;14269:62;;14224:117;14380:2;14406:52;14450:7;14441:6;14430:9;14426:22;14406:52;:::i;:::-;14396:62;;14351:117;13718:757;;;;;;;:::o;14481:118::-;14552:22;14568:5;14552:22;:::i;:::-;14545:5;14542:33;14532:61;;14589:1;14586;14579:12;14532:61;14481:118;:::o;14605:135::-;14649:5;14687:6;14674:20;14665:29;;14703:31;14728:5;14703:31;:::i;:::-;14605:135;;;;:::o;14746:466::-;14810:6;14818;14867:2;14855:9;14846:7;14842:23;14838:32;14835:119;;;14873:79;;:::i;:::-;14835:119;14993:1;15018:51;15061:7;15052:6;15041:9;15037:22;15018:51;:::i;:::-;15008:61;;14964:115;15118:2;15144:51;15187:7;15178:6;15167:9;15163:22;15144:51;:::i;:::-;15134:61;;15089:116;14746:466;;;;;:::o;15218:230::-;15358:34;15354:1;15346:6;15342:14;15335:58;15427:13;15422:2;15414:6;15410:15;15403:38;15218:230;:::o;15454:366::-;15596:3;15617:67;15681:2;15676:3;15617:67;:::i;:::-;15610:74;;15693:93;15782:3;15693:93;:::i;:::-;15811:2;15806:3;15802:12;15795:19;;15454:366;;;:::o;15826:419::-;15992:4;16030:2;16019:9;16015:18;16007:26;;16079:9;16073:4;16069:20;16065:1;16054:9;16050:17;16043:47;16107:131;16233:4;16107:131;:::i;:::-;16099:139;;15826:419;;;:::o;16251:159::-;16391:11;16387:1;16379:6;16375:14;16368:35;16251:159;:::o;16416:365::-;16558:3;16579:66;16643:1;16638:3;16579:66;:::i;:::-;16572:73;;16654:93;16743:3;16654:93;:::i;:::-;16772:2;16767:3;16763:12;16756:19;;16416:365;;;:::o;16787:419::-;16953:4;16991:2;16980:9;16976:18;16968:26;;17040:9;17034:4;17030:20;17026:1;17015:9;17011:17;17004:47;17068:131;17194:4;17068:131;:::i;:::-;17060:139;;16787:419;;;:::o;17212:168::-;17352:20;17348:1;17340:6;17336:14;17329:44;17212:168;:::o;17386:366::-;17528:3;17549:67;17613:2;17608:3;17549:67;:::i;:::-;17542:74;;17625:93;17714:3;17625:93;:::i;:::-;17743:2;17738:3;17734:12;17727:19;;17386:366;;;:::o;17758:419::-;17924:4;17962:2;17951:9;17947:18;17939:26;;18011:9;18005:4;18001:20;17997:1;17986:9;17982:17;17975:47;18039:131;18165:4;18039:131;:::i;:::-;18031:139;;17758:419;;;:::o;18183:171::-;18323:23;18319:1;18311:6;18307:14;18300:47;18183:171;:::o;18360:366::-;18502:3;18523:67;18587:2;18582:3;18523:67;:::i;:::-;18516:74;;18599:93;18688:3;18599:93;:::i;:::-;18717:2;18712:3;18708:12;18701:19;;18360:366;;;:::o;18732:419::-;18898:4;18936:2;18925:9;18921:18;18913:26;;18985:9;18979:4;18975:20;18971:1;18960:9;18956:17;18949:47;19013:131;19139:4;19013:131;:::i;:::-;19005:139;;18732:419;;;:::o;19157:143::-;19214:5;19245:6;19239:13;19230:22;;19261:33;19288:5;19261:33;:::i;:::-;19157:143;;;;:::o;19306:351::-;19376:6;19425:2;19413:9;19404:7;19400:23;19396:32;19393:119;;;19431:79;;:::i;:::-;19393:119;19551:1;19576:64;19632:7;19623:6;19612:9;19608:22;19576:64;:::i;:::-;19566:74;;19522:128;19306:351;;;;:::o;19663:332::-;19784:4;19822:2;19811:9;19807:18;19799:26;;19835:71;19903:1;19892:9;19888:17;19879:6;19835:71;:::i;:::-;19916:72;19984:2;19973:9;19969:18;19960:6;19916:72;:::i;:::-;19663:332;;;;;:::o;20001:180::-;20049:77;20046:1;20039:88;20146:4;20143:1;20136:15;20170:4;20167:1;20160:15;20187:102;20229:8;20276:5;20273:1;20269:13;20248:34;;20187:102;;;:::o;20295:848::-;20356:5;20363:4;20387:6;20378:15;;20411:5;20402:14;;20425:712;20446:1;20436:8;20433:15;20425:712;;;20541:4;20536:3;20532:14;20526:4;20523:24;20520:50;;;20550:18;;:::i;:::-;20520:50;20600:1;20590:8;20586:16;20583:451;;;21015:4;21008:5;21004:16;20995:25;;20583:451;21065:4;21059;21055:15;21047:23;;21095:32;21118:8;21095:32;:::i;:::-;21083:44;;20425:712;;;20295:848;;;;;;;:::o;21149:1073::-;21203:5;21394:8;21384:40;;21415:1;21406:10;;21417:5;;21384:40;21443:4;21433:36;;21460:1;21451:10;;21462:5;;21433:36;21529:4;21577:1;21572:27;;;;21613:1;21608:191;;;;21522:277;;21572:27;21590:1;21581:10;;21592:5;;;21608:191;21653:3;21643:8;21640:17;21637:43;;;21660:18;;:::i;:::-;21637:43;21709:8;21706:1;21702:16;21693:25;;21744:3;21737:5;21734:14;21731:40;;;21751:18;;:::i;:::-;21731:40;21784:5;;;21522:277;;21908:2;21898:8;21895:16;21889:3;21883:4;21880:13;21876:36;21858:2;21848:8;21845:16;21840:2;21834:4;21831:12;21827:35;21811:111;21808:246;;;21964:8;21958:4;21954:19;21945:28;;21999:3;21992:5;21989:14;21986:40;;;22006:18;;:::i;:::-;21986:40;22039:5;;21808:246;22079:42;22117:3;22107:8;22101:4;22098:1;22079:42;:::i;:::-;22064:57;;;;22153:4;22148:3;22144:14;22137:5;22134:25;22131:51;;;22162:18;;:::i;:::-;22131:51;22211:4;22204:5;22200:16;22191:25;;21149:1073;;;;;;:::o;22228:281::-;22286:5;22310:23;22328:4;22310:23;:::i;:::-;22302:31;;22354:25;22370:8;22354:25;:::i;:::-;22342:37;;22398:104;22435:66;22425:8;22419:4;22398:104;:::i;:::-;22389:113;;22228:281;;;;:::o;22515:410::-;22555:7;22578:20;22596:1;22578:20;:::i;:::-;22573:25;;22612:20;22630:1;22612:20;:::i;:::-;22607:25;;22667:1;22664;22660:9;22689:30;22707:11;22689:30;:::i;:::-;22678:41;;22868:1;22859:7;22855:15;22852:1;22849:22;22829:1;22822:9;22802:83;22779:139;;22898:18;;:::i;:::-;22779:139;22563:362;22515:410;;;;:::o;22931:166::-;23071:18;23067:1;23059:6;23055:14;23048:42;22931:166;:::o;23103:366::-;23245:3;23266:67;23330:2;23325:3;23266:67;:::i;:::-;23259:74;;23342:93;23431:3;23342:93;:::i;:::-;23460:2;23455:3;23451:12;23444:19;;23103:366;;;:::o;23475:419::-;23641:4;23679:2;23668:9;23664:18;23656:26;;23728:9;23722:4;23718:20;23714:1;23703:9;23699:17;23692:47;23756:131;23882:4;23756:131;:::i;:::-;23748:139;;23475:419;;;:::o;23900:178::-;24040:30;24036:1;24028:6;24024:14;24017:54;23900:178;:::o;24084:366::-;24226:3;24247:67;24311:2;24306:3;24247:67;:::i;:::-;24240:74;;24323:93;24412:3;24323:93;:::i;:::-;24441:2;24436:3;24432:12;24425:19;;24084:366;;;:::o;24456:419::-;24622:4;24660:2;24649:9;24645:18;24637:26;;24709:9;24703:4;24699:20;24695:1;24684:9;24680:17;24673:47;24737:131;24863:4;24737:131;:::i;:::-;24729:139;;24456:419;;;:::o;24881:166::-;25021:18;25017:1;25009:6;25005:14;24998:42;24881:166;:::o;25053:366::-;25195:3;25216:67;25280:2;25275:3;25216:67;:::i;:::-;25209:74;;25292:93;25381:3;25292:93;:::i;:::-;25410:2;25405:3;25401:12;25394:19;;25053:366;;;:::o;25425:419::-;25591:4;25629:2;25618:9;25614:18;25606:26;;25678:9;25672:4;25668:20;25664:1;25653:9;25649:17;25642:47;25706:131;25832:4;25706:131;:::i;:::-;25698:139;;25425:419;;;:::o;25850:194::-;25890:4;25910:20;25928:1;25910:20;:::i;:::-;25905:25;;25944:20;25962:1;25944:20;:::i;:::-;25939:25;;25988:1;25985;25981:9;25973:17;;26012:1;26006:4;26003:11;26000:37;;;26017:18;;:::i;:::-;26000:37;25850:194;;;;:::o;26050:171::-;26190:23;26186:1;26178:6;26174:14;26167:47;26050:171;:::o;26227:366::-;26369:3;26390:67;26454:2;26449:3;26390:67;:::i;:::-;26383:74;;26466:93;26555:3;26466:93;:::i;:::-;26584:2;26579:3;26575:12;26568:19;;26227:366;;;:::o;26599:419::-;26765:4;26803:2;26792:9;26788:18;26780:26;;26852:9;26846:4;26842:20;26838:1;26827:9;26823:17;26816:47;26880:131;27006:4;26880:131;:::i;:::-;26872:139;;26599:419;;;:::o;27024:173::-;27164:25;27160:1;27152:6;27148:14;27141:49;27024:173;:::o;27203:366::-;27345:3;27366:67;27430:2;27425:3;27366:67;:::i;:::-;27359:74;;27442:93;27531:3;27442:93;:::i;:::-;27560:2;27555:3;27551:12;27544:19;;27203:366;;;:::o;27575:419::-;27741:4;27779:2;27768:9;27764:18;27756:26;;27828:9;27822:4;27818:20;27814:1;27803:9;27799:17;27792:47;27856:131;27982:4;27856:131;:::i;:::-;27848:139;;27575:419;;;:::o;28000:180::-;28048:77;28045:1;28038:88;28145:4;28142:1;28135:15;28169:4;28166:1;28159:15;28186:185;28226:1;28243:20;28261:1;28243:20;:::i;:::-;28238:25;;28277:20;28295:1;28277:20;:::i;:::-;28272:25;;28316:1;28306:35;;28321:18;;:::i;:::-;28306:35;28363:1;28360;28356:9;28351:14;;28186:185;;;;:::o;28377:191::-;28417:3;28436:20;28454:1;28436:20;:::i;:::-;28431:25;;28470:20;28488:1;28470:20;:::i;:::-;28465:25;;28513:1;28510;28506:9;28499:16;;28534:3;28531:1;28528:10;28525:36;;;28541:18;;:::i;:::-;28525:36;28377:191;;;;:::o;28574:166::-;28714:18;28710:1;28702:6;28698:14;28691:42;28574:166;:::o;28746:366::-;28888:3;28909:67;28973:2;28968:3;28909:67;:::i;:::-;28902:74;;28985:93;29074:3;28985:93;:::i;:::-;29103:2;29098:3;29094:12;29087:19;;28746:366;;;:::o;29118:419::-;29284:4;29322:2;29311:9;29307:18;29299:26;;29371:9;29365:4;29361:20;29357:1;29346:9;29342:17;29335:47;29399:131;29525:4;29399:131;:::i;:::-;29391:139;;29118:419;;;:::o;29543:170::-;29683:22;29679:1;29671:6;29667:14;29660:46;29543:170;:::o;29719:366::-;29861:3;29882:67;29946:2;29941:3;29882:67;:::i;:::-;29875:74;;29958:93;30047:3;29958:93;:::i;:::-;30076:2;30071:3;30067:12;30060:19;;29719:366;;;:::o;30091:419::-;30257:4;30295:2;30284:9;30280:18;30272:26;;30344:9;30338:4;30334:20;30330:1;30319:9;30315:17;30308:47;30372:131;30498:4;30372:131;:::i;:::-;30364:139;;30091:419;;;:::o;30516:170::-;30656:22;30652:1;30644:6;30640:14;30633:46;30516:170;:::o;30692:366::-;30834:3;30855:67;30919:2;30914:3;30855:67;:::i;:::-;30848:74;;30931:93;31020:3;30931:93;:::i;:::-;31049:2;31044:3;31040:12;31033:19;;30692:366;;;:::o;31064:419::-;31230:4;31268:2;31257:9;31253:18;31245:26;;31317:9;31311:4;31307:20;31303:1;31292:9;31288:17;31281:47;31345:131;31471:4;31345:131;:::i;:::-;31337:139;;31064:419;;;:::o;31489:159::-;31629:11;31625:1;31617:6;31613:14;31606:35;31489:159;:::o;31654:365::-;31796:3;31817:66;31881:1;31876:3;31817:66;:::i;:::-;31810:73;;31892:93;31981:3;31892:93;:::i;:::-;32010:2;32005:3;32001:12;31994:19;;31654:365;;;:::o;32025:419::-;32191:4;32229:2;32218:9;32214:18;32206:26;;32278:9;32272:4;32268:20;32264:1;32253:9;32249:17;32242:47;32306:131;32432:4;32306:131;:::i;:::-;32298:139;;32025:419;;;:::o;32450:162::-;32590:14;32586:1;32578:6;32574:14;32567:38;32450:162;:::o;32618:366::-;32760:3;32781:67;32845:2;32840:3;32781:67;:::i;:::-;32774:74;;32857:93;32946:3;32857:93;:::i;:::-;32975:2;32970:3;32966:12;32959:19;;32618:366;;;:::o;32990:419::-;33156:4;33194:2;33183:9;33179:18;33171:26;;33243:9;33237:4;33233:20;33229:1;33218:9;33214:17;33207:47;33271:131;33397:4;33271:131;:::i;:::-;33263:139;;32990:419;;;:::o;33415:173::-;33555:25;33551:1;33543:6;33539:14;33532:49;33415:173;:::o;33594:366::-;33736:3;33757:67;33821:2;33816:3;33757:67;:::i;:::-;33750:74;;33833:93;33922:3;33833:93;:::i;:::-;33951:2;33946:3;33942:12;33935:19;;33594:366;;;:::o;33966:419::-;34132:4;34170:2;34159:9;34155:18;34147:26;;34219:9;34213:4;34209:20;34205:1;34194:9;34190:17;34183:47;34247:131;34373:4;34247:131;:::i;:::-;34239:139;;33966:419;;;:::o;34391:174::-;34531:26;34527:1;34519:6;34515:14;34508:50;34391:174;:::o;34571:366::-;34713:3;34734:67;34798:2;34793:3;34734:67;:::i;:::-;34727:74;;34810:93;34899:3;34810:93;:::i;:::-;34928:2;34923:3;34919:12;34912:19;;34571:366;;;:::o;34943:419::-;35109:4;35147:2;35136:9;35132:18;35124:26;;35196:9;35190:4;35186:20;35182:1;35171:9;35167:17;35160:47;35224:131;35350:4;35224:131;:::i;:::-;35216:139;;34943:419;;;:::o;35368:60::-;35396:3;35417:5;35410:12;;35368:60;;;:::o;35434:142::-;35484:9;35517:53;35535:34;35544:24;35562:5;35544:24;:::i;:::-;35535:34;:::i;:::-;35517:53;:::i;:::-;35504:66;;35434:142;;;:::o;35582:126::-;35632:9;35665:37;35696:5;35665:37;:::i;:::-;35652:50;;35582:126;;;:::o;35714:134::-;35772:9;35805:37;35836:5;35805:37;:::i;:::-;35792:50;;35714:134;;;:::o;35854:147::-;35949:45;35988:5;35949:45;:::i;:::-;35944:3;35937:58;35854:147;;:::o;36007:238::-;36108:4;36146:2;36135:9;36131:18;36123:26;;36159:79;36235:1;36224:9;36220:17;36211:6;36159:79;:::i;:::-;36007:238;;;;:::o;36251:193::-;36290:3;36309:19;36326:1;36309:19;:::i;:::-;36304:24;;36342:19;36359:1;36342:19;:::i;:::-;36337:24;;36384:1;36381;36377:9;36370:16;;36407:6;36402:3;36399:15;36396:41;;;36417:18;;:::i;:::-;36396:41;36251:193;;;;:::o;36450:188::-;36488:3;36507:18;36523:1;36507:18;:::i;:::-;36502:23;;36539:18;36555:1;36539:18;:::i;:::-;36534:23;;36580:1;36577;36573:9;36566:16;;36603:4;36598:3;36595:13;36592:39;;;36611:18;;:::i;:::-;36592:39;36450:188;;;;:::o;36644:168::-;36784:20;36780:1;36772:6;36768:14;36761:44;36644:168;:::o;36818:366::-;36960:3;36981:67;37045:2;37040:3;36981:67;:::i;:::-;36974:74;;37057:93;37146:3;37057:93;:::i;:::-;37175:2;37170:3;37166:12;37159:19;;36818:366;;;:::o;37190:419::-;37356:4;37394:2;37383:9;37379:18;37371:26;;37443:9;37437:4;37433:20;37429:1;37418:9;37414:17;37407:47;37471:131;37597:4;37471:131;:::i;:::-;37463:139;;37190:419;;;:::o;37615:85::-;37660:7;37689:5;37678:16;;37615:85;;;:::o;37706:158::-;37764:9;37797:61;37815:42;37824:32;37850:5;37824:32;:::i;:::-;37815:42;:::i;:::-;37797:61;:::i;:::-;37784:74;;37706:158;;;:::o;37870:147::-;37965:45;38004:5;37965:45;:::i;:::-;37960:3;37953:58;37870:147;;:::o;38023:807::-;38272:4;38310:3;38299:9;38295:19;38287:27;;38324:71;38392:1;38381:9;38377:17;38368:6;38324:71;:::i;:::-;38405:72;38473:2;38462:9;38458:18;38449:6;38405:72;:::i;:::-;38487:80;38563:2;38552:9;38548:18;38539:6;38487:80;:::i;:::-;38577;38653:2;38642:9;38638:18;38629:6;38577:80;:::i;:::-;38667:73;38735:3;38724:9;38720:19;38711:6;38667:73;:::i;:::-;38750;38818:3;38807:9;38803:19;38794:6;38750:73;:::i;:::-;38023:807;;;;;;;;;:::o;38836:143::-;38893:5;38924:6;38918:13;38909:22;;38940:33;38967:5;38940:33;:::i;:::-;38836:143;;;;:::o;38985:663::-;39073:6;39081;39089;39138:2;39126:9;39117:7;39113:23;39109:32;39106:119;;;39144:79;;:::i;:::-;39106:119;39264:1;39289:64;39345:7;39336:6;39325:9;39321:22;39289:64;:::i;:::-;39279:74;;39235:128;39402:2;39428:64;39484:7;39475:6;39464:9;39460:22;39428:64;:::i;:::-;39418:74;;39373:129;39541:2;39567:64;39623:7;39614:6;39603:9;39599:22;39567:64;:::i;:::-;39557:74;;39512:129;38985:663;;;;;:::o;39654:179::-;39794:31;39790:1;39782:6;39778:14;39771:55;39654:179;:::o;39839:366::-;39981:3;40002:67;40066:2;40061:3;40002:67;:::i;:::-;39995:74;;40078:93;40167:3;40078:93;:::i;:::-;40196:2;40191:3;40187:12;40180:19;;39839:366;;;:::o;40211:419::-;40377:4;40415:2;40404:9;40400:18;40392:26;;40464:9;40458:4;40454:20;40450:1;40439:9;40435:17;40428:47;40492:131;40618:4;40492:131;:::i;:::-;40484:139;;40211:419;;;:::o;40636:167::-;40776:19;40772:1;40764:6;40760:14;40753:43;40636:167;:::o;40809:366::-;40951:3;40972:67;41036:2;41031:3;40972:67;:::i;:::-;40965:74;;41048:93;41137:3;41048:93;:::i;:::-;41166:2;41161:3;41157:12;41150:19;;40809:366;;;:::o;41181:419::-;41347:4;41385:2;41374:9;41370:18;41362:26;;41434:9;41428:4;41424:20;41420:1;41409:9;41405:17;41398:47;41462:131;41588:4;41462:131;:::i;:::-;41454:139;;41181:419;;;:::o;41606:180::-;41654:77;41651:1;41644:88;41751:4;41748:1;41741:15;41775:4;41772:1;41765:15;41792:180;41840:77;41837:1;41830:88;41937:4;41934:1;41927:15;41961:4;41958:1;41951:15;41978:114;42045:6;42079:5;42073:12;42063:22;;41978:114;;;:::o;42098:184::-;42197:11;42231:6;42226:3;42219:19;42271:4;42266:3;42262:14;42247:29;;42098:184;;;;:::o;42288:132::-;42355:4;42378:3;42370:11;;42408:4;42403:3;42399:14;42391:22;;42288:132;;;:::o;42426:108::-;42503:24;42521:5;42503:24;:::i;:::-;42498:3;42491:37;42426:108;;:::o;42540:179::-;42609:10;42630:46;42672:3;42664:6;42630:46;:::i;:::-;42708:4;42703:3;42699:14;42685:28;;42540:179;;;;:::o;42725:113::-;42795:4;42827;42822:3;42818:14;42810:22;;42725:113;;;:::o;42874:732::-;42993:3;43022:54;43070:5;43022:54;:::i;:::-;43092:86;43171:6;43166:3;43092:86;:::i;:::-;43085:93;;43202:56;43252:5;43202:56;:::i;:::-;43281:7;43312:1;43297:284;43322:6;43319:1;43316:13;43297:284;;;43398:6;43392:13;43425:63;43484:3;43469:13;43425:63;:::i;:::-;43418:70;;43511:60;43564:6;43511:60;:::i;:::-;43501:70;;43357:224;43344:1;43341;43337:9;43332:14;;43297:284;;;43301:14;43597:3;43590:10;;42998:608;;;42874:732;;;;:::o;43612:831::-;43875:4;43913:3;43902:9;43898:19;43890:27;;43927:71;43995:1;43984:9;43980:17;43971:6;43927:71;:::i;:::-;44008:80;44084:2;44073:9;44069:18;44060:6;44008:80;:::i;:::-;44135:9;44129:4;44125:20;44120:2;44109:9;44105:18;44098:48;44163:108;44266:4;44257:6;44163:108;:::i;:::-;44155:116;;44281:72;44349:2;44338:9;44334:18;44325:6;44281:72;:::i;:::-;44363:73;44431:3;44420:9;44416:19;44407:6;44363:73;:::i;:::-;43612:831;;;;;;;;:::o

Swarm Source

ipfs://997abb80b495ac90beacfdfdfadd41558eb3361071a6cb44b26e0b77576b8ff3
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.