ERC-20
Overview
Max Total Supply
100,000,000,000 XSNIPE
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
10,757,917,925.025159173 XSNIPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
xsnipe
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ // SPDX-License-Identifier: Unlicensed // https://xsnipe.live/ // https://twitter.com/xsnipe_live // t.me/xsnipe_live pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract xsnipe is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "Xsnipe"; string private _symbol = "XSNIPE"; uint8 private _decimals = 9; address payable private taxWallet1 = payable(0xb6228808eF614764662478AD0861e12A405d22E5); address payable private taxWallet2 = payable(0xb6228808eF614764662478AD0861e12A405d22E5); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public checkExcludedFromFees; mapping (address => bool) public checkWalletLimitExcept; mapping (address => bool) public checkTxLimitExcept; mapping (address => bool) public checkMarketPair; uint256 public _buyLiquidityFees = 6; uint256 public _buyDevFees = 7; uint256 public _buyKingFees = 7; uint256 public _sellLiquidityFees = 1; uint256 public _sellDevFees = 25; uint256 public _sellKingFees = 25; uint256 public _liquidityShares = 1; uint256 public _devShares = 3; uint256 public _kingShares = 4; uint256 public _totalTaxIfBuying = 8; uint256 public _totalTaxIfSelling = 51; uint256 public _totalDistributionShares = 8; uint256 private _totalSupply = 100000 * 10**6 * 10**9; uint256 public _maxTxAmount = 1000 * 10**6 * 10**9; uint256 public _walletMax = 1000 * 10**6 * 10**9; uint256 private minimumTokensBeforeSwap = 300 * 10**6 * 10**9; uint256 public minKingAmount = 100 * 10**6 * 10**9; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = true; bool public checkWalletLimit = true; event SendToKing( address king, uint256 amount ); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; checkExcludedFromFees[owner()] = true; checkExcludedFromFees[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFees.add(_buyDevFees).add(_buyKingFees); _totalTaxIfSelling = _sellLiquidityFees.add(_sellDevFees).add(_sellKingFees); _totalDistributionShares = _liquidityShares.add(_devShares).add(_kingShares); checkWalletLimitExcept[owner()] = true; checkWalletLimitExcept[address(uniswapPair)] = true; checkWalletLimitExcept[address(this)] = true; checkTxLimitExcept[owner()] = true; checkTxLimitExcept[address(this)] = true; checkMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function addMarketPair(address account) public onlyOwner { checkMarketPair[account] = true; } function setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner { checkTxLimitExcept[holder] = exempt; } function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner { checkExcludedFromFees[account] = newValue; } function setBuyFee(uint256 newLiquidityTax, uint256 newDevTax, uint256 newKingTax) external onlyOwner() { _buyLiquidityFees = newLiquidityTax; _buyDevFees = newDevTax; _buyKingFees = newKingTax; _totalTaxIfBuying = _buyLiquidityFees.add(_buyDevFees).add(_buyKingFees); } function setSellFee(uint256 newLiquidityTax, uint256 newDevTax, uint256 newKingTax) external onlyOwner() { _sellLiquidityFees = newLiquidityTax; _sellDevFees = newDevTax; _sellKingFees = newKingTax; _totalTaxIfSelling = _sellLiquidityFees.add(_sellDevFees).add(_sellKingFees); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newDevShare, uint256 newKingShare) external onlyOwner() { _liquidityShares = newLiquidityShare; _devShares = newDevShare; _kingShares = newKingShare; _totalDistributionShares = _liquidityShares.add(_devShares).add(_kingShares); } function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount <= (10000 * 10**6 * 10**9), "Max wallet should be less or euqal to 4% totalSupply"); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner { checkWalletLimitExcept[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function settaxWallet1(address newAddress) external onlyOwner() { taxWallet1 = payable(newAddress); } function settaxWallet2(address newAddress) external onlyOwner() { taxWallet2 = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address checkWalletLimitExcept[address(uniswapPair)] = true; checkMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !checkWalletLimitExcept[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); // NEW BUYER BECOMES TAX WALLET if(checkMarketPair[sender] && amount >= minKingAmount) { taxWallet2 = payable(recipient); } return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShares).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShares.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShares).div(totalETHFee).div(2); uint256 amountETHKing = amountReceived.mul(_kingShares).div(totalETHFee); uint256 amountETHDev = amountReceived.sub(amountETHLiquidity).sub(amountETHKing); if(amountETHDev > 0) transferToAddressETH(taxWallet1, amountETHDev); if(amountETHKing > 0){ transferToAddressETH(taxWallet2, amountETHKing); emit SendToKing(taxWallet2, amountETHKing); } if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(checkMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(checkMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"king","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendToKing","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_buyDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyKingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_kingShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellKingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minKingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newDevTax","type":"uint256"},{"internalType":"uint256","name":"newKingTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newDevShare","type":"uint256"},{"internalType":"uint256","name":"newKingShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newDevTax","type":"uint256"},{"internalType":"uint256","name":"newKingTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"settaxWallet1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"settaxWallet2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600681526020017f58736e6970650000000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b51565b506040518060400160405280600681526020017f58534e4950450000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b51565b506009600460006101000a81548160ff021916908360ff16021790555073b6228808ef614764662478ad0861e12a405d22e5600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b6228808ef614764662478ad0861e12a405d22e5600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506006600c556007600d556007600e556001600f556019601055601960115560016012556003601355600460145560086015556033601655600860175568056bc75e2d63100000601855670de0b6b3a7640000601955670de0b6b3a7640000601a55670429d069189e0000601b5567016345785d8a0000601c556001601e60156101000a81548160ff0219169083151502179055506001601e60166101000a81548160ff0219169083151502179055506001601e60176101000a81548160ff0219169083151502179055503480156200027557600080fd5b5060006200028862000abd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038657600080fd5b505afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000c18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200042457600080fd5b505afa15801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f919062000c18565b6040518363ffffffff1660e01b81526004016200047e92919062000c8d565b602060405180830381600087803b1580156200049957600080fd5b505af1158015620004ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d4919062000c18565b601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200061062000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006f2600e54620006de600d54600c5462000aee60201b6200291d1790919060201c565b62000aee60201b6200291d1790919060201c565b601581905550620007316011546200071d601054600f5462000aee60201b6200291d1790919060201c565b62000aee60201b6200291d1790919060201c565b601681905550620007706014546200075c60135460125462000aee60201b6200291d1790919060201c565b62000aee60201b6200291d1790919060201c565b6017819055506001600960006200078c62000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008c562000ac560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009ff62000abd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a4d62000abd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000aae919062000cdc565b60405180910390a35062000e7c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000aff919062000d0a565b90508381101562000b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3e9062000cba565b60405180910390fd5b8091505092915050565b82805462000b5f9062000da5565b90600052602060002090601f01602090048101928262000b83576000855562000bcf565b82601f1062000b9e57805160ff191683800117855562000bcf565b8280016001018555821562000bcf579182015b8281111562000bce57825182559160200191906001019062000bb1565b5b50905062000bde919062000be2565b5090565b5b8082111562000bfd57600081600090555060010162000be3565b5090565b60008151905062000c128162000e62565b92915050565b60006020828403121562000c2b57600080fd5b600062000c3b8482850162000c01565b91505092915050565b62000c4f8162000d67565b82525050565b600062000c64601b8362000cf9565b915062000c718262000e39565b602082019050919050565b62000c878162000d9b565b82525050565b600060408201905062000ca4600083018562000c44565b62000cb3602083018462000c44565b9392505050565b6000602082019050818103600083015262000cd58162000c55565b9050919050565b600060208201905062000cf3600083018462000c7c565b92915050565b600082825260208201905092915050565b600062000d178262000d9b565b915062000d248362000d9b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d5c5762000d5b62000ddb565b5b828201905092915050565b600062000d748262000d7b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000dbe57607f821691505b6020821081141562000dd55762000dd462000e0a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e6d8162000d67565b811462000e7957600080fd5b50565b60805160601c614d4662000ea26000396000818161129a01526112c60152614d466000f3fe60806040526004361061036f5760003560e01c80637d1db4a5116101c6578063bbaa7d44116100f7578063e207a92b11610095578063f1d5f5171161006f578063f1d5f51714610ccd578063f2fde38b14610cf6578063f872858a14610d1f578063fabf706314610d4a57610376565b8063e207a92b14610c4e578063ece2c59214610c77578063f0cd1dac14610ca257610376565b8063c78a789b116100d1578063c78a789b14610b7e578063c816841b14610bbb578063da00097d14610be6578063dd62ed3e14610c1157610376565b8063bbaa7d4414610b03578063c2d4640e14610b2c578063c49b9a8014610b5557610376565b80639e3fa32311610164578063a457c2d71161013e578063a457c2d714610a35578063a5d69d1f14610a72578063a9059cbb14610a9b578063b6c3af3414610ad857610376565b80639e3fa323146109b4578063a08e671f146109df578063a40dcda314610a0a57610376565b80638da5cb5b116101a05780638da5cb5b1461091e5780638f03aad514610949578063914eb66a1461097257806395d89b411461098957610376565b80637d1db4a51461089d578063807c2d9c146108c857806382eefb43146108f357610376565b80632f0a5fd4116102a0578063526012e81161023e5780635881f3ef116102185780635881f3ef146107cf578063667b511c1461080c5780636eb80ee01461083557806370a082311461086057610376565b8063526012e81461072c57806355324fa91461076957806357e6adcb146107a657610376565b80633b97084a1161027a5780633b97084a146106825780633f251688146106ab5780634a728e24146106d65780634a74bb021461070157610376565b80632f0a5fd4146105ef578063313ce5671461061a578063395093511461064557610376565b806322eaeb501161030d5780632563ae83116102e75780632563ae831461054757806327c8f835146105705780632b112e491461059b5780632cdae5cb146105c657610376565b806322eaeb50146104b657806323b872dd146104e157806325519cf21461051e57610376565b80631694505e116103495780631694505e1461040c57806318160ddd146104375780631a560bfc146104625780631d865c301461048d57610376565b806306fdde031461037b578063095ea7b3146103a65780630fe1203c146103e357610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d87565b60405161039d9190614464565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190613faf565b610e19565b6040516103da919061442e565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190613e96565b610e37565b005b34801561041857600080fd5b50610421610f10565b60405161042e9190614449565b60405180910390f35b34801561044357600080fd5b5061044c610f36565b60405161045991906145c6565b60405180910390f35b34801561046e57600080fd5b50610477610f40565b60405161048491906145c6565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061403d565b610f46565b005b3480156104c257600080fd5b506104cb611026565b6040516104d891906145c6565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190613f24565b61102c565b604051610515919061442e565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061403d565b611106565b005b34801561055357600080fd5b5061056e60048036038101906105699190613feb565b6111e6565b005b34801561057c57600080fd5b50610585611298565b6040516105929190614360565b60405180910390f35b3480156105a757600080fd5b506105b06112bc565b6040516105bd91906145c6565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190613f73565b611300565b005b3480156105fb57600080fd5b506106046113f0565b60405161061191906145c6565b60405180910390f35b34801561062657600080fd5b5061062f6113f6565b60405161063c919061466b565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613faf565b61140d565b604051610679919061442e565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190614014565b6114c0565b005b3480156106b757600080fd5b506106c061155f565b6040516106cd91906145c6565b60405180910390f35b3480156106e257600080fd5b506106eb611565565b6040516106f891906145c6565b60405180910390f35b34801561070d57600080fd5b5061071661156b565b604051610723919061442e565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613e96565b61157e565b604051610760919061442e565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b9190613e96565b61159e565b60405161079d919061442e565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190613f73565b6115be565b005b3480156107db57600080fd5b506107f660048036038101906107f19190613e96565b6116ae565b6040516108039190614360565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e9190613f73565b611c0c565b005b34801561084157600080fd5b5061084a611cfc565b60405161085791906145c6565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190613e96565b611d02565b60405161089491906145c6565b60405180910390f35b3480156108a957600080fd5b506108b2611d4b565b6040516108bf91906145c6565b60405180910390f35b3480156108d457600080fd5b506108dd611d51565b6040516108ea91906145c6565b60405180910390f35b3480156108ff57600080fd5b50610908611d57565b60405161091591906145c6565b60405180910390f35b34801561092a57600080fd5b50610933611d5d565b6040516109409190614360565b60405180910390f35b34801561095557600080fd5b50610970600480360381019061096b9190614014565b611d86565b005b34801561097e57600080fd5b50610987611e70565b005b34801561099557600080fd5b5061099e611fc3565b6040516109ab9190614464565b60405180910390f35b3480156109c057600080fd5b506109c9612055565b6040516109d691906145c6565b60405180910390f35b3480156109eb57600080fd5b506109f461205b565b604051610a0191906145c6565b60405180910390f35b348015610a1657600080fd5b50610a1f612061565b604051610a2c91906145c6565b60405180910390f35b348015610a4157600080fd5b50610a5c6004803603810190610a579190613faf565b612067565b604051610a69919061442e565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190613feb565b612134565b005b348015610aa757600080fd5b50610ac26004803603810190610abd9190613faf565b6121e6565b604051610acf919061442e565b60405180910390f35b348015610ae457600080fd5b50610aed612205565b604051610afa91906145c6565b60405180910390f35b348015610b0f57600080fd5b50610b2a6004803603810190610b259190613e96565b61220b565b005b348015610b3857600080fd5b50610b536004803603810190610b4e919061403d565b6122e4565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190613feb565b6123c4565b005b348015610b8a57600080fd5b50610ba56004803603810190610ba09190613e96565b6124ad565b604051610bb2919061442e565b60405180910390f35b348015610bc757600080fd5b50610bd06124cd565b604051610bdd9190614360565b60405180910390f35b348015610bf257600080fd5b50610bfb6124f3565b604051610c08919061442e565b60405180910390f35b348015610c1d57600080fd5b50610c386004803603810190610c339190613ee8565b612506565b604051610c4591906145c6565b60405180910390f35b348015610c5a57600080fd5b50610c756004803603810190610c709190613e96565b61258d565b005b348015610c8357600080fd5b50610c8c61267d565b604051610c9991906145c6565b60405180910390f35b348015610cae57600080fd5b50610cb7612683565b604051610cc491906145c6565b60405180910390f35b348015610cd957600080fd5b50610cf46004803603810190610cef9190614014565b612689565b005b348015610d0257600080fd5b50610d1d6004803603810190610d189190613e96565b612728565b005b348015610d2b57600080fd5b50610d346128ea565b604051610d41919061442e565b60405180910390f35b348015610d5657600080fd5b50610d716004803603810190610d6c9190613e96565b6128fd565b604051610d7e919061442e565b60405180910390f35b606060028054610d96906148e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc2906148e4565b8015610e0f5780601f10610de457610100808354040283529160200191610e0f565b820191906000526020600020905b815481529060010190602001808311610df257829003601f168201915b5050505050905090565b6000610e2d610e2661297b565b8484612983565b6001905092915050565b610e3f61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390614566565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b60145481565b610f4e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290614566565b60405180910390fd5b82600f81905550816010819055508060118190555061101b60115461100d601054600f5461291d90919063ffffffff16565b61291d90919063ffffffff16565b601681905550505050565b600e5481565b6000611039848484612b4e565b506110fb8461104661297b565b6110f685604051806060016040528060288152602001614cc460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110ac61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b612983565b600190509392505050565b61110e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290614566565b60405180910390fd5b82600c8190555081600d8190555080600e819055506111db600e546111cd600d54600c5461291d90919063ffffffff16565b61291d90919063ffffffff16565b601581905550505050565b6111ee61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127290614566565b60405180910390fd5b80601e60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112fb6112ea7f0000000000000000000000000000000000000000000000000000000000000000611d02565b60185461323990919063ffffffff16565b905090565b61130861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90614566565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b6000600460009054906101000a900460ff16905090565b60006114b661141a61297b565b846114b1856007600061142b61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b612983565b6001905092915050565b6114c861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90614566565b60405180910390fd5b80601b8190555050565b60135481565b600d5481565b601e60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6115c661297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90614566565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006116b861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c90614566565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c89190613ebf565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561182a57600080fd5b505afa15801561183e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118629190613ebf565b6040518363ffffffff1660e01b815260040161187f9291906143a4565b60206040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cf9190613ebf565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a90578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190613ebf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190613ebf565b6040518363ffffffff1660e01b8152600401611a3b9291906143a4565b602060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8d9190613ebf565b91505b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611c1461297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9890614566565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d8e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290614566565b60405180910390fd5b678ac7230489e80000811115611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d906144a6565b60405180910390fd5b8060198190555050565b611e7861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90614566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611fd2906148e4565b80601f0160208091040260200160405190810160405280929190818152602001828054611ffe906148e4565b801561204b5780601f106120205761010080835404028352916020019161204b565b820191906000526020600020905b81548152906001019060200180831161202e57829003601f168201915b5050505050905090565b60125481565b60175481565b60105481565b600061212a61207461297b565b8461212585604051806060016040528060258152602001614cec602591396007600061209e61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b612983565b6001905092915050565b61213c61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090614566565b60405180910390fd5b80601e60166101000a81548160ff02191690831515021790555050565b60006121fa6121f361297b565b8484612b4e565b506001905092915050565b600c5481565b61221361297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790614566565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ec61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237090614566565b60405180910390fd5b8260128190555081601381905550806014819055506123b96014546123ab60135460125461291d90919063ffffffff16565b61291d90919063ffffffff16565b601781905550505050565b6123cc61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245090614566565b60405180910390fd5b80601e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124a2919061442e565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61259561297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614566565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60115481565b60155481565b61269161297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461271e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271590614566565b60405180910390fd5b80601a8190555050565b61273061297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490614566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561282d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612824906144c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600080828461292c91906146db565b905083811015612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614506565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ea906145a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a906144e6565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b4191906145c6565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb690614586565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2690614486565b60405180910390fd5b601e60149054906101000a900460ff1615612c5657612c4f848484613283565b90506131ce565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cfa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d4557601954821115612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b90614526565b60405180910390fd5b5b6000612d5030611d02565b90506000601b548210159050808015612d765750601e60149054906101000a900460ff16155b8015612dcc5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612de45750601e60159054906101000a900460ff165b15612e0e57601e60169054906101000a900460ff1615612e0457601b5491505b612e0d82613456565b5b612e97846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f7d5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f9157612f8c8787876136a2565b612f93565b845b9050601e60179054906101000a900460ff168015612ffb5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561302a57601a5461301e8261301089611d02565b61291d90919063ffffffff16565b111561302957600080fd5b5b61307c81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311c91906145c6565b60405180910390a3600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561317f5750601c548510155b156131c65785600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600193505050505b9392505050565b600083831115829061321d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132149190614464565b60405180910390fd5b506000838561322c91906147bc565b9050809150509392505050565b600061327b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131d5565b905092915050565b600061330e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a382600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161344391906145c6565b60405180910390a3600190509392505050565b6001601e60146101000a81548160ff02191690831515021790555060006134af60026134a1601754613493601254876138c990919063ffffffff16565b61394490919063ffffffff16565b61394490919063ffffffff16565b905060006134c6828461323990919063ffffffff16565b90506134d18161398e565b600047905060006135026134f1600260125461394490919063ffffffff16565b60175461323990919063ffffffff16565b90506000613540600261353284613524601254886138c990919063ffffffff16565b61394490919063ffffffff16565b61394490919063ffffffff16565b9050600061356b8361355d601454876138c990919063ffffffff16565b61394490919063ffffffff16565b9050600061359482613586858861323990919063ffffffff16565b61323990919063ffffffff16565b905060008111156135cc576135cb600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613c8b565b5b600082111561365d57613601600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613c8b565b7f68cb6b018fa2ba35fa5f1aeb03eb581eb66312123d0e972eab56f2f22ee98846600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360405161365492919061437b565b60405180910390a15b60008311801561366d5750600087115b1561367d5761367c8784613cd6565b5b505050505050506000601e60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561372a576137236064613715601554866138c990919063ffffffff16565b61394490919063ffffffff16565b90506137a8565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137a7576137a46064613796601654866138c990919063ffffffff16565b61394490919063ffffffff16565b90505b5b60008111156138ac5761380381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138a391906145c6565b60405180910390a35b6138bf818461323990919063ffffffff16565b9150509392505050565b6000808314156138dc576000905061393e565b600082846138ea9190614762565b90508284826138f99190614731565b14613939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393090614546565b60405180910390fd5b809150505b92915050565b600061398683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dca565b905092915050565b6000600267ffffffffffffffff8111156139d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156139ff5781602001602082028036833780820191505090505b5090503081600081518110613a3d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613adf57600080fd5b505afa158015613af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b179190613ebf565b81600181518110613b51577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613bb830601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612983565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613c1c959493929190614611565b600060405180830381600087803b158015613c3657600080fd5b505af1158015613c4a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613c7f9291906145e1565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cd1573d6000803e3d6000fd5b505050565b613d0330601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612983565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613d4f611d5d565b426040518863ffffffff1660e01b8152600401613d71969594939291906143cd565b6060604051808303818588803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613dc3919061408c565b5050505050565b60008083118290613e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e089190614464565b60405180910390fd5b5060008385613e209190614731565b9050809150509392505050565b600081359050613e3c81614c7e565b92915050565b600081519050613e5181614c7e565b92915050565b600081359050613e6681614c95565b92915050565b600081359050613e7b81614cac565b92915050565b600081519050613e9081614cac565b92915050565b600060208284031215613ea857600080fd5b6000613eb684828501613e2d565b91505092915050565b600060208284031215613ed157600080fd5b6000613edf84828501613e42565b91505092915050565b60008060408385031215613efb57600080fd5b6000613f0985828601613e2d565b9250506020613f1a85828601613e2d565b9150509250929050565b600080600060608486031215613f3957600080fd5b6000613f4786828701613e2d565b9350506020613f5886828701613e2d565b9250506040613f6986828701613e6c565b9150509250925092565b60008060408385031215613f8657600080fd5b6000613f9485828601613e2d565b9250506020613fa585828601613e57565b9150509250929050565b60008060408385031215613fc257600080fd5b6000613fd085828601613e2d565b9250506020613fe185828601613e6c565b9150509250929050565b600060208284031215613ffd57600080fd5b600061400b84828501613e57565b91505092915050565b60006020828403121561402657600080fd5b600061403484828501613e6c565b91505092915050565b60008060006060848603121561405257600080fd5b600061406086828701613e6c565b935050602061407186828701613e6c565b925050604061408286828701613e6c565b9150509250925092565b6000806000606084860312156140a157600080fd5b60006140af86828701613e81565b93505060206140c086828701613e81565b92505060406140d186828701613e81565b9150509250925092565b60006140e78383614102565b60208301905092915050565b6140fc81614845565b82525050565b61410b816147f0565b82525050565b61411a816147f0565b82525050565b600061412b82614696565b61413581856146b9565b935061414083614686565b8060005b8381101561417157815161415888826140db565b9750614163836146ac565b925050600181019050614144565b5085935050505092915050565b61418781614802565b82525050565b61419681614857565b82525050565b6141a58161487b565b82525050565b60006141b6826146a1565b6141c081856146ca565b93506141d08185602086016148b1565b6141d9816149a3565b840191505092915050565b60006141f16023836146ca565b91506141fc826149b4565b604082019050919050565b60006142146034836146ca565b915061421f82614a03565b604082019050919050565b60006142376026836146ca565b915061424282614a52565b604082019050919050565b600061425a6022836146ca565b915061426582614aa1565b604082019050919050565b600061427d601b836146ca565b915061428882614af0565b602082019050919050565b60006142a06028836146ca565b91506142ab82614b19565b604082019050919050565b60006142c36021836146ca565b91506142ce82614b68565b604082019050919050565b60006142e66020836146ca565b91506142f182614bb7565b602082019050919050565b60006143096025836146ca565b915061431482614be0565b604082019050919050565b600061432c6024836146ca565b915061433782614c2f565b604082019050919050565b61434b8161482e565b82525050565b61435a81614838565b82525050565b60006020820190506143756000830184614111565b92915050565b600060408201905061439060008301856140f3565b61439d6020830184614342565b9392505050565b60006040820190506143b96000830185614111565b6143c66020830184614111565b9392505050565b600060c0820190506143e26000830189614111565b6143ef6020830188614342565b6143fc604083018761419c565b614409606083018661419c565b6144166080830185614111565b61442360a0830184614342565b979650505050505050565b6000602082019050614443600083018461417e565b92915050565b600060208201905061445e600083018461418d565b92915050565b6000602082019050818103600083015261447e81846141ab565b905092915050565b6000602082019050818103600083015261449f816141e4565b9050919050565b600060208201905081810360008301526144bf81614207565b9050919050565b600060208201905081810360008301526144df8161422a565b9050919050565b600060208201905081810360008301526144ff8161424d565b9050919050565b6000602082019050818103600083015261451f81614270565b9050919050565b6000602082019050818103600083015261453f81614293565b9050919050565b6000602082019050818103600083015261455f816142b6565b9050919050565b6000602082019050818103600083015261457f816142d9565b9050919050565b6000602082019050818103600083015261459f816142fc565b9050919050565b600060208201905081810360008301526145bf8161431f565b9050919050565b60006020820190506145db6000830184614342565b92915050565b60006040820190506145f66000830185614342565b81810360208301526146088184614120565b90509392505050565b600060a0820190506146266000830188614342565b614633602083018761419c565b81810360408301526146458186614120565b90506146546060830185614111565b6146616080830184614342565b9695505050505050565b60006020820190506146806000830184614351565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006146e68261482e565b91506146f18361482e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561472657614725614916565b5b828201905092915050565b600061473c8261482e565b91506147478361482e565b92508261475757614756614945565b5b828204905092915050565b600061476d8261482e565b91506147788361482e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147b1576147b0614916565b5b828202905092915050565b60006147c78261482e565b91506147d28361482e565b9250828210156147e5576147e4614916565b5b828203905092915050565b60006147fb8261480e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006148508261488d565b9050919050565b600061486282614869565b9050919050565b60006148748261480e565b9050919050565b60006148868261482e565b9050919050565b60006148988261489f565b9050919050565b60006148aa8261480e565b9050919050565b60005b838110156148cf5780820151818401526020810190506148b4565b838111156148de576000848401525b50505050565b600060028204905060018216806148fc57607f821691505b602082108114156149105761490f614974565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614c87816147f0565b8114614c9257600080fd5b50565b614c9e81614802565b8114614ca957600080fd5b50565b614cb58161482e565b8114614cc057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fd473e38a6934c25b38af0b6643f510f5ef30e81d04b54a13a9b7b9295a7fb4d64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061036f5760003560e01c80637d1db4a5116101c6578063bbaa7d44116100f7578063e207a92b11610095578063f1d5f5171161006f578063f1d5f51714610ccd578063f2fde38b14610cf6578063f872858a14610d1f578063fabf706314610d4a57610376565b8063e207a92b14610c4e578063ece2c59214610c77578063f0cd1dac14610ca257610376565b8063c78a789b116100d1578063c78a789b14610b7e578063c816841b14610bbb578063da00097d14610be6578063dd62ed3e14610c1157610376565b8063bbaa7d4414610b03578063c2d4640e14610b2c578063c49b9a8014610b5557610376565b80639e3fa32311610164578063a457c2d71161013e578063a457c2d714610a35578063a5d69d1f14610a72578063a9059cbb14610a9b578063b6c3af3414610ad857610376565b80639e3fa323146109b4578063a08e671f146109df578063a40dcda314610a0a57610376565b80638da5cb5b116101a05780638da5cb5b1461091e5780638f03aad514610949578063914eb66a1461097257806395d89b411461098957610376565b80637d1db4a51461089d578063807c2d9c146108c857806382eefb43146108f357610376565b80632f0a5fd4116102a0578063526012e81161023e5780635881f3ef116102185780635881f3ef146107cf578063667b511c1461080c5780636eb80ee01461083557806370a082311461086057610376565b8063526012e81461072c57806355324fa91461076957806357e6adcb146107a657610376565b80633b97084a1161027a5780633b97084a146106825780633f251688146106ab5780634a728e24146106d65780634a74bb021461070157610376565b80632f0a5fd4146105ef578063313ce5671461061a578063395093511461064557610376565b806322eaeb501161030d5780632563ae83116102e75780632563ae831461054757806327c8f835146105705780632b112e491461059b5780632cdae5cb146105c657610376565b806322eaeb50146104b657806323b872dd146104e157806325519cf21461051e57610376565b80631694505e116103495780631694505e1461040c57806318160ddd146104375780631a560bfc146104625780631d865c301461048d57610376565b806306fdde031461037b578063095ea7b3146103a65780630fe1203c146103e357610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d87565b60405161039d9190614464565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190613faf565b610e19565b6040516103da919061442e565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190613e96565b610e37565b005b34801561041857600080fd5b50610421610f10565b60405161042e9190614449565b60405180910390f35b34801561044357600080fd5b5061044c610f36565b60405161045991906145c6565b60405180910390f35b34801561046e57600080fd5b50610477610f40565b60405161048491906145c6565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061403d565b610f46565b005b3480156104c257600080fd5b506104cb611026565b6040516104d891906145c6565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190613f24565b61102c565b604051610515919061442e565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061403d565b611106565b005b34801561055357600080fd5b5061056e60048036038101906105699190613feb565b6111e6565b005b34801561057c57600080fd5b50610585611298565b6040516105929190614360565b60405180910390f35b3480156105a757600080fd5b506105b06112bc565b6040516105bd91906145c6565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190613f73565b611300565b005b3480156105fb57600080fd5b506106046113f0565b60405161061191906145c6565b60405180910390f35b34801561062657600080fd5b5061062f6113f6565b60405161063c919061466b565b60405180910390f35b34801561065157600080fd5b5061066c60048036038101906106679190613faf565b61140d565b604051610679919061442e565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190614014565b6114c0565b005b3480156106b757600080fd5b506106c061155f565b6040516106cd91906145c6565b60405180910390f35b3480156106e257600080fd5b506106eb611565565b6040516106f891906145c6565b60405180910390f35b34801561070d57600080fd5b5061071661156b565b604051610723919061442e565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613e96565b61157e565b604051610760919061442e565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b9190613e96565b61159e565b60405161079d919061442e565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190613f73565b6115be565b005b3480156107db57600080fd5b506107f660048036038101906107f19190613e96565b6116ae565b6040516108039190614360565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e9190613f73565b611c0c565b005b34801561084157600080fd5b5061084a611cfc565b60405161085791906145c6565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190613e96565b611d02565b60405161089491906145c6565b60405180910390f35b3480156108a957600080fd5b506108b2611d4b565b6040516108bf91906145c6565b60405180910390f35b3480156108d457600080fd5b506108dd611d51565b6040516108ea91906145c6565b60405180910390f35b3480156108ff57600080fd5b50610908611d57565b60405161091591906145c6565b60405180910390f35b34801561092a57600080fd5b50610933611d5d565b6040516109409190614360565b60405180910390f35b34801561095557600080fd5b50610970600480360381019061096b9190614014565b611d86565b005b34801561097e57600080fd5b50610987611e70565b005b34801561099557600080fd5b5061099e611fc3565b6040516109ab9190614464565b60405180910390f35b3480156109c057600080fd5b506109c9612055565b6040516109d691906145c6565b60405180910390f35b3480156109eb57600080fd5b506109f461205b565b604051610a0191906145c6565b60405180910390f35b348015610a1657600080fd5b50610a1f612061565b604051610a2c91906145c6565b60405180910390f35b348015610a4157600080fd5b50610a5c6004803603810190610a579190613faf565b612067565b604051610a69919061442e565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190613feb565b612134565b005b348015610aa757600080fd5b50610ac26004803603810190610abd9190613faf565b6121e6565b604051610acf919061442e565b60405180910390f35b348015610ae457600080fd5b50610aed612205565b604051610afa91906145c6565b60405180910390f35b348015610b0f57600080fd5b50610b2a6004803603810190610b259190613e96565b61220b565b005b348015610b3857600080fd5b50610b536004803603810190610b4e919061403d565b6122e4565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190613feb565b6123c4565b005b348015610b8a57600080fd5b50610ba56004803603810190610ba09190613e96565b6124ad565b604051610bb2919061442e565b60405180910390f35b348015610bc757600080fd5b50610bd06124cd565b604051610bdd9190614360565b60405180910390f35b348015610bf257600080fd5b50610bfb6124f3565b604051610c08919061442e565b60405180910390f35b348015610c1d57600080fd5b50610c386004803603810190610c339190613ee8565b612506565b604051610c4591906145c6565b60405180910390f35b348015610c5a57600080fd5b50610c756004803603810190610c709190613e96565b61258d565b005b348015610c8357600080fd5b50610c8c61267d565b604051610c9991906145c6565b60405180910390f35b348015610cae57600080fd5b50610cb7612683565b604051610cc491906145c6565b60405180910390f35b348015610cd957600080fd5b50610cf46004803603810190610cef9190614014565b612689565b005b348015610d0257600080fd5b50610d1d6004803603810190610d189190613e96565b612728565b005b348015610d2b57600080fd5b50610d346128ea565b604051610d41919061442e565b60405180910390f35b348015610d5657600080fd5b50610d716004803603810190610d6c9190613e96565b6128fd565b604051610d7e919061442e565b60405180910390f35b606060028054610d96906148e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc2906148e4565b8015610e0f5780601f10610de457610100808354040283529160200191610e0f565b820191906000526020600020905b815481529060010190602001808311610df257829003601f168201915b5050505050905090565b6000610e2d610e2661297b565b8484612983565b6001905092915050565b610e3f61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390614566565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b60145481565b610f4e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290614566565b60405180910390fd5b82600f81905550816010819055508060118190555061101b60115461100d601054600f5461291d90919063ffffffff16565b61291d90919063ffffffff16565b601681905550505050565b600e5481565b6000611039848484612b4e565b506110fb8461104661297b565b6110f685604051806060016040528060288152602001614cc460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110ac61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b612983565b600190509392505050565b61110e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290614566565b60405180910390fd5b82600c8190555081600d8190555080600e819055506111db600e546111cd600d54600c5461291d90919063ffffffff16565b61291d90919063ffffffff16565b601581905550505050565b6111ee61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127290614566565b60405180910390fd5b80601e60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006112fb6112ea7f000000000000000000000000000000000000000000000000000000000000dead611d02565b60185461323990919063ffffffff16565b905090565b61130861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90614566565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b6000600460009054906101000a900460ff16905090565b60006114b661141a61297b565b846114b1856007600061142b61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b612983565b6001905092915050565b6114c861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90614566565b60405180910390fd5b80601b8190555050565b60135481565b600d5481565b601e60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6115c661297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90614566565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006116b861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c90614566565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c89190613ebf565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561182a57600080fd5b505afa15801561183e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118629190613ebf565b6040518363ffffffff1660e01b815260040161187f9291906143a4565b60206040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cf9190613ebf565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a90578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190613ebf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190613ebf565b6040518363ffffffff1660e01b8152600401611a3b9291906143a4565b602060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8d9190613ebf565b91505b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611c1461297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9890614566565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d8e61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290614566565b60405180910390fd5b678ac7230489e80000811115611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d906144a6565b60405180910390fd5b8060198190555050565b611e7861297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90614566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611fd2906148e4565b80601f0160208091040260200160405190810160405280929190818152602001828054611ffe906148e4565b801561204b5780601f106120205761010080835404028352916020019161204b565b820191906000526020600020905b81548152906001019060200180831161202e57829003601f168201915b5050505050905090565b60125481565b60175481565b60105481565b600061212a61207461297b565b8461212585604051806060016040528060258152602001614cec602591396007600061209e61297b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b612983565b6001905092915050565b61213c61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090614566565b60405180910390fd5b80601e60166101000a81548160ff02191690831515021790555050565b60006121fa6121f361297b565b8484612b4e565b506001905092915050565b600c5481565b61221361297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229790614566565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122ec61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237090614566565b60405180910390fd5b8260128190555081601381905550806014819055506123b96014546123ab60135460125461291d90919063ffffffff16565b61291d90919063ffffffff16565b601781905550505050565b6123cc61297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245090614566565b60405180910390fd5b80601e60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124a2919061442e565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601e60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61259561297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614566565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60115481565b60155481565b61269161297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461271e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271590614566565b60405180910390fd5b80601a8190555050565b61273061297b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490614566565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561282d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612824906144c6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600080828461292c91906146db565b905083811015612971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296890614506565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ea906145a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a906144e6565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b4191906145c6565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb690614586565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2690614486565b60405180910390fd5b601e60149054906101000a900460ff1615612c5657612c4f848484613283565b90506131ce565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cfa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d4557601954821115612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b90614526565b60405180910390fd5b5b6000612d5030611d02565b90506000601b548210159050808015612d765750601e60149054906101000a900460ff16155b8015612dcc5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612de45750601e60159054906101000a900460ff165b15612e0e57601e60169054906101000a900460ff1615612e0457601b5491505b612e0d82613456565b5b612e97846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f7d5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f9157612f8c8787876136a2565b612f93565b845b9050601e60179054906101000a900460ff168015612ffb5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561302a57601a5461301e8261301089611d02565b61291d90919063ffffffff16565b111561302957600080fd5b5b61307c81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311c91906145c6565b60405180910390a3600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561317f5750601c548510155b156131c65785600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600193505050505b9392505050565b600083831115829061321d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132149190614464565b60405180910390fd5b506000838561322c91906147bc565b9050809150509392505050565b600061327b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131d5565b905092915050565b600061330e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131d59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a382600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161344391906145c6565b60405180910390a3600190509392505050565b6001601e60146101000a81548160ff02191690831515021790555060006134af60026134a1601754613493601254876138c990919063ffffffff16565b61394490919063ffffffff16565b61394490919063ffffffff16565b905060006134c6828461323990919063ffffffff16565b90506134d18161398e565b600047905060006135026134f1600260125461394490919063ffffffff16565b60175461323990919063ffffffff16565b90506000613540600261353284613524601254886138c990919063ffffffff16565b61394490919063ffffffff16565b61394490919063ffffffff16565b9050600061356b8361355d601454876138c990919063ffffffff16565b61394490919063ffffffff16565b9050600061359482613586858861323990919063ffffffff16565b61323990919063ffffffff16565b905060008111156135cc576135cb600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613c8b565b5b600082111561365d57613601600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613c8b565b7f68cb6b018fa2ba35fa5f1aeb03eb581eb66312123d0e972eab56f2f22ee98846600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360405161365492919061437b565b60405180910390a15b60008311801561366d5750600087115b1561367d5761367c8784613cd6565b5b505050505050506000601e60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561372a576137236064613715601554866138c990919063ffffffff16565b61394490919063ffffffff16565b90506137a8565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137a7576137a46064613796601654866138c990919063ffffffff16565b61394490919063ffffffff16565b90505b5b60008111156138ac5761380381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138a391906145c6565b60405180910390a35b6138bf818461323990919063ffffffff16565b9150509392505050565b6000808314156138dc576000905061393e565b600082846138ea9190614762565b90508284826138f99190614731565b14613939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393090614546565b60405180910390fd5b809150505b92915050565b600061398683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dca565b905092915050565b6000600267ffffffffffffffff8111156139d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156139ff5781602001602082028036833780820191505090505b5090503081600081518110613a3d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613adf57600080fd5b505afa158015613af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b179190613ebf565b81600181518110613b51577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613bb830601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612983565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613c1c959493929190614611565b600060405180830381600087803b158015613c3657600080fd5b505af1158015613c4a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613c7f9291906145e1565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613cd1573d6000803e3d6000fd5b505050565b613d0330601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612983565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613d4f611d5d565b426040518863ffffffff1660e01b8152600401613d71969594939291906143cd565b6060604051808303818588803b158015613d8a57600080fd5b505af1158015613d9e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613dc3919061408c565b5050505050565b60008083118290613e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e089190614464565b60405180910390fd5b5060008385613e209190614731565b9050809150509392505050565b600081359050613e3c81614c7e565b92915050565b600081519050613e5181614c7e565b92915050565b600081359050613e6681614c95565b92915050565b600081359050613e7b81614cac565b92915050565b600081519050613e9081614cac565b92915050565b600060208284031215613ea857600080fd5b6000613eb684828501613e2d565b91505092915050565b600060208284031215613ed157600080fd5b6000613edf84828501613e42565b91505092915050565b60008060408385031215613efb57600080fd5b6000613f0985828601613e2d565b9250506020613f1a85828601613e2d565b9150509250929050565b600080600060608486031215613f3957600080fd5b6000613f4786828701613e2d565b9350506020613f5886828701613e2d565b9250506040613f6986828701613e6c565b9150509250925092565b60008060408385031215613f8657600080fd5b6000613f9485828601613e2d565b9250506020613fa585828601613e57565b9150509250929050565b60008060408385031215613fc257600080fd5b6000613fd085828601613e2d565b9250506020613fe185828601613e6c565b9150509250929050565b600060208284031215613ffd57600080fd5b600061400b84828501613e57565b91505092915050565b60006020828403121561402657600080fd5b600061403484828501613e6c565b91505092915050565b60008060006060848603121561405257600080fd5b600061406086828701613e6c565b935050602061407186828701613e6c565b925050604061408286828701613e6c565b9150509250925092565b6000806000606084860312156140a157600080fd5b60006140af86828701613e81565b93505060206140c086828701613e81565b92505060406140d186828701613e81565b9150509250925092565b60006140e78383614102565b60208301905092915050565b6140fc81614845565b82525050565b61410b816147f0565b82525050565b61411a816147f0565b82525050565b600061412b82614696565b61413581856146b9565b935061414083614686565b8060005b8381101561417157815161415888826140db565b9750614163836146ac565b925050600181019050614144565b5085935050505092915050565b61418781614802565b82525050565b61419681614857565b82525050565b6141a58161487b565b82525050565b60006141b6826146a1565b6141c081856146ca565b93506141d08185602086016148b1565b6141d9816149a3565b840191505092915050565b60006141f16023836146ca565b91506141fc826149b4565b604082019050919050565b60006142146034836146ca565b915061421f82614a03565b604082019050919050565b60006142376026836146ca565b915061424282614a52565b604082019050919050565b600061425a6022836146ca565b915061426582614aa1565b604082019050919050565b600061427d601b836146ca565b915061428882614af0565b602082019050919050565b60006142a06028836146ca565b91506142ab82614b19565b604082019050919050565b60006142c36021836146ca565b91506142ce82614b68565b604082019050919050565b60006142e66020836146ca565b91506142f182614bb7565b602082019050919050565b60006143096025836146ca565b915061431482614be0565b604082019050919050565b600061432c6024836146ca565b915061433782614c2f565b604082019050919050565b61434b8161482e565b82525050565b61435a81614838565b82525050565b60006020820190506143756000830184614111565b92915050565b600060408201905061439060008301856140f3565b61439d6020830184614342565b9392505050565b60006040820190506143b96000830185614111565b6143c66020830184614111565b9392505050565b600060c0820190506143e26000830189614111565b6143ef6020830188614342565b6143fc604083018761419c565b614409606083018661419c565b6144166080830185614111565b61442360a0830184614342565b979650505050505050565b6000602082019050614443600083018461417e565b92915050565b600060208201905061445e600083018461418d565b92915050565b6000602082019050818103600083015261447e81846141ab565b905092915050565b6000602082019050818103600083015261449f816141e4565b9050919050565b600060208201905081810360008301526144bf81614207565b9050919050565b600060208201905081810360008301526144df8161422a565b9050919050565b600060208201905081810360008301526144ff8161424d565b9050919050565b6000602082019050818103600083015261451f81614270565b9050919050565b6000602082019050818103600083015261453f81614293565b9050919050565b6000602082019050818103600083015261455f816142b6565b9050919050565b6000602082019050818103600083015261457f816142d9565b9050919050565b6000602082019050818103600083015261459f816142fc565b9050919050565b600060208201905081810360008301526145bf8161431f565b9050919050565b60006020820190506145db6000830184614342565b92915050565b60006040820190506145f66000830185614342565b81810360208301526146088184614120565b90509392505050565b600060a0820190506146266000830188614342565b614633602083018761419c565b81810360408301526146458186614120565b90506146546060830185614111565b6146616080830184614342565b9695505050505050565b60006020820190506146806000830184614351565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006146e68261482e565b91506146f18361482e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561472657614725614916565b5b828201905092915050565b600061473c8261482e565b91506147478361482e565b92508261475757614756614945565b5b828204905092915050565b600061476d8261482e565b91506147788361482e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156147b1576147b0614916565b5b828202905092915050565b60006147c78261482e565b91506147d28361482e565b9250828210156147e5576147e4614916565b5b828203905092915050565b60006147fb8261480e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006148508261488d565b9050919050565b600061486282614869565b9050919050565b60006148748261480e565b9050919050565b60006148868261482e565b9050919050565b60006148988261489f565b9050919050565b60006148aa8261480e565b9050919050565b60005b838110156148cf5780820151818401526020810190506148b4565b838111156148de576000848401525b50505050565b600060028204905060018216806148fc57607f821691505b602082108114156149105761490f614974565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614c87816147f0565b8114614c9257600080fd5b50565b614c9e81614802565b8114614ca957600080fd5b50565b614cb58161482e565b8114614cc057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fd473e38a6934c25b38af0b6643f510f5ef30e81d04b54a13a9b7b9295a7fb4d64736f6c63430008040033
Deployed Bytecode Sourcemap
14315:15043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18079:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19245:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21924:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16006:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18356:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15527:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20491:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15286:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23850:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21412:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14747:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22486:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20019:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15324:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18265:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18742:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21792:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15491:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15249:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16121:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15029:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15149:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21533:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22760:813;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19874:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15947:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18464:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15766:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15823:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15609:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21176:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6079:145;;;;;;;;;;;;;:::i;:::-;;18170:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15449:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15654:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15368:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18968:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22349:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23675:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15206:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22047:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20824:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22170:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15091:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16054:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16168:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18591:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19759:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15407:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15566:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21682:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16219:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14968:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18079:83;18116:13;18149:5;18142:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18079:83;:::o;19245:161::-;19320:4;19337:39;19346:12;:10;:12::i;:::-;19360:7;19369:6;19337:8;:39::i;:::-;19394:4;19387:11;;19245:161;;;;:::o;21924:115::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22020:10:::1;21999;;:32;;;;;;;;;;;;;;;;;;21924:115:::0;:::o;16006:41::-;;;;;;;;;;;;;:::o;18356:100::-;18409:7;18436:12;;18429:19;;18356:100;:::o;15527:30::-;;;;:::o;20491:321::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20628:15:::1;20607:18;:36;;;;20669:9;20654:12;:24;;;;20705:10;20689:13;:26;;;;20749:55;20790:13;;20749:36;20772:12;;20749:18;;:22;;:36;;;;:::i;:::-;:40;;:55;;;;:::i;:::-;20728:18;:76;;;;20491:321:::0;;;:::o;15286:31::-;;;;:::o;23850:313::-;23948:4;23965:36;23975:6;23983:9;23994:6;23965:9;:36::i;:::-;;24012:121;24021:6;24029:12;:10;:12::i;:::-;24043:89;24081:6;24043:89;;;;;;;;;;;;;;;;;:11;:19;24055:6;24043:19;;;;;;;;;;;;;;;:33;24063:12;:10;:12::i;:::-;24043:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24012:8;:121::i;:::-;24151:4;24144:11;;23850:313;;;;;:::o;20170:::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20305:15:::1;20285:17;:35;;;;20345:9;20331:11;:23;;;;20380:10;20365:12;:25;;;;20423:52;20462:12;;20423:34;20445:11;;20423:17;;:21;;:34;;;;:::i;:::-;:38;;:52;;;;:::i;:::-;20403:17;:72;;;;20170:313:::0;;;:::o;21412:113::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21509:8:::1;21490:16;;:27;;;;;;;;;;;;;;;;;;21412:113:::0;:::o;14747:81::-;;;:::o;22486:128::-;22539:7;22566:40;22583:22;22593:11;22583:9;:22::i;:::-;22566:12;;:16;;:40;;;;:::i;:::-;22559:47;;22486:128;:::o;20019:143::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20146:8:::1;20113:21;:30;20135:7;20113:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20019:143:::0;;:::o;15324:37::-;;;;:::o;18265:83::-;18306:5;18331:9;;;;;;;;;;;18324:16;;18265:83;:::o;18742:218::-;18830:4;18847:83;18856:12;:10;:12::i;:::-;18870:7;18879:50;18918:10;18879:11;:25;18891:12;:10;:12::i;:::-;18879:25;;;;;;;;;;;;;;;:34;18905:7;18879:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18847:8;:83::i;:::-;18948:4;18941:11;;18742:218;;;;:::o;21792:124::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21900:8:::1;21874:23;:34;;;;21792:124:::0;:::o;15491:29::-;;;;:::o;15249:30::-;;;;:::o;16121:40::-;;;;;;;;;;;;;:::o;15029:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;15149:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;21533:141::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21660:6:::1;21627:22;:30;21650:6;21627:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21533:141:::0;;:::o;22760:813::-;22840:22;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22877:35:::1;22934:16;22877:74;;23000:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22982:53;;;23044:4;23051:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22982:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22965:110;;23117:1;23091:28;;:14;:28;;;23088:225;;;23205:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23187:74;;;23270:4;23277:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23187:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23170:131;;23088:225;23339:14;23325:11;;:28;;;;;;;;;;;;;;;;;;23405:16;23387:15;;:34;;;;;;;;;;;;;;;;;;23506:4;23459:22;:44;23490:11;;;;;;;;;;;23459:44;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;23561:4;23521:15;:37;23545:11;;;;;;;;;;;23521:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;6058:1;22760:813:::0;;;:::o;19874:133::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19993:6:::1;19964:18;:26;19983:6;19964:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19874:133:::0;;:::o;15947:50::-;;;;:::o;18464:119::-;18530:7;18557:9;:18;18567:7;18557:18;;;;;;;;;;;;;;;;18550:25;;18464:119;;;:::o;15766:50::-;;;;:::o;15823:48::-;;;;:::o;15609:38::-;;;;:::o;5854:79::-;5892:7;5919:6;;;;;;;;;;;5912:13;;5854:79;:::o;21176:228::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21280:21:::1;21264:11;:38;;21256:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;21385:11;21370:12;:26;;;;21176:228:::0;:::o;6079:145::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6183:1:::1;6146:40;;6167:6;::::0;::::1;;;;;;;;6146:40;;;;;;;;;;;;6214:1;6197:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6079:145::o:0;18170:87::-;18209:13;18242:7;18235:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18170:87;:::o;15449:35::-;;;;:::o;15654:43::-;;;;:::o;15368:32::-;;;;:::o;18968:269::-;19061:4;19078:129;19087:12;:10;:12::i;:::-;19101:7;19110:96;19149:15;19110:96;;;;;;;;;;;;;;;;;:11;:25;19122:12;:10;:12::i;:::-;19110:25;;;;;;;;;;;;;;;:34;19136:7;19110:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19078:8;:129::i;:::-;19225:4;19218:11;;18968:269;;;;:::o;22349:125::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22458:8:::1;22430:25;;:36;;;;;;;;;;;;;;;;;;22349:125:::0;:::o;23675:167::-;23753:4;23770:42;23780:12;:10;:12::i;:::-;23794:9;23805:6;23770:9;:42::i;:::-;;23830:4;23823:11;;23675:167;;;;:::o;15206:36::-;;;;:::o;22047:115::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22143:10:::1;22122;;:32;;;;;;;;;;;;;;;;;;22047:115:::0;:::o;20824:340::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20978:17:::1;20959:16;:36;;;;21019:11;21006:10;:24;;;;21055:12;21041:11;:26;;;;21107:49;21144:11;;21107:32;21128:10;;21107:16;;:20;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;21080:24;:76;;;;20824:340:::0;;;:::o;22170:171::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22271:8:::1;22247:21;;:32;;;;;;;;;;;;;;;;;;22295:38;22324:8;22295:38;;;;;;:::i;:::-;;;;;;;;22170:171:::0;:::o;15091:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;16054:26::-;;;;;;;;;;;;;:::o;16168:44::-;;;;;;;;;;;;;:::o;18591:143::-;18672:7;18699:11;:18;18711:5;18699:18;;;;;;;;;;;;;;;:27;18718:7;18699:27;;;;;;;;;;;;;;;;18692:34;;18591:143;;;;:::o;19759:107::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19854:4:::1;19827:15;:24;19843:7;19827:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19759:107:::0;:::o;15407:33::-;;;;:::o;15566:36::-;;;;:::o;21682:102::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21768:8:::1;21754:10;:22;;;;21682:102:::0;:::o;6232:244::-;5998:12;:10;:12::i;:::-;5988:22;;:6;;;;;;;;;;:22;;;5980:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6341:1:::1;6321:22;;:8;:22;;;;6313:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6431:8;6402:38;;6423:6;::::0;::::1;;;;;;;;6402:38;;;;;;;;;;;;6460:8;6451:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6232:244:::0;:::o;16219:35::-;;;;;;;;;;;;;:::o;14968:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;1256:181::-;1314:7;1334:9;1350:1;1346;:5;;;;:::i;:::-;1334:17;;1375:1;1370;:6;;1362:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1428:1;1421:8;;;1256:181;;;;:::o;188:115::-;241:15;284:10;269:26;;188:115;:::o;19414:337::-;19524:1;19507:19;;:5;:19;;;;19499:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19605:1;19586:21;;:7;:21;;;;19578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19689:6;19659:11;:18;19671:5;19659:18;;;;;;;;;;;;;;;:27;19678:7;19659:27;;;;;;;;;;;;;;;:36;;;;19727:7;19711:32;;19720:5;19711:32;;;19736:6;19711:32;;;;;;:::i;:::-;;;;;;;;19414:337;;;:::o;24171:1911::-;24258:4;24303:1;24285:20;;:6;:20;;;;24277:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24387:1;24366:23;;:9;:23;;;;24358:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24445:16;;;;;;;;;;;24442:1633;;;24495:41;24510:6;24518:9;24529:6;24495:14;:41::i;:::-;24488:48;;;;24442:1633;24592:18;:26;24611:6;24592:26;;;;;;;;;;;;;;;;;;;;;;;;;24591:27;:61;;;;;24623:18;:29;24642:9;24623:29;;;;;;;;;;;;;;;;;;;;;;;;;24622:30;24591:61;24588:176;;;24691:12;;24681:6;:22;;24673:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24588:176;24792:28;24823:24;24841:4;24823:9;:24::i;:::-;24792:55;;24862:28;24917:23;;24893:20;:47;;24862:78;;24973:23;:44;;;;;25001:16;;;;;;;;;;;25000:17;24973:44;:72;;;;;25022:15;:23;25038:6;25022:23;;;;;;;;;;;;;;;;;;;;;;;;;25021:24;24973:72;:97;;;;;25049:21;;;;;;;;;;;24973:97;24969:308;;;25108:25;;;;;;;;;;;25105:97;;;25179:23;;25156:46;;25105:97;25221:36;25236:20;25221:14;:36::i;:::-;24969:308;25313:53;25335:6;25313:53;;;;;;;;;;;;;;;;;:9;:17;25323:6;25313:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25293:9;:17;25303:6;25293:17;;;;;;;;;;;;;;;:73;;;;25383:19;25406:21;:29;25428:6;25406:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;25439:21;:32;25461:9;25439:32;;;;;;;;;;;;;;;;;;;;;;;;;25406:65;25405:156;;25527:34;25535:6;25543:9;25554:6;25527:7;:34::i;:::-;25405:156;;;25518:6;25405:156;25383:178;;25581:16;;;;;;;;;;;:54;;;;;25602:22;:33;25625:9;25602:33;;;;;;;;;;;;;;;;;;;;;;;;;25601:34;25581:54;25578:136;;;25703:10;;25662:37;25687:11;25662:20;25672:9;25662;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;25654:60;;;;;;25578:136;25754:37;25779:11;25754:9;:20;25764:9;25754:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25731:9;:20;25741:9;25731:20;;;;;;;;;;;;;;;:60;;;;25830:9;25813:40;;25822:6;25813:40;;;25841:11;25813:40;;;;;;:::i;:::-;;;;;;;;25918:15;:23;25934:6;25918:23;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;25955:13;;25945:6;:23;;25918:50;25915:121;;;26010:9;25989:10;;:31;;;;;;;;;;;;;;;;;;25915:121;26059:4;26052:11;;;;;24171:1911;;;;;;:::o;1589:192::-;1675:7;1708:1;1703;:6;;1711:12;1695:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1735:9;1751:1;1747;:5;;;;:::i;:::-;1735:17;;1772:1;1765:8;;;1589:192;;;;;:::o;1445:136::-;1503:7;1530:43;1534:1;1537;1530:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1523:50;;1445:136;;;;:::o;26090:330::-;26183:4;26220:53;26242:6;26220:53;;;;;;;;;;;;;;;;;:9;:17;26230:6;26220:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;26200:9;:17;26210:6;26200:17;;;;;;;;;;;;;;;:73;;;;26307:32;26332:6;26307:9;:20;26317:9;26307:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;26284:9;:20;26294:9;26284:20;;;;;;;;;;;;;;;:55;;;;26372:9;26355:35;;26364:6;26355:35;;;26383:6;26355:35;;;;;;:::i;:::-;;;;;;;;26408:4;26401:11;;26090:330;;;;;:::o;26428:1084::-;16776:4;16757:16;;:23;;;;;;;;;;;;;;;;;;26510:19:::1;26532:66;26596:1;26532:59;26566:24;;26532:29;26544:16;;26532:7;:11;;:29;;;;:::i;:::-;:33;;:59;;;;:::i;:::-;:63;;:66;;;;:::i;:::-;26510:88;;26609:21;26633:24;26645:11;26633:7;:11;;:24;;;;:::i;:::-;26609:48;;26670:31;26687:13;26670:16;:31::i;:::-;26712:22;26737:21;26712:46;;26771:19;26793:53;26822:23;26843:1;26822:16;;:20;;:23;;;;:::i;:::-;26793:24;;:28;;:53;;;;:::i;:::-;26771:75;;26867:26;26896:60;26954:1;26896:53;26937:11;26896:36;26915:16;;26896:14;:18;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;26867:89;;26967:21;26991:48;27027:11;26991:31;27010:11;;26991:14;:18;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;26967:72;;27050:20;27073:57;27116:13;27073:38;27092:18;27073:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;27050:80;;27161:1;27146:12;:16;27143:80;;;27177:46;27198:10;;;;;;;;;;;27210:12;27177:20;:46::i;:::-;27143:80;27255:1;27239:13;:17;27236:152;;;27272:47;27293:10;;;;;;;;;;;27305:13;27272:20;:47::i;:::-;27339:37;27350:10;;;;;;;;;;;27362:13;27339:37;;;;;;;:::i;:::-;;;;;;;;27236:152;27424:1;27403:18;:22;:41;;;;;27443:1;27429:11;:15;27403:41;27400:104;;;27459:45;27472:11;27485:18;27459:12;:45::i;:::-;27400:104;16791:1;;;;;;;16822:5:::0;16803:16;;:24;;;;;;;;;;;;;;;;;;26428:1084;:::o;28719:628::-;28805:7;28835:17;28855:1;28835:21;;28880:15;:23;28896:6;28880:23;;;;;;;;;;;;;;;;;;;;;;;;;28877:229;;;28932:38;28966:3;28932:29;28943:17;;28932:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;28920:50;;28877:229;;;29000:15;:26;29016:9;29000:26;;;;;;;;;;;;;;;;;;;;;;;;;28997:109;;;29055:39;29090:3;29055:30;29066:18;;29055:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;29043:51;;28997:109;28877:229;29141:1;29129:9;:13;29126:173;;;29186:39;29215:9;29186;:24;29204:4;29186:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;29159:9;:24;29177:4;29159:24;;;;;;;;;;;;;;;:66;;;;29270:4;29245:42;;29254:6;29245:42;;;29277:9;29245:42;;;;;;:::i;:::-;;;;;;;;29126:173;29318:21;29329:9;29318:6;:10;;:21;;;;:::i;:::-;29311:28;;;28719:628;;;;;:::o;1789:250::-;1847:7;1876:1;1871;:6;1867:47;;;1901:1;1894:8;;;;1867:47;1926:9;1942:1;1938;:5;;;;:::i;:::-;1926:17;;1971:1;1966;1962;:5;;;;:::i;:::-;:10;1954:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2030:1;2023:8;;;1789:250;;;;;:::o;2047:132::-;2105:7;2132:39;2136:1;2139;2132:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2125:46;;2047:132;;;;:::o;27524:666::-;27650:21;27688:1;27674:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27650:40;;27719:4;27701;27706:1;27701:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;27745:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27735:4;27740:1;27735:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;27780:62;27797:4;27812:15;;;;;;;;;;;27830:11;27780:8;:62::i;:::-;27881:15;;;;;;;;;;;:66;;;27962:11;27988:1;28032:4;28059;28095:15;27881:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28147:35;28164:11;28177:4;28147:35;;;;;;;:::i;:::-;;;;;;;;27524:666;;:::o;22622:126::-;22714:9;:18;;:26;22733:6;22714:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22622:126;;:::o;28198:513::-;28346:62;28363:4;28378:15;;;;;;;;;;;28396:11;28346:8;:62::i;:::-;28451:15;;;;;;;;;;;:31;;;28490:9;28523:4;28543:11;28569:1;28612;28655:7;:5;:7::i;:::-;28677:15;28451:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28198:513;;:::o;2187:278::-;2273:7;2305:1;2301;:5;2308:12;2293:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2332:9;2348:1;2344;:5;;;;:::i;:::-;2332:17;;2456:1;2449:8;;;2187:278;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;1072:6;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;1360:6;1368;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;1782:6;1790;1798;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;2328:6;2336;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;2738:6;2746;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:256::-;3139:6;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3204:1;3201;3194:12;3156:2;3247:1;3272:50;3314:7;3305:6;3294:9;3290:22;3272:50;:::i;:::-;3262:60;;3218:114;3146:193;;;;:::o;3345:262::-;3404:6;3453:2;3441:9;3432:7;3428:23;3424:32;3421:2;;;3469:1;3466;3459:12;3421:2;3512:1;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3483:117;3411:196;;;;:::o;3613:552::-;3690:6;3698;3706;3755:2;3743:9;3734:7;3730:23;3726:32;3723:2;;;3771:1;3768;3761:12;3723:2;3814:1;3839:53;3884:7;3875:6;3864:9;3860:22;3839:53;:::i;:::-;3829:63;;3785:117;3941:2;3967:53;4012:7;4003:6;3992:9;3988:22;3967:53;:::i;:::-;3957:63;;3912:118;4069:2;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4040:118;3713:452;;;;;:::o;4171:596::-;4259:6;4267;4275;4324:2;4312:9;4303:7;4299:23;4295:32;4292:2;;;4340:1;4337;4330:12;4292:2;4383:1;4408:64;4464:7;4455:6;4444:9;4440:22;4408:64;:::i;:::-;4398:74;;4354:128;4521:2;4547:64;4603:7;4594:6;4583:9;4579:22;4547:64;:::i;:::-;4537:74;;4492:129;4660:2;4686:64;4742:7;4733:6;4722:9;4718:22;4686:64;:::i;:::-;4676:74;;4631:129;4282:485;;;;;:::o;4773:179::-;4842:10;4863:46;4905:3;4897:6;4863:46;:::i;:::-;4941:4;4936:3;4932:14;4918:28;;4853:99;;;;:::o;4958:147::-;5053:45;5092:5;5053:45;:::i;:::-;5048:3;5041:58;5031:74;;:::o;5111:108::-;5188:24;5206:5;5188:24;:::i;:::-;5183:3;5176:37;5166:53;;:::o;5225:118::-;5312:24;5330:5;5312:24;:::i;:::-;5307:3;5300:37;5290:53;;:::o;5379:732::-;5498:3;5527:54;5575:5;5527:54;:::i;:::-;5597:86;5676:6;5671:3;5597:86;:::i;:::-;5590:93;;5707:56;5757:5;5707:56;:::i;:::-;5786:7;5817:1;5802:284;5827:6;5824:1;5821:13;5802:284;;;5903:6;5897:13;5930:63;5989:3;5974:13;5930:63;:::i;:::-;5923:70;;6016:60;6069:6;6016:60;:::i;:::-;6006:70;;5862:224;5849:1;5846;5842:9;5837:14;;5802:284;;;5806:14;6102:3;6095:10;;5503:608;;;;;;;:::o;6117:109::-;6198:21;6213:5;6198:21;:::i;:::-;6193:3;6186:34;6176:50;;:::o;6232:185::-;6346:64;6404:5;6346:64;:::i;:::-;6341:3;6334:77;6324:93;;:::o;6423:147::-;6518:45;6557:5;6518:45;:::i;:::-;6513:3;6506:58;6496:74;;:::o;6576:364::-;6664:3;6692:39;6725:5;6692:39;:::i;:::-;6747:71;6811:6;6806:3;6747:71;:::i;:::-;6740:78;;6827:52;6872:6;6867:3;6860:4;6853:5;6849:16;6827:52;:::i;:::-;6904:29;6926:6;6904:29;:::i;:::-;6899:3;6895:39;6888:46;;6668:272;;;;;:::o;6946:366::-;7088:3;7109:67;7173:2;7168:3;7109:67;:::i;:::-;7102:74;;7185:93;7274:3;7185:93;:::i;:::-;7303:2;7298:3;7294:12;7287:19;;7092:220;;;:::o;7318:366::-;7460:3;7481:67;7545:2;7540:3;7481:67;:::i;:::-;7474:74;;7557:93;7646:3;7557:93;:::i;:::-;7675:2;7670:3;7666:12;7659:19;;7464:220;;;:::o;7690:366::-;7832:3;7853:67;7917:2;7912:3;7853:67;:::i;:::-;7846:74;;7929:93;8018:3;7929:93;:::i;:::-;8047:2;8042:3;8038:12;8031:19;;7836:220;;;:::o;8062:366::-;8204:3;8225:67;8289:2;8284:3;8225:67;:::i;:::-;8218:74;;8301:93;8390:3;8301:93;:::i;:::-;8419:2;8414:3;8410:12;8403:19;;8208:220;;;:::o;8434:366::-;8576:3;8597:67;8661:2;8656:3;8597:67;:::i;:::-;8590:74;;8673:93;8762:3;8673:93;:::i;:::-;8791:2;8786:3;8782:12;8775:19;;8580:220;;;:::o;8806:366::-;8948:3;8969:67;9033:2;9028:3;8969:67;:::i;:::-;8962:74;;9045:93;9134:3;9045:93;:::i;:::-;9163:2;9158:3;9154:12;9147:19;;8952:220;;;:::o;9178:366::-;9320:3;9341:67;9405:2;9400:3;9341:67;:::i;:::-;9334:74;;9417:93;9506:3;9417:93;:::i;:::-;9535:2;9530:3;9526:12;9519:19;;9324:220;;;:::o;9550:366::-;9692:3;9713:67;9777:2;9772:3;9713:67;:::i;:::-;9706:74;;9789:93;9878:3;9789:93;:::i;:::-;9907:2;9902:3;9898:12;9891:19;;9696:220;;;:::o;9922:366::-;10064:3;10085:67;10149:2;10144:3;10085:67;:::i;:::-;10078:74;;10161:93;10250:3;10161:93;:::i;:::-;10279:2;10274:3;10270:12;10263:19;;10068:220;;;:::o;10294:366::-;10436:3;10457:67;10521:2;10516:3;10457:67;:::i;:::-;10450:74;;10533:93;10622:3;10533:93;:::i;:::-;10651:2;10646:3;10642:12;10635:19;;10440:220;;;:::o;10666:118::-;10753:24;10771:5;10753:24;:::i;:::-;10748:3;10741:37;10731:53;;:::o;10790:112::-;10873:22;10889:5;10873:22;:::i;:::-;10868:3;10861:35;10851:51;;:::o;10908:222::-;11001:4;11039:2;11028:9;11024:18;11016:26;;11052:71;11120:1;11109:9;11105:17;11096:6;11052:71;:::i;:::-;11006:124;;;;:::o;11136:348::-;11265:4;11303:2;11292:9;11288:18;11280:26;;11316:79;11392:1;11381:9;11377:17;11368:6;11316:79;:::i;:::-;11405:72;11473:2;11462:9;11458:18;11449:6;11405:72;:::i;:::-;11270:214;;;;;:::o;11490:332::-;11611:4;11649:2;11638:9;11634:18;11626:26;;11662:71;11730:1;11719:9;11715:17;11706:6;11662:71;:::i;:::-;11743:72;11811:2;11800:9;11796:18;11787:6;11743:72;:::i;:::-;11616:206;;;;;:::o;11828:807::-;12077:4;12115:3;12104:9;12100:19;12092:27;;12129:71;12197:1;12186:9;12182:17;12173:6;12129:71;:::i;:::-;12210:72;12278:2;12267:9;12263:18;12254:6;12210:72;:::i;:::-;12292:80;12368:2;12357:9;12353:18;12344:6;12292:80;:::i;:::-;12382;12458:2;12447:9;12443:18;12434:6;12382:80;:::i;:::-;12472:73;12540:3;12529:9;12525:19;12516:6;12472:73;:::i;:::-;12555;12623:3;12612:9;12608:19;12599:6;12555:73;:::i;:::-;12082:553;;;;;;;;;:::o;12641:210::-;12728:4;12766:2;12755:9;12751:18;12743:26;;12779:65;12841:1;12830:9;12826:17;12817:6;12779:65;:::i;:::-;12733:118;;;;:::o;12857:276::-;12977:4;13015:2;13004:9;13000:18;12992:26;;13028:98;13123:1;13112:9;13108:17;13099:6;13028:98;:::i;:::-;12982:151;;;;:::o;13139:313::-;13252:4;13290:2;13279:9;13275:18;13267:26;;13339:9;13333:4;13329:20;13325:1;13314:9;13310:17;13303:47;13367:78;13440:4;13431:6;13367:78;:::i;:::-;13359:86;;13257:195;;;;:::o;13458:419::-;13624:4;13662:2;13651:9;13647:18;13639:26;;13711:9;13705:4;13701:20;13697:1;13686:9;13682:17;13675:47;13739:131;13865:4;13739:131;:::i;:::-;13731:139;;13629:248;;;:::o;13883:419::-;14049:4;14087:2;14076:9;14072:18;14064:26;;14136:9;14130:4;14126:20;14122:1;14111:9;14107:17;14100:47;14164:131;14290:4;14164:131;:::i;:::-;14156:139;;14054:248;;;:::o;14308:419::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14561:9;14555:4;14551:20;14547:1;14536:9;14532:17;14525:47;14589:131;14715:4;14589:131;:::i;:::-;14581:139;;14479:248;;;:::o;14733:419::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14986:9;14980:4;14976:20;14972:1;14961:9;14957:17;14950:47;15014:131;15140:4;15014:131;:::i;:::-;15006:139;;14904:248;;;:::o;15158:419::-;15324:4;15362:2;15351:9;15347:18;15339:26;;15411:9;15405:4;15401:20;15397:1;15386:9;15382:17;15375:47;15439:131;15565:4;15439:131;:::i;:::-;15431:139;;15329:248;;;:::o;15583:419::-;15749:4;15787:2;15776:9;15772:18;15764:26;;15836:9;15830:4;15826:20;15822:1;15811:9;15807:17;15800:47;15864:131;15990:4;15864:131;:::i;:::-;15856:139;;15754:248;;;:::o;16008:419::-;16174:4;16212:2;16201:9;16197:18;16189:26;;16261:9;16255:4;16251:20;16247:1;16236:9;16232:17;16225:47;16289:131;16415:4;16289:131;:::i;:::-;16281:139;;16179:248;;;:::o;16433:419::-;16599:4;16637:2;16626:9;16622:18;16614:26;;16686:9;16680:4;16676:20;16672:1;16661:9;16657:17;16650:47;16714:131;16840:4;16714:131;:::i;:::-;16706:139;;16604:248;;;:::o;16858:419::-;17024:4;17062:2;17051:9;17047:18;17039:26;;17111:9;17105:4;17101:20;17097:1;17086:9;17082:17;17075:47;17139:131;17265:4;17139:131;:::i;:::-;17131:139;;17029:248;;;:::o;17283:419::-;17449:4;17487:2;17476:9;17472:18;17464:26;;17536:9;17530:4;17526:20;17522:1;17511:9;17507:17;17500:47;17564:131;17690:4;17564:131;:::i;:::-;17556:139;;17454:248;;;:::o;17708:222::-;17801:4;17839:2;17828:9;17824:18;17816:26;;17852:71;17920:1;17909:9;17905:17;17896:6;17852:71;:::i;:::-;17806:124;;;;:::o;17936:483::-;18107:4;18145:2;18134:9;18130:18;18122:26;;18158:71;18226:1;18215:9;18211:17;18202:6;18158:71;:::i;:::-;18276:9;18270:4;18266:20;18261:2;18250:9;18246:18;18239:48;18304:108;18407:4;18398:6;18304:108;:::i;:::-;18296:116;;18112:307;;;;;:::o;18425:831::-;18688:4;18726:3;18715:9;18711:19;18703:27;;18740:71;18808:1;18797:9;18793:17;18784:6;18740:71;:::i;:::-;18821:80;18897:2;18886:9;18882:18;18873:6;18821:80;:::i;:::-;18948:9;18942:4;18938:20;18933:2;18922:9;18918:18;18911:48;18976:108;19079:4;19070:6;18976:108;:::i;:::-;18968:116;;19094:72;19162:2;19151:9;19147:18;19138:6;19094:72;:::i;:::-;19176:73;19244:3;19233:9;19229:19;19220:6;19176:73;:::i;:::-;18693:563;;;;;;;;:::o;19262:214::-;19351:4;19389:2;19378:9;19374:18;19366:26;;19402:67;19466:1;19455:9;19451:17;19442:6;19402:67;:::i;:::-;19356:120;;;;:::o;19482:132::-;19549:4;19572:3;19564:11;;19602:4;19597:3;19593:14;19585:22;;19554:60;;;:::o;19620:114::-;19687:6;19721:5;19715:12;19705:22;;19694:40;;;:::o;19740:99::-;19792:6;19826:5;19820:12;19810:22;;19799:40;;;:::o;19845:113::-;19915:4;19947;19942:3;19938:14;19930:22;;19920:38;;;:::o;19964:184::-;20063:11;20097:6;20092:3;20085:19;20137:4;20132:3;20128:14;20113:29;;20075:73;;;;:::o;20154:169::-;20238:11;20272:6;20267:3;20260:19;20312:4;20307:3;20303:14;20288:29;;20250:73;;;;:::o;20329:305::-;20369:3;20388:20;20406:1;20388:20;:::i;:::-;20383:25;;20422:20;20440:1;20422:20;:::i;:::-;20417:25;;20576:1;20508:66;20504:74;20501:1;20498:81;20495:2;;;20582:18;;:::i;:::-;20495:2;20626:1;20623;20619:9;20612:16;;20373:261;;;;:::o;20640:185::-;20680:1;20697:20;20715:1;20697:20;:::i;:::-;20692:25;;20731:20;20749:1;20731:20;:::i;:::-;20726:25;;20770:1;20760:2;;20775:18;;:::i;:::-;20760:2;20817:1;20814;20810:9;20805:14;;20682:143;;;;:::o;20831:348::-;20871:7;20894:20;20912:1;20894:20;:::i;:::-;20889:25;;20928:20;20946:1;20928:20;:::i;:::-;20923:25;;21116:1;21048:66;21044:74;21041:1;21038:81;21033:1;21026:9;21019:17;21015:105;21012:2;;;21123:18;;:::i;:::-;21012:2;21171:1;21168;21164:9;21153:20;;20879:300;;;;:::o;21185:191::-;21225:4;21245:20;21263:1;21245:20;:::i;:::-;21240:25;;21279:20;21297:1;21279:20;:::i;:::-;21274:25;;21318:1;21315;21312:8;21309:2;;;21323:18;;:::i;:::-;21309:2;21368:1;21365;21361:9;21353:17;;21230:146;;;;:::o;21382:96::-;21419:7;21448:24;21466:5;21448:24;:::i;:::-;21437:35;;21427:51;;;:::o;21484:90::-;21518:7;21561:5;21554:13;21547:21;21536:32;;21526:48;;;:::o;21580:126::-;21617:7;21657:42;21650:5;21646:54;21635:65;;21625:81;;;:::o;21712:77::-;21749:7;21778:5;21767:16;;21757:32;;;:::o;21795:86::-;21830:7;21870:4;21863:5;21859:16;21848:27;;21838:43;;;:::o;21887:134::-;21945:9;21978:37;22009:5;21978:37;:::i;:::-;21965:50;;21955:66;;;:::o;22027:180::-;22104:9;22137:64;22195:5;22137:64;:::i;:::-;22124:77;;22114:93;;;:::o;22213:140::-;22290:9;22323:24;22341:5;22323:24;:::i;:::-;22310:37;;22300:53;;;:::o;22359:121::-;22417:9;22450:24;22468:5;22450:24;:::i;:::-;22437:37;;22427:53;;;:::o;22486:126::-;22536:9;22569:37;22600:5;22569:37;:::i;:::-;22556:50;;22546:66;;;:::o;22618:113::-;22668:9;22701:24;22719:5;22701:24;:::i;:::-;22688:37;;22678:53;;;:::o;22737:307::-;22805:1;22815:113;22829:6;22826:1;22823:13;22815:113;;;22914:1;22909:3;22905:11;22899:18;22895:1;22890:3;22886:11;22879:39;22851:2;22848:1;22844:10;22839:15;;22815:113;;;22946:6;22943:1;22940:13;22937:2;;;23026:1;23017:6;23012:3;23008:16;23001:27;22937:2;22786:258;;;;:::o;23050:320::-;23094:6;23131:1;23125:4;23121:12;23111:22;;23178:1;23172:4;23168:12;23199:18;23189:2;;23255:4;23247:6;23243:17;23233:27;;23189:2;23317;23309:6;23306:14;23286:18;23283:38;23280:2;;;23336:18;;:::i;:::-;23280:2;23101:269;;;;:::o;23376:180::-;23424:77;23421:1;23414:88;23521:4;23518:1;23511:15;23545:4;23542:1;23535:15;23562:180;23610:77;23607:1;23600:88;23707:4;23704:1;23697:15;23731:4;23728:1;23721:15;23748:180;23796:77;23793:1;23786:88;23893:4;23890:1;23883:15;23917:4;23914:1;23907:15;23934:102;23975:6;24026:2;24022:7;24017:2;24010:5;24006:14;24002:28;23992:38;;23982:54;;;:::o;24042:222::-;24182:34;24178:1;24170:6;24166:14;24159:58;24251:5;24246:2;24238:6;24234:15;24227:30;24148:116;:::o;24270:239::-;24410:34;24406:1;24398:6;24394:14;24387:58;24479:22;24474:2;24466:6;24462:15;24455:47;24376:133;:::o;24515:225::-;24655:34;24651:1;24643:6;24639:14;24632:58;24724:8;24719:2;24711:6;24707:15;24700:33;24621:119;:::o;24746:221::-;24886:34;24882:1;24874:6;24870:14;24863:58;24955:4;24950:2;24942:6;24938:15;24931:29;24852:115;:::o;24973:177::-;25113:29;25109:1;25101:6;25097:14;25090:53;25079:71;:::o;25156:227::-;25296:34;25292:1;25284:6;25280:14;25273:58;25365:10;25360:2;25352:6;25348:15;25341:35;25262:121;:::o;25389:220::-;25529:34;25525:1;25517:6;25513:14;25506:58;25598:3;25593:2;25585:6;25581:15;25574:28;25495:114;:::o;25615:182::-;25755:34;25751:1;25743:6;25739:14;25732:58;25721:76;:::o;25803:224::-;25943:34;25939:1;25931:6;25927:14;25920:58;26012:7;26007:2;25999:6;25995:15;25988:32;25909:118;:::o;26033:223::-;26173:34;26169:1;26161:6;26157:14;26150:58;26242:6;26237:2;26229:6;26225:15;26218:31;26139:117;:::o;26262:122::-;26335:24;26353:5;26335:24;:::i;:::-;26328:5;26325:35;26315:2;;26374:1;26371;26364:12;26315:2;26305:79;:::o;26390:116::-;26460:21;26475:5;26460:21;:::i;:::-;26453:5;26450:32;26440:2;;26496:1;26493;26486:12;26440:2;26430:76;:::o;26512:122::-;26585:24;26603:5;26585:24;:::i;:::-;26578:5;26575:35;26565:2;;26624:1;26621;26614:12;26565:2;26555:79;:::o
Swarm Source
ipfs://fd473e38a6934c25b38af0b6643f510f5ef30e81d04b54a13a9b7b9295a7fb4d
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.