Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 MMK
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,387,720,974,708.517508634 MMKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MOONMAKERINU
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-30 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.3; 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; uint256 private _lockTime; 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 renounceOwnership() 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; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } 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 MOONMAKERINU is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "MOON MAKER INU"; string private _symbol = "MMK"; uint8 private _decimals = 9; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isBlacklisted; uint256 private _totalSupply = 1 * 10**15 * 10**9; uint256 public _maxTxAmount = 7 * 10**13 * 10**9; uint256 public _walletMax = 7 * 10**13 * 10**9; uint256 private minimumTokensBeforeSwap = 10000 * 10**9; uint256 public _liquidityFee = 1; uint256 public _marketingFee = 5; uint256 public _giveawayFee = 1; uint256 public _DonateFee = 0; uint256 public _tax = 0; uint256 public _antisniperblock = 0; address payable public marketingWalletAddress = payable(0xdc72110D5ce38B66a167086D6Ada0CD4163A73E6); address payable public rewardsWalletAddress = payable(0xdc72110D5ce38B66a167086D6Ada0CD4163A73E6); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; 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); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _tax = _liquidityFee.add(_marketingFee).add(_giveawayFee); _antisniperblock = _tax.add(_DonateFee); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapV2Pair)] = 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 minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } 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 blacklistAddress(address account, bool newValue) public onlyOwner { isBlacklisted[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newRewardsTax, uint256 newBurnFee) external onlyOwner() { _liquidityFee = newLiquidityTax; _marketingFee = newMarketingTax; _giveawayFee = newRewardsTax; _DonateFee = newBurnFee; _tax = _liquidityFee.add(_marketingFee).add(_giveawayFee); _antisniperblock = _tax.add(_DonateFee); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setRewardsWalletAddress(address newAddress) external onlyOwner() { rewardsWalletAddress = 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()); } uniswapV2Pair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address } //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"); require(!isBlacklisted[sender] && !isBlacklisted[recipient], "To/from address is blacklisted!"); require(amount > 0, "Transfer amount must be greater than zero"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(sender != owner() && recipient != owner()) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && sender != uniswapV2Pair && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.div(_tax).mul(_liquidityFee).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _tax.sub(_liquidityFee.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityFee).div(totalBNBFee).div(2); uint256 amountBNBRewards = amountReceived.mul(_giveawayFee).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBRewards); transferToAddressETH(marketingWalletAddress, amountBNBMarketing); transferToAddressETH(rewardsWalletAddress, amountBNBRewards); addLiquidity(tokensForLP, amountBNBLiquidity); } 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 = recipient == uniswapV2Pair ? amount.mul(_antisniperblock).div(100) : amount.mul(_tax).div(100); _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":"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":"_DonateFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_antisniperblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_giveawayFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","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":"_tax","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":"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":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","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":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setRewardsWalletAddress","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":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newRewardsTax","type":"uint256"},{"internalType":"uint256","name":"newBurnFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","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":"uniswapV2Pair","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":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600e81526020017f4d4f4f4e204d414b455220494e5500000000000000000000000000000000000081525060039080519060200190620000519291906200093f565b506040518060400160405280600381526020017f4d4d4b0000000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f9291906200093f565b506009600560006101000a81548160ff021916908360ff16021790555069d3c21bcecceda1000000600b55690ed2b525841adfc00000600c55690ed2b525841adfc00000600d556509184e72a000600e556001600f556005601055600160115560006012556000601355600060145573dc72110d5ce38b66a167086d6ada0cd4163a73e6601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dc72110d5ce38b66a167086d6ada0cd4163a73e6601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055506001601860176101000a81548160ff0219169083151502179055503480156200024e57600080fd5b50600062000261620008ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035f57600080fd5b505afa15801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a919062000a06565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003fd57600080fd5b505afa15801562000412573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000438919062000a06565b6040518363ffffffff1660e01b81526004016200045792919062000a7b565b602060405180830381600087803b1580156200047257600080fd5b505af115801562000487573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ad919062000a06565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005e9620008b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006cb601154620006b7601054600f54620008dc60201b620027d21790919060201c565b620008dc60201b620027d21790919060201c565b601381905550620006ef601254601354620008dc60201b620027d21790919060201c565b6014819055506001600960006200070b620008b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b5460066000620007ed620008ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200083b620008ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200089c919062000aca565b60405180910390a35062000c6a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808284620008ed919062000af8565b90508381101562000935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092c9062000aa8565b60405180910390fd5b8091505092915050565b8280546200094d9062000b93565b90600052602060002090601f016020900481019282620009715760008555620009bd565b82601f106200098c57805160ff1916838001178555620009bd565b82800160010185558215620009bd579182015b82811115620009bc5782518255916020019190600101906200099f565b5b509050620009cc9190620009d0565b5090565b5b80821115620009eb576000816000905550600101620009d1565b5090565b60008151905062000a008162000c50565b92915050565b60006020828403121562000a1957600080fd5b600062000a2984828501620009ef565b91505092915050565b62000a3d8162000b55565b82525050565b600062000a52601b8362000ae7565b915062000a5f8262000c27565b602082019050919050565b62000a758162000b89565b82525050565b600060408201905062000a92600083018562000a32565b62000aa1602083018462000a32565b9392505050565b6000602082019050818103600083015262000ac38162000a43565b9050919050565b600060208201905062000ae1600083018462000a6a565b92915050565b600082825260208201905092915050565b600062000b058262000b89565b915062000b128362000b89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b4a5762000b4962000bc9565b5b828201905092915050565b600062000b628262000b69565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000bac57607f821691505b6020821081141562000bc35762000bc262000bf8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000c5b8162000b55565b811462000c6757600080fd5b50565b60805160601c614cbc62000c9060003960008181610fb10152610fdd0152614cbc6000f3fe6080604052600436106103035760003560e01c80637d1db4a511610190578063c867d60b116100dc578063e751d50811610095578063f1d5f5171161006f578063f1d5f51714610b93578063f2fde38b14610bbc578063f872858a14610be5578063fe575a8714610c105761030a565b8063e751d50814610b16578063ec28438a14610b41578063ef422a1814610b6a5761030a565b8063c867d60b146109f4578063d158272d14610a31578063d470563e14610a5c578063da00097d14610a85578063dd46706414610ab0578063dd62ed3e14610ad95761030a565b8063a457c2d711610149578063a9059cbb11610123578063a9059cbb14610938578063b39ec89914610975578063c49b9a80146109a0578063c4ce79fb146109c95761030a565b8063a457c2d7146108bb578063a5d69d1f146108f8578063a69df4b5146109215761030a565b80637d1db4a5146107bb578063807c2d9c146107e65780638da5cb5b1461081157806395d89b411461083c578063a073d37f14610867578063a12a7d61146108925761030a565b80633b97084a1161024f5780635342acb411610208578063602bc62b116101e2578063602bc62b146107115780636bc87c3a1461073c57806370a0823114610767578063715018a6146107a45761030a565b80635342acb41461066c578063557ed1ba146106a95780635881f3ef146106d45761030a565b80633b97084a146105705780633f632cce14610599578063455a4396146105c457806349bd5a5e146105ed5780634a74bb02146106185780634cb80fd5146106435761030a565b806323b872dd116102bc5780632b112e49116102965780632b112e49146104b25780632ecc632f146104dd578063313ce5671461050857806339509351146105335761030a565b806323b872dd146104215780632563ae831461045e57806327c8f835146104875761030a565b806306fdde031461030f578063095ea7b31461033a5780631694505e1461037757806318160ddd146103a25780632198cf6c146103cd57806322976e0d146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b60405161033191906142fd565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613dd9565b610cdf565b60405161036e91906142c7565b60405180910390f35b34801561038357600080fd5b5061038c610cfd565b60405161039991906142e2565b60405180910390f35b3480156103ae57600080fd5b506103b7610d23565b6040516103c491906144bf565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613d9d565b610d2d565b005b34801561040257600080fd5b5061040b610e1d565b60405161041891906144bf565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190613d4e565b610e23565b60405161045591906142c7565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190613e15565b610efd565b005b34801561049357600080fd5b5061049c610faf565b6040516104a99190614207565b60405180910390f35b3480156104be57600080fd5b506104c7610fd3565b6040516104d491906144bf565b60405180910390f35b3480156104e957600080fd5b506104f2611017565b6040516104ff9190614222565b60405180910390f35b34801561051457600080fd5b5061051d61103d565b60405161052a9190614564565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613dd9565b611054565b60405161056791906142c7565b60405180910390f35b34801561057c57600080fd5b5061059760048036038101906105929190613e3e565b611107565b005b3480156105a557600080fd5b506105ae6111a6565b6040516105bb91906144bf565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190613d9d565b6111ac565b005b3480156105f957600080fd5b5061060261129c565b60405161060f9190614207565b60405180910390f35b34801561062457600080fd5b5061062d6112c2565b60405161063a91906142c7565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613cc0565b6112d5565b005b34801561067857600080fd5b50610693600480360381019061068e9190613cc0565b6113ae565b6040516106a091906142c7565b60405180910390f35b3480156106b557600080fd5b506106be6113ce565b6040516106cb91906144bf565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190613cc0565b6113d6565b6040516107089190614207565b60405180910390f35b34801561071d57600080fd5b50610726611840565b60405161073391906144bf565b60405180910390f35b34801561074857600080fd5b5061075161184a565b60405161075e91906144bf565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190613cc0565b611850565b60405161079b91906144bf565b60405180910390f35b3480156107b057600080fd5b506107b9611899565b005b3480156107c757600080fd5b506107d06119ec565b6040516107dd91906144bf565b60405180910390f35b3480156107f257600080fd5b506107fb6119f2565b60405161080891906144bf565b60405180910390f35b34801561081d57600080fd5b506108266119f8565b6040516108339190614207565b60405180910390f35b34801561084857600080fd5b50610851611a21565b60405161085e91906142fd565b60405180910390f35b34801561087357600080fd5b5061087c611ab3565b60405161088991906144bf565b60405180910390f35b34801561089e57600080fd5b506108b960048036038101906108b49190613eb6565b611abd565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613dd9565b611bc2565b6040516108ef91906142c7565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613e15565b611c8f565b005b34801561092d57600080fd5b50610936611d41565b005b34801561094457600080fd5b5061095f600480360381019061095a9190613dd9565b611f15565b60405161096c91906142c7565b60405180910390f35b34801561098157600080fd5b5061098a611f34565b60405161099791906144bf565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613e15565b611f3a565b005b3480156109d557600080fd5b506109de612023565b6040516109eb91906144bf565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613cc0565b612029565b604051610a2891906142c7565b60405180910390f35b348015610a3d57600080fd5b50610a46612049565b604051610a539190614222565b60405180910390f35b348015610a6857600080fd5b50610a836004803603810190610a7e9190613cc0565b61206f565b005b348015610a9157600080fd5b50610a9a612148565b604051610aa791906142c7565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613e3e565b61215b565b005b348015610ae557600080fd5b50610b006004803603810190610afb9190613d12565b612322565b604051610b0d91906144bf565b60405180910390f35b348015610b2257600080fd5b50610b2b6123a9565b604051610b3891906144bf565b60405180910390f35b348015610b4d57600080fd5b50610b686004803603810190610b639190613e3e565b6123af565b005b348015610b7657600080fd5b50610b916004803603810190610b8c9190613d9d565b61244e565b005b348015610b9f57600080fd5b50610bba6004803603810190610bb59190613e3e565b61253e565b005b348015610bc857600080fd5b50610be36004803603810190610bde9190613cc0565b6125dd565b005b348015610bf157600080fd5b50610bfa61279f565b604051610c0791906142c7565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613cc0565b6127b2565b604051610c4491906142c7565b60405180910390f35b606060038054610c5c906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c88906147b9565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec612830565b8484612838565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b610d35612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906143ff565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b6000610e30848484612a03565b50610ef284610e3d612830565b610eed85604051806060016040528060288152602001614c3a60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea3612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b600190509392505050565b610f05612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906143ff565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110126110017f0000000000000000000000000000000000000000000000000000000000000000611850565b600b5461314890919063ffffffff16565b905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff16905090565b60006110fd611061612830565b846110f88560076000611072612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b612838565b6001905092915050565b61110f612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611193906143ff565b60405180910390fd5b80600e8190555050565b60145481565b6111b4612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611238906143ff565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b6112dd612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906143ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60006113e0612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611464906143ff565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b857600080fd5b505afa1580156114cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f09190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561155257600080fd5b505afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613ce9565b6040518363ffffffff1660e01b81526004016115a792919061423d565b60206040518083038186803b1580156115bf57600080fd5b505afa1580156115d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f79190613ce9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b8578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561167457600080fd5b505afa158015611688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ac9190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561170e57600080fd5b505afa158015611722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117469190613ce9565b6040518363ffffffff1660e01b815260040161176392919061423d565b602060405180830381600087803b15801561177d57600080fd5b505af1158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613ce9565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b6000600254905090565b600f5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118a1612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611a30906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5c906147b9565b8015611aa95780601f10611a7e57610100808354040283529160200191611aa9565b820191906000526020600020905b815481529060010190602001808311611a8c57829003601f168201915b5050505050905090565b6000600e54905090565b611ac5612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b49906143ff565b60405180910390fd5b83600f81905550826010819055508160118190555080601281905550611b99601154611b8b601054600f546127d290919063ffffffff16565b6127d290919063ffffffff16565b601381905550611bb66012546013546127d290919063ffffffff16565b60148190555050505050565b6000611c85611bcf612830565b84611c8085604051806060016040528060258152602001614c626025913960076000611bf9612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b6001905092915050565b611c97612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b906143ff565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc89061449f565b60405180910390fd5b6002544211611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c9061447f565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611f29611f22612830565b8484612a03565b506001905092915050565b60115481565b611f42612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc6906143ff565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161201891906142c7565b60405180910390a150565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612077612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906143ff565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860169054906101000a900460ff1681565b612163612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e7906143ff565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261229e91906145d4565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b6123b7612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243b906143ff565b60405180910390fd5b80600c8190555050565b612456612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124da906143ff565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612546612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ca906143ff565b60405180910390fd5b80600d8190555050565b6125e5612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612669906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d99061433f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008082846127e191906145d4565b905083811015612826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281d9061437f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9061445f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290f9061435f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129f691906144bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6b9061443f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb9061431f565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b885750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbe9061439f565b60405180910390fd5b60008211612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c019061441f565b60405180910390fd5b601860149054906101000a900460ff1615612c3157612c2a848484613192565b90506130dd565b612c396119f8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ca75750612c776119f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612cf257600c54821115612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce8906143bf565b60405180910390fd5b5b6000612cfd30611850565b90506000600e548210159050808015612d235750601860149054906101000a900460ff16155b8015612d7d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d955750601860159054906101000a900460ff165b15612dbf57601860169054906101000a900460ff1615612db557600e5491505b612dbe82613365565b5b612e48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f2e5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4257612f3d87878761352c565b612f44565b845b9050601860179054906101000a900460ff168015612fac5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57600d54612fcf82612fc189611850565b6127d290919063ffffffff16565b1115612fda57600080fd5b5b61302d81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cd91906144bf565b60405180910390a3600193505050505b9392505050565b600083831115829061312c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312391906142fd565b60405180910390fd5b506000838561313b91906146b5565b9050809150509392505050565b600061318a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e4565b905092915050565b600061321d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335291906144bf565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff02191690831515021790555060006133be60026133b0600f546133a2601354876136f390919063ffffffff16565b61373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006133d5828461314890919063ffffffff16565b90506133e0816137b8565b600047905060006134116134006002600f546136f390919063ffffffff16565b60135461314890919063ffffffff16565b9050600061344f600261344184613433600f548861373d90919063ffffffff16565b6136f390919063ffffffff16565b6136f390919063ffffffff16565b9050600061347a8361346c6011548761373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006134a382613495858861314890919063ffffffff16565b61314890919063ffffffff16565b90506134d1601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ab5565b6134fd601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ab5565b6135078784613b00565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135b1576135ac606461359e6013548661373d90919063ffffffff16565b6136f390919063ffffffff16565b6135da565b6135d960646135cb6014548661373d90919063ffffffff16565b6136f390919063ffffffff16565b5b905061362e81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136ce91906144bf565b60405180910390a36136e9818461314890919063ffffffff16565b9150509392505050565b600061373583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bf4565b905092915050565b60008083141561375057600090506137b2565b6000828461375e919061465b565b905082848261376d919061462a565b146137ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137a4906143df565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138295781602001602082028036833780820191505090505b5090503081600081518110613867577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390957600080fd5b505afa15801561391d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139419190613ce9565b8160018151811061397b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139e230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a4695949392919061450a565b600060405180830381600087803b158015613a6057600080fd5b505af1158015613a74573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613aa99291906144da565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613afb573d6000803e3d6000fd5b505050565b613b2d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b796119f8565b426040518863ffffffff1660e01b8152600401613b9b96959493929190614266565b6060604051808303818588803b158015613bb457600080fd5b505af1158015613bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bed9190613e67565b5050505050565b60008083118290613c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3291906142fd565b60405180910390fd5b5060008385613c4a919061462a565b9050809150509392505050565b600081359050613c6681614bf4565b92915050565b600081519050613c7b81614bf4565b92915050565b600081359050613c9081614c0b565b92915050565b600081359050613ca581614c22565b92915050565b600081519050613cba81614c22565b92915050565b600060208284031215613cd257600080fd5b6000613ce084828501613c57565b91505092915050565b600060208284031215613cfb57600080fd5b6000613d0984828501613c6c565b91505092915050565b60008060408385031215613d2557600080fd5b6000613d3385828601613c57565b9250506020613d4485828601613c57565b9150509250929050565b600080600060608486031215613d6357600080fd5b6000613d7186828701613c57565b9350506020613d8286828701613c57565b9250506040613d9386828701613c96565b9150509250925092565b60008060408385031215613db057600080fd5b6000613dbe85828601613c57565b9250506020613dcf85828601613c81565b9150509250929050565b60008060408385031215613dec57600080fd5b6000613dfa85828601613c57565b9250506020613e0b85828601613c96565b9150509250929050565b600060208284031215613e2757600080fd5b6000613e3584828501613c81565b91505092915050565b600060208284031215613e5057600080fd5b6000613e5e84828501613c96565b91505092915050565b600080600060608486031215613e7c57600080fd5b6000613e8a86828701613cab565b9350506020613e9b86828701613cab565b9250506040613eac86828701613cab565b9150509250925092565b60008060008060808587031215613ecc57600080fd5b6000613eda87828801613c96565b9450506020613eeb87828801613c96565b9350506040613efc87828801613c96565b9250506060613f0d87828801613c96565b91505092959194509250565b6000613f258383613f40565b60208301905092915050565b613f3a816146fb565b82525050565b613f49816146e9565b82525050565b613f58816146e9565b82525050565b6000613f698261458f565b613f7381856145b2565b9350613f7e8361457f565b8060005b83811015613faf578151613f968882613f19565b9750613fa1836145a5565b925050600181019050613f82565b5085935050505092915050565b613fc58161470d565b82525050565b613fd481614750565b82525050565b613fe381614774565b82525050565b6000613ff48261459a565b613ffe81856145c3565b935061400e818560208601614786565b61401781614878565b840191505092915050565b600061402f6023836145c3565b915061403a82614889565b604082019050919050565b60006140526026836145c3565b915061405d826148d8565b604082019050919050565b60006140756022836145c3565b915061408082614927565b604082019050919050565b6000614098601b836145c3565b91506140a382614976565b602082019050919050565b60006140bb601f836145c3565b91506140c68261499f565b602082019050919050565b60006140de6028836145c3565b91506140e9826149c8565b604082019050919050565b60006141016021836145c3565b915061410c82614a17565b604082019050919050565b60006141246020836145c3565b915061412f82614a66565b602082019050919050565b60006141476029836145c3565b915061415282614a8f565b604082019050919050565b600061416a6025836145c3565b915061417582614ade565b604082019050919050565b600061418d6024836145c3565b915061419882614b2d565b604082019050919050565b60006141b0601f836145c3565b91506141bb82614b7c565b602082019050919050565b60006141d36023836145c3565b91506141de82614ba5565b604082019050919050565b6141f281614739565b82525050565b61420181614743565b82525050565b600060208201905061421c6000830184613f4f565b92915050565b60006020820190506142376000830184613f31565b92915050565b60006040820190506142526000830185613f4f565b61425f6020830184613f4f565b9392505050565b600060c08201905061427b6000830189613f4f565b61428860208301886141e9565b6142956040830187613fda565b6142a26060830186613fda565b6142af6080830185613f4f565b6142bc60a08301846141e9565b979650505050505050565b60006020820190506142dc6000830184613fbc565b92915050565b60006020820190506142f76000830184613fcb565b92915050565b600060208201905081810360008301526143178184613fe9565b905092915050565b6000602082019050818103600083015261433881614022565b9050919050565b6000602082019050818103600083015261435881614045565b9050919050565b6000602082019050818103600083015261437881614068565b9050919050565b600060208201905081810360008301526143988161408b565b9050919050565b600060208201905081810360008301526143b8816140ae565b9050919050565b600060208201905081810360008301526143d8816140d1565b9050919050565b600060208201905081810360008301526143f8816140f4565b9050919050565b6000602082019050818103600083015261441881614117565b9050919050565b600060208201905081810360008301526144388161413a565b9050919050565b600060208201905081810360008301526144588161415d565b9050919050565b6000602082019050818103600083015261447881614180565b9050919050565b60006020820190508181036000830152614498816141a3565b9050919050565b600060208201905081810360008301526144b8816141c6565b9050919050565b60006020820190506144d460008301846141e9565b92915050565b60006040820190506144ef60008301856141e9565b81810360208301526145018184613f5e565b90509392505050565b600060a08201905061451f60008301886141e9565b61452c6020830187613fda565b818103604083015261453e8186613f5e565b905061454d6060830185613f4f565b61455a60808301846141e9565b9695505050505050565b600060208201905061457960008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145df82614739565b91506145ea83614739565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561461f5761461e6147eb565b5b828201905092915050565b600061463582614739565b915061464083614739565b9250826146505761464f61481a565b5b828204905092915050565b600061466682614739565b915061467183614739565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146aa576146a96147eb565b5b828202905092915050565b60006146c082614739565b91506146cb83614739565b9250828210156146de576146dd6147eb565b5b828203905092915050565b60006146f482614719565b9050919050565b600061470682614719565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061475b82614762565b9050919050565b600061476d82614719565b9050919050565b600061477f82614739565b9050919050565b60005b838110156147a4578082015181840152602081019050614789565b838111156147b3576000848401525b50505050565b600060028204905060018216806147d157607f821691505b602082108114156147e5576147e4614849565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614bfd816146e9565b8114614c0857600080fd5b50565b614c148161470d565b8114614c1f57600080fd5b50565b614c2b81614739565b8114614c3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203210f359994ccb6785501f40126c78a86f5c77a676f75fae55822b04cdff969164736f6c63430008030033
Deployed Bytecode
0x6080604052600436106103035760003560e01c80637d1db4a511610190578063c867d60b116100dc578063e751d50811610095578063f1d5f5171161006f578063f1d5f51714610b93578063f2fde38b14610bbc578063f872858a14610be5578063fe575a8714610c105761030a565b8063e751d50814610b16578063ec28438a14610b41578063ef422a1814610b6a5761030a565b8063c867d60b146109f4578063d158272d14610a31578063d470563e14610a5c578063da00097d14610a85578063dd46706414610ab0578063dd62ed3e14610ad95761030a565b8063a457c2d711610149578063a9059cbb11610123578063a9059cbb14610938578063b39ec89914610975578063c49b9a80146109a0578063c4ce79fb146109c95761030a565b8063a457c2d7146108bb578063a5d69d1f146108f8578063a69df4b5146109215761030a565b80637d1db4a5146107bb578063807c2d9c146107e65780638da5cb5b1461081157806395d89b411461083c578063a073d37f14610867578063a12a7d61146108925761030a565b80633b97084a1161024f5780635342acb411610208578063602bc62b116101e2578063602bc62b146107115780636bc87c3a1461073c57806370a0823114610767578063715018a6146107a45761030a565b80635342acb41461066c578063557ed1ba146106a95780635881f3ef146106d45761030a565b80633b97084a146105705780633f632cce14610599578063455a4396146105c457806349bd5a5e146105ed5780634a74bb02146106185780634cb80fd5146106435761030a565b806323b872dd116102bc5780632b112e49116102965780632b112e49146104b25780632ecc632f146104dd578063313ce5671461050857806339509351146105335761030a565b806323b872dd146104215780632563ae831461045e57806327c8f835146104875761030a565b806306fdde031461030f578063095ea7b31461033a5780631694505e1461037757806318160ddd146103a25780632198cf6c146103cd57806322976e0d146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b60405161033191906142fd565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613dd9565b610cdf565b60405161036e91906142c7565b60405180910390f35b34801561038357600080fd5b5061038c610cfd565b60405161039991906142e2565b60405180910390f35b3480156103ae57600080fd5b506103b7610d23565b6040516103c491906144bf565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613d9d565b610d2d565b005b34801561040257600080fd5b5061040b610e1d565b60405161041891906144bf565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190613d4e565b610e23565b60405161045591906142c7565b60405180910390f35b34801561046a57600080fd5b5061048560048036038101906104809190613e15565b610efd565b005b34801561049357600080fd5b5061049c610faf565b6040516104a99190614207565b60405180910390f35b3480156104be57600080fd5b506104c7610fd3565b6040516104d491906144bf565b60405180910390f35b3480156104e957600080fd5b506104f2611017565b6040516104ff9190614222565b60405180910390f35b34801561051457600080fd5b5061051d61103d565b60405161052a9190614564565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613dd9565b611054565b60405161056791906142c7565b60405180910390f35b34801561057c57600080fd5b5061059760048036038101906105929190613e3e565b611107565b005b3480156105a557600080fd5b506105ae6111a6565b6040516105bb91906144bf565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190613d9d565b6111ac565b005b3480156105f957600080fd5b5061060261129c565b60405161060f9190614207565b60405180910390f35b34801561062457600080fd5b5061062d6112c2565b60405161063a91906142c7565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613cc0565b6112d5565b005b34801561067857600080fd5b50610693600480360381019061068e9190613cc0565b6113ae565b6040516106a091906142c7565b60405180910390f35b3480156106b557600080fd5b506106be6113ce565b6040516106cb91906144bf565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190613cc0565b6113d6565b6040516107089190614207565b60405180910390f35b34801561071d57600080fd5b50610726611840565b60405161073391906144bf565b60405180910390f35b34801561074857600080fd5b5061075161184a565b60405161075e91906144bf565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190613cc0565b611850565b60405161079b91906144bf565b60405180910390f35b3480156107b057600080fd5b506107b9611899565b005b3480156107c757600080fd5b506107d06119ec565b6040516107dd91906144bf565b60405180910390f35b3480156107f257600080fd5b506107fb6119f2565b60405161080891906144bf565b60405180910390f35b34801561081d57600080fd5b506108266119f8565b6040516108339190614207565b60405180910390f35b34801561084857600080fd5b50610851611a21565b60405161085e91906142fd565b60405180910390f35b34801561087357600080fd5b5061087c611ab3565b60405161088991906144bf565b60405180910390f35b34801561089e57600080fd5b506108b960048036038101906108b49190613eb6565b611abd565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190613dd9565b611bc2565b6040516108ef91906142c7565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613e15565b611c8f565b005b34801561092d57600080fd5b50610936611d41565b005b34801561094457600080fd5b5061095f600480360381019061095a9190613dd9565b611f15565b60405161096c91906142c7565b60405180910390f35b34801561098157600080fd5b5061098a611f34565b60405161099791906144bf565b60405180910390f35b3480156109ac57600080fd5b506109c760048036038101906109c29190613e15565b611f3a565b005b3480156109d557600080fd5b506109de612023565b6040516109eb91906144bf565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613cc0565b612029565b604051610a2891906142c7565b60405180910390f35b348015610a3d57600080fd5b50610a46612049565b604051610a539190614222565b60405180910390f35b348015610a6857600080fd5b50610a836004803603810190610a7e9190613cc0565b61206f565b005b348015610a9157600080fd5b50610a9a612148565b604051610aa791906142c7565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613e3e565b61215b565b005b348015610ae557600080fd5b50610b006004803603810190610afb9190613d12565b612322565b604051610b0d91906144bf565b60405180910390f35b348015610b2257600080fd5b50610b2b6123a9565b604051610b3891906144bf565b60405180910390f35b348015610b4d57600080fd5b50610b686004803603810190610b639190613e3e565b6123af565b005b348015610b7657600080fd5b50610b916004803603810190610b8c9190613d9d565b61244e565b005b348015610b9f57600080fd5b50610bba6004803603810190610bb59190613e3e565b61253e565b005b348015610bc857600080fd5b50610be36004803603810190610bde9190613cc0565b6125dd565b005b348015610bf157600080fd5b50610bfa61279f565b604051610c0791906142c7565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613cc0565b6127b2565b604051610c4491906142c7565b60405180910390f35b606060038054610c5c906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c88906147b9565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec612830565b8484612838565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b610d35612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906143ff565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b6000610e30848484612a03565b50610ef284610e3d612830565b610eed85604051806060016040528060288152602001614c3a60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea3612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b600190509392505050565b610f05612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906143ff565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006110126110017f000000000000000000000000000000000000000000000000000000000000dead611850565b600b5461314890919063ffffffff16565b905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff16905090565b60006110fd611061612830565b846110f88560076000611072612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b612838565b6001905092915050565b61110f612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611193906143ff565b60405180910390fd5b80600e8190555050565b60145481565b6111b4612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611238906143ff565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b6112dd612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906143ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60006113e0612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611464906143ff565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b857600080fd5b505afa1580156114cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f09190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561155257600080fd5b505afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613ce9565b6040518363ffffffff1660e01b81526004016115a792919061423d565b60206040518083038186803b1580156115bf57600080fd5b505afa1580156115d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f79190613ce9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b8578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561167457600080fd5b505afa158015611688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ac9190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561170e57600080fd5b505afa158015611722573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117469190613ce9565b6040518363ffffffff1660e01b815260040161176392919061423d565b602060405180830381600087803b15801561177d57600080fd5b505af1158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190613ce9565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b6000600254905090565b600f5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118a1612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611a30906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5c906147b9565b8015611aa95780601f10611a7e57610100808354040283529160200191611aa9565b820191906000526020600020905b815481529060010190602001808311611a8c57829003601f168201915b5050505050905090565b6000600e54905090565b611ac5612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b49906143ff565b60405180910390fd5b83600f81905550826010819055508160118190555080601281905550611b99601154611b8b601054600f546127d290919063ffffffff16565b6127d290919063ffffffff16565b601381905550611bb66012546013546127d290919063ffffffff16565b60148190555050505050565b6000611c85611bcf612830565b84611c8085604051806060016040528060258152602001614c626025913960076000611bf9612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b6001905092915050565b611c97612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b906143ff565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc89061449f565b60405180910390fd5b6002544211611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c9061447f565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611f29611f22612830565b8484612a03565b506001905092915050565b60115481565b611f42612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc6906143ff565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161201891906142c7565b60405180910390a150565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612077612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906143ff565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860169054906101000a900460ff1681565b612163612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e7906143ff565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261229e91906145d4565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b6123b7612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243b906143ff565b60405180910390fd5b80600c8190555050565b612456612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124da906143ff565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612546612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ca906143ff565b60405180910390fd5b80600d8190555050565b6125e5612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612669906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d99061433f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008082846127e191906145d4565b905083811015612826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281d9061437f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9061445f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290f9061435f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129f691906144bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6b9061443f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb9061431f565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b885750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbe9061439f565b60405180910390fd5b60008211612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c019061441f565b60405180910390fd5b601860149054906101000a900460ff1615612c3157612c2a848484613192565b90506130dd565b612c396119f8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ca75750612c776119f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612cf257600c54821115612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce8906143bf565b60405180910390fd5b5b6000612cfd30611850565b90506000600e548210159050808015612d235750601860149054906101000a900460ff16155b8015612d7d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d955750601860159054906101000a900460ff165b15612dbf57601860169054906101000a900460ff1615612db557600e5491505b612dbe82613365565b5b612e48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f2e5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4257612f3d87878761352c565b612f44565b845b9050601860179054906101000a900460ff168015612fac5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57600d54612fcf82612fc189611850565b6127d290919063ffffffff16565b1115612fda57600080fd5b5b61302d81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cd91906144bf565b60405180910390a3600193505050505b9392505050565b600083831115829061312c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312391906142fd565b60405180910390fd5b506000838561313b91906146b5565b9050809150509392505050565b600061318a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e4565b905092915050565b600061321d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335291906144bf565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff02191690831515021790555060006133be60026133b0600f546133a2601354876136f390919063ffffffff16565b61373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006133d5828461314890919063ffffffff16565b90506133e0816137b8565b600047905060006134116134006002600f546136f390919063ffffffff16565b60135461314890919063ffffffff16565b9050600061344f600261344184613433600f548861373d90919063ffffffff16565b6136f390919063ffffffff16565b6136f390919063ffffffff16565b9050600061347a8361346c6011548761373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006134a382613495858861314890919063ffffffff16565b61314890919063ffffffff16565b90506134d1601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ab5565b6134fd601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ab5565b6135078784613b00565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135b1576135ac606461359e6013548661373d90919063ffffffff16565b6136f390919063ffffffff16565b6135da565b6135d960646135cb6014548661373d90919063ffffffff16565b6136f390919063ffffffff16565b5b905061362e81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136ce91906144bf565b60405180910390a36136e9818461314890919063ffffffff16565b9150509392505050565b600061373583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bf4565b905092915050565b60008083141561375057600090506137b2565b6000828461375e919061465b565b905082848261376d919061462a565b146137ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137a4906143df565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138295781602001602082028036833780820191505090505b5090503081600081518110613867577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390957600080fd5b505afa15801561391d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139419190613ce9565b8160018151811061397b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139e230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a4695949392919061450a565b600060405180830381600087803b158015613a6057600080fd5b505af1158015613a74573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613aa99291906144da565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613afb573d6000803e3d6000fd5b505050565b613b2d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b796119f8565b426040518863ffffffff1660e01b8152600401613b9b96959493929190614266565b6060604051808303818588803b158015613bb457600080fd5b505af1158015613bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bed9190613e67565b5050505050565b60008083118290613c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3291906142fd565b60405180910390fd5b5060008385613c4a919061462a565b9050809150509392505050565b600081359050613c6681614bf4565b92915050565b600081519050613c7b81614bf4565b92915050565b600081359050613c9081614c0b565b92915050565b600081359050613ca581614c22565b92915050565b600081519050613cba81614c22565b92915050565b600060208284031215613cd257600080fd5b6000613ce084828501613c57565b91505092915050565b600060208284031215613cfb57600080fd5b6000613d0984828501613c6c565b91505092915050565b60008060408385031215613d2557600080fd5b6000613d3385828601613c57565b9250506020613d4485828601613c57565b9150509250929050565b600080600060608486031215613d6357600080fd5b6000613d7186828701613c57565b9350506020613d8286828701613c57565b9250506040613d9386828701613c96565b9150509250925092565b60008060408385031215613db057600080fd5b6000613dbe85828601613c57565b9250506020613dcf85828601613c81565b9150509250929050565b60008060408385031215613dec57600080fd5b6000613dfa85828601613c57565b9250506020613e0b85828601613c96565b9150509250929050565b600060208284031215613e2757600080fd5b6000613e3584828501613c81565b91505092915050565b600060208284031215613e5057600080fd5b6000613e5e84828501613c96565b91505092915050565b600080600060608486031215613e7c57600080fd5b6000613e8a86828701613cab565b9350506020613e9b86828701613cab565b9250506040613eac86828701613cab565b9150509250925092565b60008060008060808587031215613ecc57600080fd5b6000613eda87828801613c96565b9450506020613eeb87828801613c96565b9350506040613efc87828801613c96565b9250506060613f0d87828801613c96565b91505092959194509250565b6000613f258383613f40565b60208301905092915050565b613f3a816146fb565b82525050565b613f49816146e9565b82525050565b613f58816146e9565b82525050565b6000613f698261458f565b613f7381856145b2565b9350613f7e8361457f565b8060005b83811015613faf578151613f968882613f19565b9750613fa1836145a5565b925050600181019050613f82565b5085935050505092915050565b613fc58161470d565b82525050565b613fd481614750565b82525050565b613fe381614774565b82525050565b6000613ff48261459a565b613ffe81856145c3565b935061400e818560208601614786565b61401781614878565b840191505092915050565b600061402f6023836145c3565b915061403a82614889565b604082019050919050565b60006140526026836145c3565b915061405d826148d8565b604082019050919050565b60006140756022836145c3565b915061408082614927565b604082019050919050565b6000614098601b836145c3565b91506140a382614976565b602082019050919050565b60006140bb601f836145c3565b91506140c68261499f565b602082019050919050565b60006140de6028836145c3565b91506140e9826149c8565b604082019050919050565b60006141016021836145c3565b915061410c82614a17565b604082019050919050565b60006141246020836145c3565b915061412f82614a66565b602082019050919050565b60006141476029836145c3565b915061415282614a8f565b604082019050919050565b600061416a6025836145c3565b915061417582614ade565b604082019050919050565b600061418d6024836145c3565b915061419882614b2d565b604082019050919050565b60006141b0601f836145c3565b91506141bb82614b7c565b602082019050919050565b60006141d36023836145c3565b91506141de82614ba5565b604082019050919050565b6141f281614739565b82525050565b61420181614743565b82525050565b600060208201905061421c6000830184613f4f565b92915050565b60006020820190506142376000830184613f31565b92915050565b60006040820190506142526000830185613f4f565b61425f6020830184613f4f565b9392505050565b600060c08201905061427b6000830189613f4f565b61428860208301886141e9565b6142956040830187613fda565b6142a26060830186613fda565b6142af6080830185613f4f565b6142bc60a08301846141e9565b979650505050505050565b60006020820190506142dc6000830184613fbc565b92915050565b60006020820190506142f76000830184613fcb565b92915050565b600060208201905081810360008301526143178184613fe9565b905092915050565b6000602082019050818103600083015261433881614022565b9050919050565b6000602082019050818103600083015261435881614045565b9050919050565b6000602082019050818103600083015261437881614068565b9050919050565b600060208201905081810360008301526143988161408b565b9050919050565b600060208201905081810360008301526143b8816140ae565b9050919050565b600060208201905081810360008301526143d8816140d1565b9050919050565b600060208201905081810360008301526143f8816140f4565b9050919050565b6000602082019050818103600083015261441881614117565b9050919050565b600060208201905081810360008301526144388161413a565b9050919050565b600060208201905081810360008301526144588161415d565b9050919050565b6000602082019050818103600083015261447881614180565b9050919050565b60006020820190508181036000830152614498816141a3565b9050919050565b600060208201905081810360008301526144b8816141c6565b9050919050565b60006020820190506144d460008301846141e9565b92915050565b60006040820190506144ef60008301856141e9565b81810360208301526145018184613f5e565b90509392505050565b600060a08201905061451f60008301886141e9565b61452c6020830187613fda565b818103604083015261453e8186613f5e565b905061454d6060830185613f4f565b61455a60808301846141e9565b9695505050505050565b600060208201905061457960008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145df82614739565b91506145ea83614739565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561461f5761461e6147eb565b5b828201905092915050565b600061463582614739565b915061464083614739565b9250826146505761464f61481a565b5b828204905092915050565b600061466682614739565b915061467183614739565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146aa576146a96147eb565b5b828202905092915050565b60006146c082614739565b91506146cb83614739565b9250828210156146de576146dd6147eb565b5b828203905092915050565b60006146f482614719565b9050919050565b600061470682614719565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061475b82614762565b9050919050565b600061476d82614719565b9050919050565b600061477f82614739565b9050919050565b60005b838110156147a4578082015181840152602081019050614789565b838111156147b3576000848401525b50505050565b600060028204905060018216806147d157607f821691505b602082108114156147e5576147e4614849565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614bfd816146e9565b8114614c0857600080fd5b50565b614c148161470d565b8114614c1f57600080fd5b50565b614c2b81614739565b8114614c3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203210f359994ccb6785501f40126c78a86f5c77a676f75fae55822b04cdff969164736f6c63430008030033
Deployed Bytecode Sourcemap
15033:13031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17975:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19275:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16346:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18252:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20732:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15846:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22970:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20611:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16256:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21723:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16151:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18161:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18644:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20985:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15996:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19789:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16394:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16463:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21117:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15407:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6537:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21997:696;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6435:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15807:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18360:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6027:148;;;;;;;;;;;;;:::i;:::-;;15634:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15689:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5802:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18066:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19147:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20067:417;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18870:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21586:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6873:305;;;;;;;;;;;;;:::i;:::-;;22795:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15885:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21407:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15928:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15464:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16044:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21264:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16510:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6635:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18493:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15966:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20492:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19924:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20875:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6183:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16562:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15523:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17975:83;18012:13;18045:5;18038:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17975:83;:::o;19275:161::-;19350:4;19367:39;19376:12;:10;:12::i;:::-;19390:7;19399:6;19367:8;:39::i;:::-;19424:4;19417:11;;19275:161;;;;:::o;16346:41::-;;;;;;;;;;;;;:::o;18252:100::-;18305:7;18332:12;;18325:19;;18252:100;:::o;20732:135::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20853:6:::1;20823:19;:27;20843:6;20823:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20732:135:::0;;:::o;15846:32::-;;;;:::o;22970:313::-;23068:4;23085:36;23095:6;23103:9;23114:6;23085:9;:36::i;:::-;;23132:121;23141:6;23149:12;:10;:12::i;:::-;23163:89;23201:6;23163:89;;;;;;;;;;;;;;;;;:11;:19;23175:6;23163:19;;;;;;;;;;;;;;;:33;23183:12;:10;:12::i;:::-;23163:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;23132:8;:121::i;:::-;23271:4;23264:11;;22970:313;;;;;:::o;20611:113::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20708:8:::1;20689:16;;:27;;;;;;;;;;;;;;;;;;20611:113:::0;:::o;16256:81::-;;;:::o;21723:128::-;21776:7;21803:40;21820:22;21830:11;21820:9;:22::i;:::-;21803:12;;:16;;:40;;;;:::i;:::-;21796:47;;21723:128;:::o;16151:97::-;;;;;;;;;;;;;:::o;18161:83::-;18202:5;18227:9;;;;;;;;;;;18220:16;;18161:83;:::o;18644:218::-;18732:4;18749:83;18758:12;:10;:12::i;:::-;18772:7;18781:50;18820:10;18781:11;:25;18793:12;:10;:12::i;:::-;18781:25;;;;;;;;;;;;;;;:34;18807:7;18781:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18749:8;:83::i;:::-;18850:4;18843:11;;18644:218;;;;:::o;20985:124::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21093:8:::1;21067:23;:34;;;;20985:124:::0;:::o;15996:35::-;;;;:::o;19789:127::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19900:8:::1;19875:13;:22;19889:7;19875:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19789:127:::0;;:::o;16394:28::-;;;;;;;;;;;;;:::o;16463:40::-;;;;;;;;;;;;;:::o;21117:139::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21237:10:::1;21204:22;;:44;;;;;;;;;;;;;;;;;;21117:139:::0;:::o;15407:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6537:90::-;6577:7;6604:15;6597:22;;6537:90;:::o;21997:696::-;22077:22;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22114:35:::1;22171:16;22114:74;;22237:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22219:53;;;22281:4;22288:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22219:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22202:110;;22354:1;22328:28;;:14;:28;;;22325:225;;;22442:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22424:74;;;22507:4;22514:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22424:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22407:131;;22325:225;22578:14;22562:13;;:30;;;;;;;;;;;;;;;;;;22644:16;22626:15;;:34;;;;;;;;;;;;;;;;;;6006:1;21997:696:::0;;;:::o;6435:90::-;6481:7;6508:9;;6501:16;;6435:90;:::o;15807:32::-;;;;:::o;18360:119::-;18426:7;18453:9;:18;18463:7;18453:18;;;;;;;;;;;;;;;;18446:25;;18360:119;;;:::o;6027:148::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6134:1:::1;6097:40;;6118:6;::::0;::::1;;;;;;;;6097:40;;;;;;;;;;;;6165:1;6148:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6027:148::o:0;15634:48::-;;;;:::o;15689:46::-;;;;:::o;5802:79::-;5840:7;5867:6;;;;;;;;;;;5860:13;;5802:79;:::o;18066:87::-;18105:13;18138:7;18131:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18066:87;:::o;19147:120::-;19209:7;19236:23;;19229:30;;19147:120;:::o;20067:417::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20226:15:::1;20210:13;:31;;;;20268:15;20252:13;:31;;;;20309:13;20294:12;:28;;;;20346:10;20333;:23;;;;20376:50;20413:12;;20376:32;20394:13;;20376;;:17;;:32;;;;:::i;:::-;:36;;:50;;;;:::i;:::-;20369:4;:57;;;;20456:20;20465:10;;20456:4;;:8;;:20;;;;:::i;:::-;20437:16;:39;;;;20067:417:::0;;;;:::o;18870:269::-;18963:4;18980:129;18989:12;:10;:12::i;:::-;19003:7;19012:96;19051:15;19012:96;;;;;;;;;;;;;;;;;:11;:25;19024:12;:10;:12::i;:::-;19012:25;;;;;;;;;;;;;;;:34;19038:7;19012:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18980:8;:129::i;:::-;19127:4;19120:11;;18870:269;;;;:::o;21586:125::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21695:8:::1;21667:25;;:36;;;;;;;;;;;;;;;;;;21586:125:::0;:::o;6873:305::-;6943:10;6925:28;;:14;;;;;;;;;;;:28;;;6917:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7030:9;;7012:15;:27;7004:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7121:14;;;;;;;;;;;7092:44;;7113:6;;;;;;;;;;7092:44;;;;;;;;;;;;7156:14;;;;;;;;;;;7147:6;;:23;;;;;;;;;;;;;;;;;;6873:305::o;22795:167::-;22873:4;22890:42;22900:12;:10;:12::i;:::-;22914:9;22925:6;22890:9;:42::i;:::-;;22950:4;22943:11;;22795:167;;;;:::o;15885:31::-;;;;:::o;21407:171::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21508:8:::1;21484:21;;:32;;;;;;;;;;;;;;;;;;21532:38;21561:8;21532:38;;;;;;:::i;:::-;;;;;;;;21407:171:::0;:::o;15928:29::-;;;;:::o;15464:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16044:99::-;;;;;;;;;;;;;:::o;21264:135::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21380:10:::1;21349:20;;:42;;;;;;;;;;;;;;;;;;21264:135:::0;:::o;16510:45::-;;;;;;;;;;;;;:::o;6635:226::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6716:6:::1;::::0;::::1;;;;;;;;6699:14;;:23;;;;;;;;;;;;;;;;;;6750:1;6733:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6793:4;6775:15;:22;;;;:::i;:::-;6763:9;:34;;;;6850:1;6813:40;;6834:6;::::0;::::1;;;;;;;;6813:40;;;;;;;;;;;;6635:226:::0;:::o;18493:143::-;18574:7;18601:11;:18;18613:5;18601:18;;;;;;;;;;;;;;;:27;18620:7;18601:27;;;;;;;;;;;;;;;;18594:34;;18493:143;;;;:::o;15966:23::-;;;;:::o;20492:111::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20584:11:::1;20569:12;:26;;;;20492:111:::0;:::o;19924:135::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20043:8:::1;20014:17;:26;20032:7;20014:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19924:135:::0;;:::o;20875:102::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20961:8:::1;20947:10;:22;;;;20875:102:::0;:::o;6183:244::-;5946:12;:10;:12::i;:::-;5936:22;;:6;;;;;;;;;;:22;;;5928:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6292:1:::1;6272:22;;:8;:22;;;;6264:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6382:8;6353:38;;6374:6;::::0;::::1;;;;;;;;6353:38;;;;;;;;;;;;6411:8;6402:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6183:244:::0;:::o;16562:35::-;;;;;;;;;;;;;:::o;15523:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;1172:181::-;1230:7;1250:9;1266:1;1262;:5;;;;:::i;:::-;1250:17;;1291:1;1286;:6;;1278:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1344:1;1337:8;;;1172:181;;;;:::o;104:115::-;157:15;200:10;185:26;;104:115;:::o;19444:337::-;19554:1;19537:19;;:5;:19;;;;19529:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19635:1;19616:21;;:7;:21;;;;19608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19719:6;19689:11;:18;19701:5;19689:18;;;;;;;;;;;;;;;:27;19708:7;19689:27;;;;;;;;;;;;;;;:36;;;;19757:7;19741:32;;19750:5;19741:32;;;19766:6;19741:32;;;;;;:::i;:::-;;;;;;;;19444:337;;;:::o;23291:1884::-;23378:4;23423:1;23405:20;;:6;:20;;;;23397:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23507:1;23486:23;;:9;:23;;;;23478:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23569:13;:21;23583:6;23569:21;;;;;;;;;;;;;;;;;;;;;;;;;23568:22;:51;;;;;23595:13;:24;23609:9;23595:24;;;;;;;;;;;;;;;;;;;;;;;;;23594:25;23568:51;23560:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;23683:1;23674:6;:10;23666:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23754:16;;;;;;;;;;;23751:1417;;;23804:41;23819:6;23827:9;23838:6;23804:14;:41::i;:::-;23797:48;;;;23751:1417;23910:7;:5;:7::i;:::-;23900:17;;:6;:17;;;;:41;;;;;23934:7;:5;:7::i;:::-;23921:20;;:9;:20;;;;23900:41;23897:156;;;23980:12;;23970:6;:22;;23962:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;23897:156;24081:28;24112:24;24130:4;24112:9;:24::i;:::-;24081:55;;24151:28;24206:23;;24182:20;:47;;24151:78;;24262:23;:44;;;;;24290:16;;;;;;;;;;;24289:17;24262:44;:71;;;;;24320:13;;;;;;;;;;;24310:23;;:6;:23;;;;24262:71;:96;;;;;24337:21;;;;;;;;;;;24262:96;24258:307;;;24396:25;;;;;;;;;;;24393:97;;;24467:23;;24444:46;;24393:97;24509:36;24524:20;24509:14;:36::i;:::-;24258:307;24601:53;24623:6;24601:53;;;;;;;;;;;;;;;;;:9;:17;24611:6;24601:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24581:9;:17;24591:6;24581:17;;;;;;;;;;;;;;;:73;;;;24671:19;24694:17;:25;24712:6;24694:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;24723:17;:28;24741:9;24723:28;;;;;;;;;;;;;;;;;;;;;;;;;24694:57;24693:148;;24807:34;24815:6;24823:9;24834:6;24807:7;:34::i;:::-;24693:148;;;24798:6;24693:148;24671:170;;24861:16;;;;;;;;;;;:51;;;;;24882:19;:30;24902:9;24882:30;;;;;;;;;;;;;;;;;;;;;;;;;24881:31;24861:51;24858:133;;;24980:10;;24939:37;24964:11;24939:20;24949:9;24939;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;24931:60;;;;;;24858:133;25031:37;25056:11;25031:9;:20;25041:9;25031:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25008:9;:20;25018:9;25008:20;;;;;;;;;;;;;;;:60;;;;25107:9;25090:40;;25099:6;25090:40;;;25118:11;25090:40;;;;;;:::i;:::-;;;;;;;;25152:4;25145:11;;;;;23291:1884;;;;;;:::o;1505:192::-;1591:7;1624:1;1619;:6;;1627:12;1611:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1651:9;1667:1;1663;:5;;;;:::i;:::-;1651:17;;1688:1;1681:8;;;1505:192;;;;;:::o;1361:136::-;1419:7;1446:43;1450:1;1453;1446:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1439:50;;1361:136;;;;:::o;25183:330::-;25276:4;25313:53;25335:6;25313:53;;;;;;;;;;;;;;;;;:9;:17;25323:6;25313:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25293:9;:17;25303:6;25293:17;;;;;;;;;;;;;;;:73;;;;25400:32;25425:6;25400:9;:20;25410:9;25400:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25377:9;:20;25387:9;25377:20;;;;;;;;;;;;;;;:55;;;;25465:9;25448:35;;25457:6;25448:35;;;25476:6;25448:35;;;;;;:::i;:::-;;;;;;;;25501:4;25494:11;;25183:330;;;;;:::o;25521:877::-;17039:4;17020:16;;:23;;;;;;;;;;;;;;;;;;25602:19:::1;25624:43;25665:1;25624:36;25646:13;;25624:17;25636:4;;25624:7;:11;;:17;;;;:::i;:::-;:21;;:36;;;;:::i;:::-;:40;;:43;;;;:::i;:::-;25602:65;;25678:21;25702:24;25714:11;25702:7;:11;;:24;;;;:::i;:::-;25678:48;;25739:31;25756:13;25739:16;:31::i;:::-;25781:22;25806:21;25781:46;;25840:19;25862:30;25871:20;25889:1;25871:13;;:17;;:20;;;;:::i;:::-;25862:4;;:8;;:30;;;;:::i;:::-;25840:52;;25913:26;25942:57;25997:1;25942:50;25980:11;25942:33;25961:13;;25942:14;:18;;:33;;;;:::i;:::-;:37;;:50;;;;:::i;:::-;:54;;:57;;;;:::i;:::-;25913:86;;26010:24;26037:49;26074:11;26037:32;26056:12;;26037:14;:18;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;26010:76;;26097:26;26126:60;26169:16;26126:38;26145:18;26126:14;:18;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;26097:89;;26199:64;26220:22;;;;;;;;;;;26244:18;26199:20;:64::i;:::-;26274:60;26295:20;;;;;;;;;;;26317:16;26274:20;:60::i;:::-;26345:45;26358:11;26371:18;26345:12;:45::i;:::-;17054:1;;;;;;;17085:5:::0;17066:16;;:24;;;;;;;;;;;;;;;;;;25521:877;:::o;27605:450::-;27691:7;27721:17;27754:13;;;;;;;;;;;27741:26;;:9;:26;;;:128;;27844:25;27865:3;27844:16;27855:4;;27844:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;27741:128;;;27770:37;27803:3;27770:28;27781:16;;27770:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;27741:128;27721:148;;27909:39;27938:9;27909;:24;27927:4;27909:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27882:9;:24;27900:4;27882:24;;;;;;;;;;;;;;;:66;;;;27989:4;27964:42;;27973:6;27964:42;;;27996:9;27964:42;;;;;;:::i;:::-;;;;;;;;28026:21;28037:9;28026:6;:10;;:21;;;;:::i;:::-;28019:28;;;27605:450;;;;;:::o;1963:132::-;2021:7;2048:39;2052:1;2055;2048:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2041:46;;1963:132;;;;:::o;1705:250::-;1763:7;1792:1;1787;:6;1783:47;;;1817:1;1810:8;;;;1783:47;1842:9;1858:1;1854;:5;;;;:::i;:::-;1842:17;;1887:1;1882;1878;:5;;;;:::i;:::-;:10;1870:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1946:1;1939:8;;;1705:250;;;;;:::o;26410:666::-;26536:21;26574:1;26560:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26536:40;;26605:4;26587;26592:1;26587:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;26631:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26621:4;26626:1;26621:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;26666:62;26683:4;26698:15;;;;;;;;;;;26716:11;26666:8;:62::i;:::-;26767:15;;;;;;;;;;;:66;;;26848:11;26874:1;26918:4;26945;26981:15;26767:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27033:35;27050:11;27063:4;27033:35;;;;;;;:::i;:::-;;;;;;;;26410:666;;:::o;21859:126::-;21951:9;:18;;:26;21970:6;21951:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21859:126;;:::o;27084:513::-;27232:62;27249:4;27264:15;;;;;;;;;;;27282:11;27232:8;:62::i;:::-;27337:15;;;;;;;;;;;:31;;;27376:9;27409:4;27429:11;27455:1;27498;27541:7;:5;:7::i;:::-;27563:15;27337:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27084:513;;:::o;2103:278::-;2189:7;2221:1;2217;:5;2224:12;2209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2248:9;2264:1;2260;:5;;;;:::i;:::-;2248:17;;2372:1;2365:8;;;2103:278;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;;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::-;;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::-;;;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::-;;;;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::-;;;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::-;;;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::-;;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::-;;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:596::-;;;;3766:2;3754:9;3745:7;3741:23;3737:32;3734:2;;;3782:1;3779;3772:12;3734:2;3825:1;3850:64;3906:7;3897:6;3886:9;3882:22;3850:64;:::i;:::-;3840:74;;3796:128;3963:2;3989:64;4045:7;4036:6;4025:9;4021:22;3989:64;:::i;:::-;3979:74;;3934:129;4102:2;4128:64;4184:7;4175:6;4164:9;4160:22;4128:64;:::i;:::-;4118:74;;4073:129;3724:485;;;;;:::o;4215:698::-;;;;;4374:3;4362:9;4353:7;4349:23;4345:33;4342:2;;;4391:1;4388;4381:12;4342:2;4434:1;4459:53;4504:7;4495:6;4484:9;4480:22;4459:53;:::i;:::-;4449:63;;4405:117;4561:2;4587:53;4632:7;4623:6;4612:9;4608:22;4587:53;:::i;:::-;4577:63;;4532:118;4689:2;4715:53;4760:7;4751:6;4740:9;4736:22;4715:53;:::i;:::-;4705:63;;4660:118;4817:2;4843:53;4888:7;4879:6;4868:9;4864:22;4843:53;:::i;:::-;4833:63;;4788:118;4332:581;;;;;;;:::o;4919:179::-;;5009:46;5051:3;5043:6;5009:46;:::i;:::-;5087:4;5082:3;5078:14;5064:28;;4999:99;;;;:::o;5104:142::-;5207:32;5233:5;5207:32;:::i;:::-;5202:3;5195:45;5185:61;;:::o;5252:108::-;5329:24;5347:5;5329:24;:::i;:::-;5324:3;5317:37;5307:53;;:::o;5366:118::-;5453:24;5471:5;5453:24;:::i;:::-;5448:3;5441:37;5431:53;;:::o;5520:732::-;;5668:54;5716:5;5668:54;:::i;:::-;5738:86;5817:6;5812:3;5738:86;:::i;:::-;5731:93;;5848:56;5898:5;5848:56;:::i;:::-;5927:7;5958:1;5943:284;5968:6;5965:1;5962:13;5943:284;;;6044:6;6038:13;6071:63;6130:3;6115:13;6071:63;:::i;:::-;6064:70;;6157:60;6210:6;6157:60;:::i;:::-;6147:70;;6003:224;5990:1;5987;5983:9;5978:14;;5943:284;;;5947:14;6243:3;6236:10;;5644:608;;;;;;;:::o;6258:109::-;6339:21;6354:5;6339:21;:::i;:::-;6334:3;6327:34;6317:50;;:::o;6373:185::-;6487:64;6545:5;6487:64;:::i;:::-;6482:3;6475:77;6465:93;;:::o;6564:147::-;6659:45;6698:5;6659:45;:::i;:::-;6654:3;6647:58;6637:74;;:::o;6717:364::-;;6833:39;6866:5;6833:39;:::i;:::-;6888:71;6952:6;6947:3;6888:71;:::i;:::-;6881:78;;6968:52;7013:6;7008:3;7001:4;6994:5;6990:16;6968:52;:::i;:::-;7045:29;7067:6;7045:29;:::i;:::-;7040:3;7036:39;7029:46;;6809:272;;;;;:::o;7087:366::-;;7250:67;7314:2;7309:3;7250:67;:::i;:::-;7243:74;;7326:93;7415:3;7326:93;:::i;:::-;7444:2;7439:3;7435:12;7428:19;;7233:220;;;:::o;7459:366::-;;7622:67;7686:2;7681:3;7622:67;:::i;:::-;7615:74;;7698:93;7787:3;7698:93;:::i;:::-;7816:2;7811:3;7807:12;7800:19;;7605:220;;;:::o;7831:366::-;;7994:67;8058:2;8053:3;7994:67;:::i;:::-;7987:74;;8070:93;8159:3;8070:93;:::i;:::-;8188:2;8183:3;8179:12;8172:19;;7977:220;;;:::o;8203:366::-;;8366:67;8430:2;8425:3;8366:67;:::i;:::-;8359:74;;8442:93;8531:3;8442:93;:::i;:::-;8560:2;8555:3;8551:12;8544:19;;8349:220;;;:::o;8575:366::-;;8738:67;8802:2;8797:3;8738:67;:::i;:::-;8731:74;;8814:93;8903:3;8814:93;:::i;:::-;8932:2;8927:3;8923:12;8916:19;;8721:220;;;:::o;8947:366::-;;9110:67;9174:2;9169:3;9110:67;:::i;:::-;9103:74;;9186:93;9275:3;9186:93;:::i;:::-;9304:2;9299:3;9295:12;9288:19;;9093:220;;;:::o;9319:366::-;;9482:67;9546:2;9541:3;9482:67;:::i;:::-;9475:74;;9558:93;9647:3;9558:93;:::i;:::-;9676:2;9671:3;9667:12;9660:19;;9465:220;;;:::o;9691:366::-;;9854:67;9918:2;9913:3;9854:67;:::i;:::-;9847:74;;9930:93;10019:3;9930:93;:::i;:::-;10048:2;10043:3;10039:12;10032:19;;9837:220;;;:::o;10063:366::-;;10226:67;10290:2;10285:3;10226:67;:::i;:::-;10219:74;;10302:93;10391:3;10302:93;:::i;:::-;10420:2;10415:3;10411:12;10404:19;;10209:220;;;:::o;10435:366::-;;10598:67;10662:2;10657:3;10598:67;:::i;:::-;10591:74;;10674:93;10763:3;10674:93;:::i;:::-;10792:2;10787:3;10783:12;10776:19;;10581:220;;;:::o;10807:366::-;;10970:67;11034:2;11029:3;10970:67;:::i;:::-;10963:74;;11046:93;11135:3;11046:93;:::i;:::-;11164:2;11159:3;11155:12;11148:19;;10953:220;;;:::o;11179:366::-;;11342:67;11406:2;11401:3;11342:67;:::i;:::-;11335:74;;11418:93;11507:3;11418:93;:::i;:::-;11536:2;11531:3;11527:12;11520:19;;11325:220;;;:::o;11551:366::-;;11714:67;11778:2;11773:3;11714:67;:::i;:::-;11707:74;;11790:93;11879:3;11790:93;:::i;:::-;11908:2;11903:3;11899:12;11892:19;;11697:220;;;:::o;11923:118::-;12010:24;12028:5;12010:24;:::i;:::-;12005:3;11998:37;11988:53;;:::o;12047:112::-;12130:22;12146:5;12130:22;:::i;:::-;12125:3;12118:35;12108:51;;:::o;12165:222::-;;12296:2;12285:9;12281:18;12273:26;;12309:71;12377:1;12366:9;12362:17;12353:6;12309:71;:::i;:::-;12263:124;;;;:::o;12393:254::-;;12540:2;12529:9;12525:18;12517:26;;12553:87;12637:1;12626:9;12622:17;12613:6;12553:87;:::i;:::-;12507:140;;;;:::o;12653:332::-;;12812:2;12801:9;12797:18;12789:26;;12825:71;12893:1;12882:9;12878:17;12869:6;12825:71;:::i;:::-;12906:72;12974:2;12963:9;12959:18;12950:6;12906:72;:::i;:::-;12779:206;;;;;:::o;12991:807::-;;13278:3;13267:9;13263:19;13255:27;;13292:71;13360:1;13349:9;13345:17;13336:6;13292:71;:::i;:::-;13373:72;13441:2;13430:9;13426:18;13417:6;13373:72;:::i;:::-;13455:80;13531:2;13520:9;13516:18;13507:6;13455:80;:::i;:::-;13545;13621:2;13610:9;13606:18;13597:6;13545:80;:::i;:::-;13635:73;13703:3;13692:9;13688:19;13679:6;13635:73;:::i;:::-;13718;13786:3;13775:9;13771:19;13762:6;13718:73;:::i;:::-;13245:553;;;;;;;;;:::o;13804:210::-;;13929:2;13918:9;13914:18;13906:26;;13942:65;14004:1;13993:9;13989:17;13980:6;13942:65;:::i;:::-;13896:118;;;;:::o;14020:276::-;;14178:2;14167:9;14163:18;14155:26;;14191:98;14286:1;14275:9;14271:17;14262:6;14191:98;:::i;:::-;14145:151;;;;:::o;14302:313::-;;14453:2;14442:9;14438:18;14430:26;;14502:9;14496:4;14492:20;14488:1;14477:9;14473:17;14466:47;14530:78;14603:4;14594:6;14530:78;:::i;:::-;14522:86;;14420:195;;;;:::o;14621:419::-;;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14792:248;;;:::o;15046:419::-;;15250:2;15239:9;15235:18;15227:26;;15299:9;15293:4;15289:20;15285:1;15274:9;15270:17;15263:47;15327:131;15453:4;15327:131;:::i;:::-;15319:139;;15217:248;;;:::o;15471:419::-;;15675:2;15664:9;15660:18;15652:26;;15724:9;15718:4;15714:20;15710:1;15699:9;15695:17;15688:47;15752:131;15878:4;15752:131;:::i;:::-;15744:139;;15642:248;;;:::o;15896:419::-;;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;16067:248;;;:::o;16321:419::-;;16525:2;16514:9;16510:18;16502:26;;16574:9;16568:4;16564:20;16560:1;16549:9;16545:17;16538:47;16602:131;16728:4;16602:131;:::i;:::-;16594:139;;16492:248;;;:::o;16746:419::-;;16950:2;16939:9;16935:18;16927:26;;16999:9;16993:4;16989:20;16985:1;16974:9;16970:17;16963:47;17027:131;17153:4;17027:131;:::i;:::-;17019:139;;16917:248;;;:::o;17171:419::-;;17375:2;17364:9;17360:18;17352:26;;17424:9;17418:4;17414:20;17410:1;17399:9;17395:17;17388:47;17452:131;17578:4;17452:131;:::i;:::-;17444:139;;17342:248;;;:::o;17596:419::-;;17800:2;17789:9;17785:18;17777:26;;17849:9;17843:4;17839:20;17835:1;17824:9;17820:17;17813:47;17877:131;18003:4;17877:131;:::i;:::-;17869:139;;17767:248;;;:::o;18021:419::-;;18225:2;18214:9;18210:18;18202:26;;18274:9;18268:4;18264:20;18260:1;18249:9;18245:17;18238:47;18302:131;18428:4;18302:131;:::i;:::-;18294:139;;18192:248;;;:::o;18446:419::-;;18650:2;18639:9;18635:18;18627:26;;18699:9;18693:4;18689:20;18685:1;18674:9;18670:17;18663:47;18727:131;18853:4;18727:131;:::i;:::-;18719:139;;18617:248;;;:::o;18871:419::-;;19075:2;19064:9;19060:18;19052:26;;19124:9;19118:4;19114:20;19110:1;19099:9;19095:17;19088:47;19152:131;19278:4;19152:131;:::i;:::-;19144:139;;19042:248;;;:::o;19296:419::-;;19500:2;19489:9;19485:18;19477:26;;19549:9;19543:4;19539:20;19535:1;19524:9;19520:17;19513:47;19577:131;19703:4;19577:131;:::i;:::-;19569:139;;19467:248;;;:::o;19721:419::-;;19925:2;19914:9;19910:18;19902:26;;19974:9;19968:4;19964:20;19960:1;19949:9;19945:17;19938:47;20002:131;20128:4;20002:131;:::i;:::-;19994:139;;19892:248;;;:::o;20146:222::-;;20277:2;20266:9;20262:18;20254:26;;20290:71;20358:1;20347:9;20343:17;20334:6;20290:71;:::i;:::-;20244:124;;;;:::o;20374:483::-;;20583:2;20572:9;20568:18;20560:26;;20596:71;20664:1;20653:9;20649:17;20640:6;20596:71;:::i;:::-;20714:9;20708:4;20704:20;20699:2;20688:9;20684:18;20677:48;20742:108;20845:4;20836:6;20742:108;:::i;:::-;20734:116;;20550:307;;;;;:::o;20863:831::-;;21164:3;21153:9;21149:19;21141:27;;21178:71;21246:1;21235:9;21231:17;21222:6;21178:71;:::i;:::-;21259:80;21335:2;21324:9;21320:18;21311:6;21259:80;:::i;:::-;21386:9;21380:4;21376:20;21371:2;21360:9;21356:18;21349:48;21414:108;21517:4;21508:6;21414:108;:::i;:::-;21406:116;;21532:72;21600:2;21589:9;21585:18;21576:6;21532:72;:::i;:::-;21614:73;21682:3;21671:9;21667:19;21658:6;21614:73;:::i;:::-;21131:563;;;;;;;;:::o;21700:214::-;;21827:2;21816:9;21812:18;21804:26;;21840:67;21904:1;21893:9;21889:17;21880:6;21840:67;:::i;:::-;21794:120;;;;:::o;21920:132::-;;22010:3;22002:11;;22040:4;22035:3;22031:14;22023:22;;21992:60;;;:::o;22058:114::-;;22159:5;22153:12;22143:22;;22132:40;;;:::o;22178:99::-;;22264:5;22258:12;22248:22;;22237:40;;;:::o;22283:113::-;;22385:4;22380:3;22376:14;22368:22;;22358:38;;;:::o;22402:184::-;;22535:6;22530:3;22523:19;22575:4;22570:3;22566:14;22551:29;;22513:73;;;;:::o;22592:169::-;;22710:6;22705:3;22698:19;22750:4;22745:3;22741:14;22726:29;;22688:73;;;;:::o;22767:305::-;;22826:20;22844:1;22826:20;:::i;:::-;22821:25;;22860:20;22878:1;22860:20;:::i;:::-;22855:25;;23014:1;22946:66;22942:74;22939:1;22936:81;22933:2;;;23020:18;;:::i;:::-;22933:2;23064:1;23061;23057:9;23050:16;;22811:261;;;;:::o;23078:185::-;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23169:20;23187:1;23169:20;:::i;:::-;23164:25;;23208:1;23198:2;;23213:18;;:::i;:::-;23198:2;23255:1;23252;23248:9;23243:14;;23120:143;;;;:::o;23269:348::-;;23332:20;23350:1;23332:20;:::i;:::-;23327:25;;23366:20;23384:1;23366:20;:::i;:::-;23361:25;;23554:1;23486:66;23482:74;23479:1;23476:81;23471:1;23464:9;23457:17;23453:105;23450:2;;;23561:18;;:::i;:::-;23450:2;23609:1;23606;23602:9;23591:20;;23317:300;;;;:::o;23623:191::-;;23683:20;23701:1;23683:20;:::i;:::-;23678:25;;23717:20;23735:1;23717:20;:::i;:::-;23712:25;;23756:1;23753;23750:8;23747:2;;;23761:18;;:::i;:::-;23747:2;23806:1;23803;23799:9;23791:17;;23668:146;;;;:::o;23820:96::-;;23886:24;23904:5;23886:24;:::i;:::-;23875:35;;23865:51;;;:::o;23922:104::-;;23996:24;24014:5;23996:24;:::i;:::-;23985:35;;23975:51;;;:::o;24032:90::-;;24109:5;24102:13;24095:21;24084:32;;24074:48;;;:::o;24128:126::-;;24205:42;24198:5;24194:54;24183:65;;24173:81;;;:::o;24260:77::-;;24326:5;24315:16;;24305:32;;;:::o;24343:86::-;;24418:4;24411:5;24407:16;24396:27;;24386:43;;;:::o;24435:180::-;;24545:64;24603:5;24545:64;:::i;:::-;24532:77;;24522:93;;;:::o;24621:140::-;;24731:24;24749:5;24731:24;:::i;:::-;24718:37;;24708:53;;;:::o;24767:121::-;;24858:24;24876:5;24858:24;:::i;:::-;24845:37;;24835:53;;;:::o;24894:307::-;24962:1;24972:113;24986:6;24983:1;24980:13;24972:113;;;25071:1;25066:3;25062:11;25056:18;25052:1;25047:3;25043:11;25036:39;25008:2;25005:1;25001:10;24996:15;;24972:113;;;25103:6;25100:1;25097:13;25094:2;;;25183:1;25174:6;25169:3;25165:16;25158:27;25094:2;24943:258;;;;:::o;25207:320::-;;25288:1;25282:4;25278:12;25268:22;;25335:1;25329:4;25325:12;25356:18;25346:2;;25412:4;25404:6;25400:17;25390:27;;25346:2;25474;25466:6;25463:14;25443:18;25440:38;25437:2;;;25493:18;;:::i;:::-;25437:2;25258:269;;;;:::o;25533:180::-;25581:77;25578:1;25571:88;25678:4;25675:1;25668:15;25702:4;25699:1;25692:15;25719:180;25767:77;25764:1;25757:88;25864:4;25861:1;25854:15;25888:4;25885:1;25878:15;25905:180;25953:77;25950:1;25943:88;26050:4;26047:1;26040:15;26074:4;26071:1;26064:15;26091:102;;26183:2;26179:7;26174:2;26167:5;26163:14;26159:28;26149:38;;26139:54;;;:::o;26199:222::-;26339:34;26335:1;26327:6;26323:14;26316:58;26408:5;26403:2;26395:6;26391:15;26384:30;26305:116;:::o;26427:225::-;26567:34;26563:1;26555:6;26551:14;26544:58;26636:8;26631:2;26623:6;26619:15;26612:33;26533:119;:::o;26658:221::-;26798:34;26794:1;26786:6;26782:14;26775:58;26867:4;26862:2;26854:6;26850:15;26843:29;26764:115;:::o;26885:177::-;27025:29;27021:1;27013:6;27009:14;27002:53;26991:71;:::o;27068:181::-;27208:33;27204:1;27196:6;27192:14;27185:57;27174:75;:::o;27255:227::-;27395:34;27391:1;27383:6;27379:14;27372:58;27464:10;27459:2;27451:6;27447:15;27440:35;27361:121;:::o;27488:220::-;27628:34;27624:1;27616:6;27612:14;27605:58;27697:3;27692:2;27684:6;27680:15;27673:28;27594:114;:::o;27714:182::-;27854:34;27850:1;27842:6;27838:14;27831:58;27820:76;:::o;27902:228::-;28042:34;28038:1;28030:6;28026:14;28019:58;28111:11;28106:2;28098:6;28094:15;28087:36;28008:122;:::o;28136:224::-;28276:34;28272:1;28264:6;28260:14;28253:58;28345:7;28340:2;28332:6;28328:15;28321:32;28242:118;:::o;28366:223::-;28506:34;28502:1;28494:6;28490:14;28483:58;28575:6;28570:2;28562:6;28558:15;28551:31;28472:117;:::o;28595:181::-;28735:33;28731:1;28723:6;28719:14;28712:57;28701:75;:::o;28782:222::-;28922:34;28918:1;28910:6;28906:14;28899:58;28991:5;28986:2;28978:6;28974:15;28967:30;28888:116;:::o;29010:122::-;29083:24;29101:5;29083:24;:::i;:::-;29076:5;29073:35;29063:2;;29122:1;29119;29112:12;29063:2;29053:79;:::o;29138:116::-;29208:21;29223:5;29208:21;:::i;:::-;29201:5;29198:32;29188:2;;29244:1;29241;29234:12;29188:2;29178:76;:::o;29260:122::-;29333:24;29351:5;29333:24;:::i;:::-;29326:5;29323:35;29313:2;;29372:1;29369;29362:12;29313:2;29303:79;:::o
Swarm Source
ipfs://3210f359994ccb6785501f40126c78a86f5c77a676f75fae55822b04cdff9691
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.