Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 DICK
Holders
32
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DICK
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-14 */ /* Everyone love dick (__)(__)======D */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract DICK is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "Unidentified Fucking Object"; string private _symbol = "DICK"; uint8 private _decimals = 9; address payable private mW1 = payable(0x1131E72526b9c792819A78844f9C1cfaCE9c47Db); address payable private mW2 = payable(0x1131E72526b9c792819A78844f9C1cfaCE9c47Db); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public checkExcludedFromFees; mapping (address => bool) public checkWalletLimitExcept; mapping (address => bool) public checkTxLimitExcept; mapping (address => bool) public checkMarketPair; uint256 public _buyLiquidityFees = 1; uint256 public _buyMarketingFees = 2; uint256 public _buyDevelopmentFees = 2; uint256 public _sellLiquidityFees = 1; uint256 public _sellMarketingFees = 2; uint256 public _sellDevelopmentFees = 2; uint256 public _liquidityShares = 2; uint256 public _marketingShares = 10; uint256 public _developmentShares = 10; uint256 public _totalTaxIfBuying = 10; uint256 public _totalTaxIfSelling = 10; uint256 public _totalDistributionShares = 22; uint256 private _totalSupply = 1000000 * 10**9; uint256 public _maxTxAmount = 1000000 * 10**9; uint256 public _walletMax = 1000000 * 10**9; uint256 private minimumTokensBeforeSwap = 10 * 10**2; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; 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); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; checkExcludedFromFees[owner()] = true; checkExcludedFromFees[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees); _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees); _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares); checkWalletLimitExcept[owner()] = true; checkWalletLimitExcept[address(uniswapPair)] = true; checkWalletLimitExcept[address(this)] = true; checkTxLimitExcept[owner()] = true; checkTxLimitExcept[address(this)] = true; checkMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function addMarketPair(address account) public onlyOwner { checkMarketPair[account] = true; } function setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner { checkTxLimitExcept[holder] = exempt; } function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner { checkExcludedFromFees[account] = newValue; } function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() { _buyLiquidityFees = newLiquidityTax; _buyMarketingFees = newMarketingTax; _buyDevelopmentFees = newDevelopmentTax; _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees); } function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() { _sellLiquidityFees = newLiquidityTax; _sellMarketingFees = newMarketingTax; _sellDevelopmentFees = newDevelopmentTax; _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newDevelopmentShare) external onlyOwner() { _liquidityShares = newLiquidityShare; _marketingShares = newMarketingShare; _developmentShares = newDevelopmentShare; _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares); } function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount <= (1000000 * 10**9), "Max wallet should be less or euqal to 4% totalSupply"); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner { checkWalletLimitExcept[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setmW1(address newAddress) external onlyOwner() { mW1 = payable(newAddress); } function setmW2(address newAddress) external onlyOwner() { mW2 = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address checkWalletLimitExcept[address(uniswapPair)] = true; checkMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !checkWalletLimitExcept[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShares).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShares.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShares).div(totalETHFee).div(2); uint256 amountETHDevelopment = amountReceived.mul(_developmentShares).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDevelopment); if(amountETHMarketing > 0) transferToAddressETH(mW1, amountETHMarketing); if(amountETHDevelopment > 0) transferToAddressETH(mW2, amountETHDevelopment); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(checkMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(checkMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"_buyDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShares","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":"_sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setmW1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setmW2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280601b81526020017f556e6964656e746966696564204675636b696e67204f626a6563740000000000815250600290805190602001906200005192919062000b3b565b506040518060400160405280600481526020017f4449434b00000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b3b565b506009600460006101000a81548160ff021916908360ff160217905550731131e72526b9c792819a78844f9c1cface9c47db600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731131e72526b9c792819a78844f9c1cface9c47db600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600c556002600d556002600e556001600f55600260105560026011556002601255600a601355600a601455600a601555600a601655601660175566038d7ea4c6800060185566038d7ea4c6800060195566038d7ea4c68000601a556103e8601b556000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200025f57600080fd5b5060006200027262000aa760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037057600080fd5b505afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000c02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040e57600080fd5b505afa15801562000423573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000449919062000c02565b6040518363ffffffff1660e01b81526004016200046892919062000c77565b602060405180830381600087803b1580156200048357600080fd5b505af115801562000498573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004be919062000c02565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005fa62000aaf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006dc600e54620006c8600d54600c5462000ad860201b620028d01790919060201c565b62000ad860201b620028d01790919060201c565b6015819055506200071b60115462000707601054600f5462000ad860201b620028d01790919060201c565b62000ad860201b620028d01790919060201c565b6016819055506200075a6014546200074660135460125462000ad860201b620028d01790919060201c565b62000ad860201b620028d01790919060201c565b6017819055506001600960006200077662000aaf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008af62000aaf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009e962000aa760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a3762000aa760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a98919062000cc6565b60405180910390a35062000e66565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000ae9919062000cf4565b90508381101562000b31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b289062000ca4565b60405180910390fd5b8091505092915050565b82805462000b499062000d8f565b90600052602060002090601f01602090048101928262000b6d576000855562000bb9565b82601f1062000b8857805160ff191683800117855562000bb9565b8280016001018555821562000bb9579182015b8281111562000bb857825182559160200191906001019062000b9b565b5b50905062000bc8919062000bcc565b5090565b5b8082111562000be757600081600090555060010162000bcd565b5090565b60008151905062000bfc8162000e4c565b92915050565b60006020828403121562000c1557600080fd5b600062000c258482850162000beb565b91505092915050565b62000c398162000d51565b82525050565b600062000c4e601b8362000ce3565b915062000c5b8262000e23565b602082019050919050565b62000c718162000d85565b82525050565b600060408201905062000c8e600083018562000c2e565b62000c9d602083018462000c2e565b9392505050565b6000602082019050818103600083015262000cbf8162000c3f565b9050919050565b600060208201905062000cdd600083018462000c66565b92915050565b600082825260208201905092915050565b600062000d018262000d85565b915062000d0e8362000d85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d465762000d4562000dc5565b5b828201905092915050565b600062000d5e8262000d65565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000da857607f821691505b6020821081141562000dbf5762000dbe62000df4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e578162000d51565b811462000e6357600080fd5b50565b60805160601c614b8e62000e8c6000396000818161124801526112740152614b8e6000f3fe6080604052600436106103545760003560e01c806370a08231116101c6578063c2d4640e116100f7578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610c87578063f2fde38b14610cb0578063f872858a14610cd9578063fabf706314610d045761035b565b8063dd62ed3e14610bf6578063e207a92b14610c33578063f0cd1dac14610c5c5761035b565b8063c816841b116100d1578063c816841b14610b4c578063d76e26a314610b77578063da00097d14610ba2578063db7d797014610bcd5761035b565b8063c2d4640e14610abd578063c49b9a8014610ae6578063c78a789b14610b0f5761035b565b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146109ef578063a5d69d1f14610a2c578063a9059cbb14610a55578063b6c3af3414610a925761035b565b806395d89b411461096e5780639e3fa32314610999578063a08e671f146109c45761035b565b806382eefb43116101a057806382eefb43146108d85780638da5cb5b146109035780638f03aad51461092e578063914eb66a146109575761035b565b806370a08231146108455780637d1db4a514610882578063807c2d9c146108ad5761035b565b80632f0a5fd4116102a0578063565cec381161023e578063646d470011610218578063646d47001461079b578063661b6e36146107c6578063667b511c146107f1578063705f9d741461081a5761035b565b8063565cec381461070a57806357e6adcb146107355780635881f3ef1461075e5761035b565b80633b97084a1161027a5780633b97084a1461063c5780634a74bb0214610665578063526012e81461069057806355324fa9146106cd5761035b565b80632f0a5fd4146105a9578063313ce567146105d457806339509351146105ff5761035b565b806325519cf21161030d57806327c8f835116102e757806327c8f835146104ff5780632b112e491461052a5780632cdae5cb146105555780632df671091461057e5761035b565b806325519cf2146104845780632563ae83146104ad5780632768b11b146104d65761035b565b806306fdde0314610360578063095ea7b31461038b5780631694505e146103c857806318160ddd146103f35780631d865c301461041e57806323b872dd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d41565b60405161038291906142e2565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190613e65565b610dd3565b6040516103bf91906142ac565b60405180910390f35b3480156103d457600080fd5b506103dd610df1565b6040516103ea91906142c7565b60405180910390f35b3480156103ff57600080fd5b50610408610e17565b6040516104159190614444565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190613ef3565b610e21565b005b34801561045357600080fd5b5061046e60048036038101906104699190613dda565b610f01565b60405161047b91906142ac565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190613ef3565b610fdb565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190613ea1565b6110bb565b005b3480156104e257600080fd5b506104fd60048036038101906104f89190613d4c565b61116d565b005b34801561050b57600080fd5b50610514611246565b6040516105219190614207565b60405180910390f35b34801561053657600080fd5b5061053f61126a565b60405161054c9190614444565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613e29565b6112ae565b005b34801561058a57600080fd5b5061059361139e565b6040516105a09190614444565b60405180910390f35b3480156105b557600080fd5b506105be6113a4565b6040516105cb9190614444565b60405180910390f35b3480156105e057600080fd5b506105e96113aa565b6040516105f691906144e9565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190613e65565b6113c1565b60405161063391906142ac565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613eca565b611474565b005b34801561067157600080fd5b5061067a611513565b60405161068791906142ac565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613d4c565b611526565b6040516106c491906142ac565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613d4c565b611546565b60405161070191906142ac565b60405180910390f35b34801561071657600080fd5b5061071f611566565b60405161072c9190614444565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e29565b61156c565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d4c565b61165c565b6040516107929190614207565b60405180910390f35b3480156107a757600080fd5b506107b0611bba565b6040516107bd9190614444565b60405180910390f35b3480156107d257600080fd5b506107db611bc0565b6040516107e89190614444565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613e29565b611bc6565b005b34801561082657600080fd5b5061082f611cb6565b60405161083c9190614444565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d4c565b611cbc565b6040516108799190614444565b60405180910390f35b34801561088e57600080fd5b50610897611d05565b6040516108a49190614444565b60405180910390f35b3480156108b957600080fd5b506108c2611d0b565b6040516108cf9190614444565b60405180910390f35b3480156108e457600080fd5b506108ed611d11565b6040516108fa9190614444565b60405180910390f35b34801561090f57600080fd5b50610918611d17565b6040516109259190614207565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613eca565b611d40565b005b34801561096357600080fd5b5061096c611e29565b005b34801561097a57600080fd5b50610983611f7c565b60405161099091906142e2565b60405180910390f35b3480156109a557600080fd5b506109ae61200e565b6040516109bb9190614444565b60405180910390f35b3480156109d057600080fd5b506109d9612014565b6040516109e69190614444565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613e65565b61201a565b604051610a2391906142ac565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613ea1565b6120e7565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190613e65565b612199565b604051610a8991906142ac565b60405180910390f35b348015610a9e57600080fd5b50610aa76121b8565b604051610ab49190614444565b60405180910390f35b348015610ac957600080fd5b50610ae46004803603810190610adf9190613ef3565b6121be565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613ea1565b61229e565b005b348015610b1b57600080fd5b50610b366004803603810190610b319190613d4c565b612387565b604051610b4391906142ac565b60405180910390f35b348015610b5857600080fd5b50610b616123a7565b604051610b6e9190614207565b60405180910390f35b348015610b8357600080fd5b50610b8c6123cd565b604051610b999190614444565b60405180910390f35b348015610bae57600080fd5b50610bb76123d3565b604051610bc491906142ac565b60405180910390f35b348015610bd957600080fd5b50610bf46004803603810190610bef9190613d4c565b6123e6565b005b348015610c0257600080fd5b50610c1d6004803603810190610c189190613d9e565b6124bf565b604051610c2a9190614444565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d4c565b612546565b005b348015610c6857600080fd5b50610c71612636565b604051610c7e9190614444565b60405180910390f35b348015610c9357600080fd5b50610cae6004803603810190610ca99190613eca565b61263c565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd29190613d4c565b6126db565b005b348015610ce557600080fd5b50610cee61289d565b604051610cfb91906142ac565b60405180910390f35b348015610d1057600080fd5b50610d2b6004803603810190610d269190613d4c565b6128b0565b604051610d3891906142ac565b60405180910390f35b606060028054610d509061472c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7c9061472c565b8015610dc95780601f10610d9e57610100808354040283529160200191610dc9565b820191906000526020600020905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b6000610de7610de061292e565b8484612936565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610e2961292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead906143e4565b60405180910390fd5b82600f819055508160108190555080601181905550610ef6601154610ee8601054600f546128d090919063ffffffff16565b6128d090919063ffffffff16565b601681905550505050565b6000610f0e848484612b01565b50610fd084610f1b61292e565b610fcb85604051806060016040528060288152602001614b0c60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f8161292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b612936565b600190509392505050565b610fe361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611067906143e4565b60405180910390fd5b82600c8190555081600d8190555080600e819055506110b0600e546110a2600d54600c546128d090919063ffffffff16565b6128d090919063ffffffff16565b601581905550505050565b6110c361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611150576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611147906143e4565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b61117561292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906143e4565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112a96112987f0000000000000000000000000000000000000000000000000000000000000000611cbc565b60185461314a90919063ffffffff16565b905090565b6112b661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906143e4565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600f5481565b6000600460009054906101000a900460ff16905090565b600061146a6113ce61292e565b8461146585600760006113df61292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b612936565b6001905092915050565b61147c61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906143e4565b60405180910390fd5b80601b8190555050565b601d60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b61157461292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906143e4565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061166661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906143e4565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613d75565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d857600080fd5b505afa1580156117ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118109190613d75565b6040518363ffffffff1660e01b815260040161182d929190614222565b60206040518083038186803b15801561184557600080fd5b505afa158015611859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187d9190613d75565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190613d75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561199457600080fd5b505afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc9190613d75565b6040518363ffffffff1660e01b81526004016119e9929190614222565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613d75565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60115481565b60105481565b611bce61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906143e4565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d4861292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906143e4565b60405180910390fd5b66038d7ea4c68000811115611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690614324565b60405180910390fd5b8060198190555050565b611e3161292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb5906143e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611f8b9061472c565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb79061472c565b80156120045780601f10611fd957610100808354040283529160200191612004565b820191906000526020600020905b815481529060010190602001808311611fe757829003601f168201915b5050505050905090565b60125481565b60175481565b60006120dd61202761292e565b846120d885604051806060016040528060258152602001614b34602591396007600061205161292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b612936565b6001905092915050565b6120ef61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906143e4565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b60006121ad6121a661292e565b8484612b01565b506001905092915050565b600c5481565b6121c661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906143e4565b60405180910390fd5b8260128190555081601381905550806014819055506122936014546122856013546012546128d090919063ffffffff16565b6128d090919063ffffffff16565b601781905550505050565b6122a661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a906143e4565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161237c91906142ac565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60169054906101000a900460ff1681565b6123ee61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612472906143e4565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61254e61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d2906143e4565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b61264461292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c8906143e4565b60405180910390fd5b80601a8190555050565b6126e361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612770576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612767906143e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d790614344565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846128df9190614559565b905083811015612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291b90614384565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90614424565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90614364565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612af49190614444565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6990614404565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd990614304565b60405180910390fd5b601d60149054906101000a900460ff1615612c0957612c02848484613194565b90506130df565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cad5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf857601954821115612cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cee906143a4565b60405180910390fd5b5b6000612d0330611cbc565b90506000601b548210159050808015612d295750601d60149054906101000a900460ff16155b8015612d7f5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d975750601d60159054906101000a900460ff165b15612dc157601d60169054906101000a900460ff1615612db757601b5491505b612dc082613367565b5b612e4a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f305750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4457612f3f878787613558565b612f46565b845b9050601d60179054906101000a900460ff168015612fae5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdd57601a54612fd182612fc389611cbc565b6128d090919063ffffffff16565b1115612fdc57600080fd5b5b61302f81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cf9190614444565b60405180910390a3600193505050505b9392505050565b600083831115829061312e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312591906142e2565b60405180910390fd5b506000838561313d919061463a565b9050809150509392505050565b600061318c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e6565b905092915050565b600061321f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133549190614444565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006133c060026133b26017546133a46012548761377f90919063ffffffff16565b6137fa90919063ffffffff16565b6137fa90919063ffffffff16565b905060006133d7828461314a90919063ffffffff16565b90506133e281613844565b6000479050600061341361340260026012546137fa90919063ffffffff16565b60175461314a90919063ffffffff16565b905060006134516002613443846134356012548861377f90919063ffffffff16565b6137fa90919063ffffffff16565b6137fa90919063ffffffff16565b9050600061347c8361346e6014548761377f90919063ffffffff16565b6137fa90919063ffffffff16565b905060006134a582613497858861314a90919063ffffffff16565b61314a90919063ffffffff16565b905060008111156134dd576134dc600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b41565b5b600082111561351357613512600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b41565b5b6000831180156135235750600087115b15613533576135328784613b8c565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135e0576135d960646135cb6015548661377f90919063ffffffff16565b6137fa90919063ffffffff16565b905061365e565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365d5761365a606461364c6016548661377f90919063ffffffff16565b6137fa90919063ffffffff16565b90505b5b6000811115613762576136b981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137599190614444565b60405180910390a35b613775818461314a90919063ffffffff16565b9150509392505050565b60008083141561379257600090506137f4565b600082846137a091906145e0565b90508284826137af91906145af565b146137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e6906143c4565b60405180910390fd5b809150505b92915050565b600061383c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c80565b905092915050565b6000600267ffffffffffffffff811115613887577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138b55781602001602082028036833780820191505090505b50905030816000815181106138f3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561399557600080fd5b505afa1580156139a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139cd9190613d75565b81600181518110613a07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a6e30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612936565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ad295949392919061448f565b600060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b3592919061445f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b87573d6000803e3d6000fd5b505050565b613bb930601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612936565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c05611d17565b426040518863ffffffff1660e01b8152600401613c279695949392919061424b565b6060604051808303818588803b158015613c4057600080fd5b505af1158015613c54573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c799190613f42565b5050505050565b60008083118290613cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbe91906142e2565b60405180910390fd5b5060008385613cd691906145af565b9050809150509392505050565b600081359050613cf281614ac6565b92915050565b600081519050613d0781614ac6565b92915050565b600081359050613d1c81614add565b92915050565b600081359050613d3181614af4565b92915050565b600081519050613d4681614af4565b92915050565b600060208284031215613d5e57600080fd5b6000613d6c84828501613ce3565b91505092915050565b600060208284031215613d8757600080fd5b6000613d9584828501613cf8565b91505092915050565b60008060408385031215613db157600080fd5b6000613dbf85828601613ce3565b9250506020613dd085828601613ce3565b9150509250929050565b600080600060608486031215613def57600080fd5b6000613dfd86828701613ce3565b9350506020613e0e86828701613ce3565b9250506040613e1f86828701613d22565b9150509250925092565b60008060408385031215613e3c57600080fd5b6000613e4a85828601613ce3565b9250506020613e5b85828601613d0d565b9150509250929050565b60008060408385031215613e7857600080fd5b6000613e8685828601613ce3565b9250506020613e9785828601613d22565b9150509250929050565b600060208284031215613eb357600080fd5b6000613ec184828501613d0d565b91505092915050565b600060208284031215613edc57600080fd5b6000613eea84828501613d22565b91505092915050565b600080600060608486031215613f0857600080fd5b6000613f1686828701613d22565b9350506020613f2786828701613d22565b9250506040613f3886828701613d22565b9150509250925092565b600080600060608486031215613f5757600080fd5b6000613f6586828701613d37565b9350506020613f7686828701613d37565b9250506040613f8786828701613d37565b9150509250925092565b6000613f9d8383613fa9565b60208301905092915050565b613fb28161466e565b82525050565b613fc18161466e565b82525050565b6000613fd282614514565b613fdc8185614537565b9350613fe783614504565b8060005b83811015614018578151613fff8882613f91565b975061400a8361452a565b925050600181019050613feb565b5085935050505092915050565b61402e81614680565b82525050565b61403d816146c3565b82525050565b61404c816146e7565b82525050565b600061405d8261451f565b6140678185614548565b93506140778185602086016146f9565b614080816147eb565b840191505092915050565b6000614098602383614548565b91506140a3826147fc565b604082019050919050565b60006140bb603483614548565b91506140c68261484b565b604082019050919050565b60006140de602683614548565b91506140e98261489a565b604082019050919050565b6000614101602283614548565b915061410c826148e9565b604082019050919050565b6000614124601b83614548565b915061412f82614938565b602082019050919050565b6000614147602883614548565b915061415282614961565b604082019050919050565b600061416a602183614548565b9150614175826149b0565b604082019050919050565b600061418d602083614548565b9150614198826149ff565b602082019050919050565b60006141b0602583614548565b91506141bb82614a28565b604082019050919050565b60006141d3602483614548565b91506141de82614a77565b604082019050919050565b6141f2816146ac565b82525050565b614201816146b6565b82525050565b600060208201905061421c6000830184613fb8565b92915050565b60006040820190506142376000830185613fb8565b6142446020830184613fb8565b9392505050565b600060c0820190506142606000830189613fb8565b61426d60208301886141e9565b61427a6040830187614043565b6142876060830186614043565b6142946080830185613fb8565b6142a160a08301846141e9565b979650505050505050565b60006020820190506142c16000830184614025565b92915050565b60006020820190506142dc6000830184614034565b92915050565b600060208201905081810360008301526142fc8184614052565b905092915050565b6000602082019050818103600083015261431d8161408b565b9050919050565b6000602082019050818103600083015261433d816140ae565b9050919050565b6000602082019050818103600083015261435d816140d1565b9050919050565b6000602082019050818103600083015261437d816140f4565b9050919050565b6000602082019050818103600083015261439d81614117565b9050919050565b600060208201905081810360008301526143bd8161413a565b9050919050565b600060208201905081810360008301526143dd8161415d565b9050919050565b600060208201905081810360008301526143fd81614180565b9050919050565b6000602082019050818103600083015261441d816141a3565b9050919050565b6000602082019050818103600083015261443d816141c6565b9050919050565b600060208201905061445960008301846141e9565b92915050565b600060408201905061447460008301856141e9565b81810360208301526144868184613fc7565b90509392505050565b600060a0820190506144a460008301886141e9565b6144b16020830187614043565b81810360408301526144c38186613fc7565b90506144d26060830185613fb8565b6144df60808301846141e9565b9695505050505050565b60006020820190506144fe60008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614564826146ac565b915061456f836146ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145a4576145a361475e565b5b828201905092915050565b60006145ba826146ac565b91506145c5836146ac565b9250826145d5576145d461478d565b5b828204905092915050565b60006145eb826146ac565b91506145f6836146ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561462f5761462e61475e565b5b828202905092915050565b6000614645826146ac565b9150614650836146ac565b9250828210156146635761466261475e565b5b828203905092915050565b60006146798261468c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146ce826146d5565b9050919050565b60006146e08261468c565b9050919050565b60006146f2826146ac565b9050919050565b60005b838110156147175780820151818401526020810190506146fc565b83811115614726576000848401525b50505050565b6000600282049050600182168061474457607f821691505b60208210811415614758576147576147bc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614acf8161466e565b8114614ada57600080fd5b50565b614ae681614680565b8114614af157600080fd5b50565b614afd816146ac565b8114614b0857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122060c67ee7310611098ebc2eaa54b6d799751bc8db3d1411247d6b8efb7206b58764736f6c63430008040033
Deployed Bytecode
0x6080604052600436106103545760003560e01c806370a08231116101c6578063c2d4640e116100f7578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610c87578063f2fde38b14610cb0578063f872858a14610cd9578063fabf706314610d045761035b565b8063dd62ed3e14610bf6578063e207a92b14610c33578063f0cd1dac14610c5c5761035b565b8063c816841b116100d1578063c816841b14610b4c578063d76e26a314610b77578063da00097d14610ba2578063db7d797014610bcd5761035b565b8063c2d4640e14610abd578063c49b9a8014610ae6578063c78a789b14610b0f5761035b565b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146109ef578063a5d69d1f14610a2c578063a9059cbb14610a55578063b6c3af3414610a925761035b565b806395d89b411461096e5780639e3fa32314610999578063a08e671f146109c45761035b565b806382eefb43116101a057806382eefb43146108d85780638da5cb5b146109035780638f03aad51461092e578063914eb66a146109575761035b565b806370a08231146108455780637d1db4a514610882578063807c2d9c146108ad5761035b565b80632f0a5fd4116102a0578063565cec381161023e578063646d470011610218578063646d47001461079b578063661b6e36146107c6578063667b511c146107f1578063705f9d741461081a5761035b565b8063565cec381461070a57806357e6adcb146107355780635881f3ef1461075e5761035b565b80633b97084a1161027a5780633b97084a1461063c5780634a74bb0214610665578063526012e81461069057806355324fa9146106cd5761035b565b80632f0a5fd4146105a9578063313ce567146105d457806339509351146105ff5761035b565b806325519cf21161030d57806327c8f835116102e757806327c8f835146104ff5780632b112e491461052a5780632cdae5cb146105555780632df671091461057e5761035b565b806325519cf2146104845780632563ae83146104ad5780632768b11b146104d65761035b565b806306fdde0314610360578063095ea7b31461038b5780631694505e146103c857806318160ddd146103f35780631d865c301461041e57806323b872dd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d41565b60405161038291906142e2565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190613e65565b610dd3565b6040516103bf91906142ac565b60405180910390f35b3480156103d457600080fd5b506103dd610df1565b6040516103ea91906142c7565b60405180910390f35b3480156103ff57600080fd5b50610408610e17565b6040516104159190614444565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190613ef3565b610e21565b005b34801561045357600080fd5b5061046e60048036038101906104699190613dda565b610f01565b60405161047b91906142ac565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190613ef3565b610fdb565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190613ea1565b6110bb565b005b3480156104e257600080fd5b506104fd60048036038101906104f89190613d4c565b61116d565b005b34801561050b57600080fd5b50610514611246565b6040516105219190614207565b60405180910390f35b34801561053657600080fd5b5061053f61126a565b60405161054c9190614444565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613e29565b6112ae565b005b34801561058a57600080fd5b5061059361139e565b6040516105a09190614444565b60405180910390f35b3480156105b557600080fd5b506105be6113a4565b6040516105cb9190614444565b60405180910390f35b3480156105e057600080fd5b506105e96113aa565b6040516105f691906144e9565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190613e65565b6113c1565b60405161063391906142ac565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613eca565b611474565b005b34801561067157600080fd5b5061067a611513565b60405161068791906142ac565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613d4c565b611526565b6040516106c491906142ac565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613d4c565b611546565b60405161070191906142ac565b60405180910390f35b34801561071657600080fd5b5061071f611566565b60405161072c9190614444565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e29565b61156c565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d4c565b61165c565b6040516107929190614207565b60405180910390f35b3480156107a757600080fd5b506107b0611bba565b6040516107bd9190614444565b60405180910390f35b3480156107d257600080fd5b506107db611bc0565b6040516107e89190614444565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613e29565b611bc6565b005b34801561082657600080fd5b5061082f611cb6565b60405161083c9190614444565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d4c565b611cbc565b6040516108799190614444565b60405180910390f35b34801561088e57600080fd5b50610897611d05565b6040516108a49190614444565b60405180910390f35b3480156108b957600080fd5b506108c2611d0b565b6040516108cf9190614444565b60405180910390f35b3480156108e457600080fd5b506108ed611d11565b6040516108fa9190614444565b60405180910390f35b34801561090f57600080fd5b50610918611d17565b6040516109259190614207565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613eca565b611d40565b005b34801561096357600080fd5b5061096c611e29565b005b34801561097a57600080fd5b50610983611f7c565b60405161099091906142e2565b60405180910390f35b3480156109a557600080fd5b506109ae61200e565b6040516109bb9190614444565b60405180910390f35b3480156109d057600080fd5b506109d9612014565b6040516109e69190614444565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613e65565b61201a565b604051610a2391906142ac565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613ea1565b6120e7565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190613e65565b612199565b604051610a8991906142ac565b60405180910390f35b348015610a9e57600080fd5b50610aa76121b8565b604051610ab49190614444565b60405180910390f35b348015610ac957600080fd5b50610ae46004803603810190610adf9190613ef3565b6121be565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613ea1565b61229e565b005b348015610b1b57600080fd5b50610b366004803603810190610b319190613d4c565b612387565b604051610b4391906142ac565b60405180910390f35b348015610b5857600080fd5b50610b616123a7565b604051610b6e9190614207565b60405180910390f35b348015610b8357600080fd5b50610b8c6123cd565b604051610b999190614444565b60405180910390f35b348015610bae57600080fd5b50610bb76123d3565b604051610bc491906142ac565b60405180910390f35b348015610bd957600080fd5b50610bf46004803603810190610bef9190613d4c565b6123e6565b005b348015610c0257600080fd5b50610c1d6004803603810190610c189190613d9e565b6124bf565b604051610c2a9190614444565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d4c565b612546565b005b348015610c6857600080fd5b50610c71612636565b604051610c7e9190614444565b60405180910390f35b348015610c9357600080fd5b50610cae6004803603810190610ca99190613eca565b61263c565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd29190613d4c565b6126db565b005b348015610ce557600080fd5b50610cee61289d565b604051610cfb91906142ac565b60405180910390f35b348015610d1057600080fd5b50610d2b6004803603810190610d269190613d4c565b6128b0565b604051610d3891906142ac565b60405180910390f35b606060028054610d509061472c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7c9061472c565b8015610dc95780601f10610d9e57610100808354040283529160200191610dc9565b820191906000526020600020905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b6000610de7610de061292e565b8484612936565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610e2961292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead906143e4565b60405180910390fd5b82600f819055508160108190555080601181905550610ef6601154610ee8601054600f546128d090919063ffffffff16565b6128d090919063ffffffff16565b601681905550505050565b6000610f0e848484612b01565b50610fd084610f1b61292e565b610fcb85604051806060016040528060288152602001614b0c60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f8161292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b612936565b600190509392505050565b610fe361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611067906143e4565b60405180910390fd5b82600c8190555081600d8190555080600e819055506110b0600e546110a2600d54600c546128d090919063ffffffff16565b6128d090919063ffffffff16565b601581905550505050565b6110c361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611150576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611147906143e4565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b61117561292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906143e4565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006112a96112987f000000000000000000000000000000000000000000000000000000000000dead611cbc565b60185461314a90919063ffffffff16565b905090565b6112b661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906143e4565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600f5481565b6000600460009054906101000a900460ff16905090565b600061146a6113ce61292e565b8461146585600760006113df61292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b612936565b6001905092915050565b61147c61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906143e4565b60405180910390fd5b80601b8190555050565b601d60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b61157461292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906143e4565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061166661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906143e4565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613d75565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d857600080fd5b505afa1580156117ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118109190613d75565b6040518363ffffffff1660e01b815260040161182d929190614222565b60206040518083038186803b15801561184557600080fd5b505afa158015611859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187d9190613d75565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190613d75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561199457600080fd5b505afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc9190613d75565b6040518363ffffffff1660e01b81526004016119e9929190614222565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613d75565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60115481565b60105481565b611bce61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906143e4565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d4861292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906143e4565b60405180910390fd5b66038d7ea4c68000811115611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690614324565b60405180910390fd5b8060198190555050565b611e3161292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb5906143e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611f8b9061472c565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb79061472c565b80156120045780601f10611fd957610100808354040283529160200191612004565b820191906000526020600020905b815481529060010190602001808311611fe757829003601f168201915b5050505050905090565b60125481565b60175481565b60006120dd61202761292e565b846120d885604051806060016040528060258152602001614b34602591396007600061205161292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b612936565b6001905092915050565b6120ef61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906143e4565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b60006121ad6121a661292e565b8484612b01565b506001905092915050565b600c5481565b6121c661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906143e4565b60405180910390fd5b8260128190555081601381905550806014819055506122936014546122856013546012546128d090919063ffffffff16565b6128d090919063ffffffff16565b601781905550505050565b6122a661292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a906143e4565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161237c91906142ac565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60169054906101000a900460ff1681565b6123ee61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612472906143e4565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61254e61292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d2906143e4565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b61264461292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c8906143e4565b60405180910390fd5b80601a8190555050565b6126e361292e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612770576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612767906143e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d790614344565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846128df9190614559565b905083811015612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291b90614384565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90614424565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90614364565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612af49190614444565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6990614404565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd990614304565b60405180910390fd5b601d60149054906101000a900460ff1615612c0957612c02848484613194565b90506130df565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cad5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf857601954821115612cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cee906143a4565b60405180910390fd5b5b6000612d0330611cbc565b90506000601b548210159050808015612d295750601d60149054906101000a900460ff16155b8015612d7f5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d975750601d60159054906101000a900460ff165b15612dc157601d60169054906101000a900460ff1615612db757601b5491505b612dc082613367565b5b612e4a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f305750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4457612f3f878787613558565b612f46565b845b9050601d60179054906101000a900460ff168015612fae5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdd57601a54612fd182612fc389611cbc565b6128d090919063ffffffff16565b1115612fdc57600080fd5b5b61302f81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cf9190614444565b60405180910390a3600193505050505b9392505050565b600083831115829061312e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312591906142e2565b60405180910390fd5b506000838561313d919061463a565b9050809150509392505050565b600061318c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e6565b905092915050565b600061321f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e69092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133549190614444565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006133c060026133b26017546133a46012548761377f90919063ffffffff16565b6137fa90919063ffffffff16565b6137fa90919063ffffffff16565b905060006133d7828461314a90919063ffffffff16565b90506133e281613844565b6000479050600061341361340260026012546137fa90919063ffffffff16565b60175461314a90919063ffffffff16565b905060006134516002613443846134356012548861377f90919063ffffffff16565b6137fa90919063ffffffff16565b6137fa90919063ffffffff16565b9050600061347c8361346e6014548761377f90919063ffffffff16565b6137fa90919063ffffffff16565b905060006134a582613497858861314a90919063ffffffff16565b61314a90919063ffffffff16565b905060008111156134dd576134dc600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b41565b5b600082111561351357613512600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b41565b5b6000831180156135235750600087115b15613533576135328784613b8c565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135e0576135d960646135cb6015548661377f90919063ffffffff16565b6137fa90919063ffffffff16565b905061365e565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365d5761365a606461364c6016548661377f90919063ffffffff16565b6137fa90919063ffffffff16565b90505b5b6000811115613762576136b981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137599190614444565b60405180910390a35b613775818461314a90919063ffffffff16565b9150509392505050565b60008083141561379257600090506137f4565b600082846137a091906145e0565b90508284826137af91906145af565b146137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e6906143c4565b60405180910390fd5b809150505b92915050565b600061383c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c80565b905092915050565b6000600267ffffffffffffffff811115613887577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138b55781602001602082028036833780820191505090505b50905030816000815181106138f3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561399557600080fd5b505afa1580156139a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139cd9190613d75565b81600181518110613a07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a6e30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612936565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ad295949392919061448f565b600060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b3592919061445f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b87573d6000803e3d6000fd5b505050565b613bb930601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612936565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c05611d17565b426040518863ffffffff1660e01b8152600401613c279695949392919061424b565b6060604051808303818588803b158015613c4057600080fd5b505af1158015613c54573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c799190613f42565b5050505050565b60008083118290613cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbe91906142e2565b60405180910390fd5b5060008385613cd691906145af565b9050809150509392505050565b600081359050613cf281614ac6565b92915050565b600081519050613d0781614ac6565b92915050565b600081359050613d1c81614add565b92915050565b600081359050613d3181614af4565b92915050565b600081519050613d4681614af4565b92915050565b600060208284031215613d5e57600080fd5b6000613d6c84828501613ce3565b91505092915050565b600060208284031215613d8757600080fd5b6000613d9584828501613cf8565b91505092915050565b60008060408385031215613db157600080fd5b6000613dbf85828601613ce3565b9250506020613dd085828601613ce3565b9150509250929050565b600080600060608486031215613def57600080fd5b6000613dfd86828701613ce3565b9350506020613e0e86828701613ce3565b9250506040613e1f86828701613d22565b9150509250925092565b60008060408385031215613e3c57600080fd5b6000613e4a85828601613ce3565b9250506020613e5b85828601613d0d565b9150509250929050565b60008060408385031215613e7857600080fd5b6000613e8685828601613ce3565b9250506020613e9785828601613d22565b9150509250929050565b600060208284031215613eb357600080fd5b6000613ec184828501613d0d565b91505092915050565b600060208284031215613edc57600080fd5b6000613eea84828501613d22565b91505092915050565b600080600060608486031215613f0857600080fd5b6000613f1686828701613d22565b9350506020613f2786828701613d22565b9250506040613f3886828701613d22565b9150509250925092565b600080600060608486031215613f5757600080fd5b6000613f6586828701613d37565b9350506020613f7686828701613d37565b9250506040613f8786828701613d37565b9150509250925092565b6000613f9d8383613fa9565b60208301905092915050565b613fb28161466e565b82525050565b613fc18161466e565b82525050565b6000613fd282614514565b613fdc8185614537565b9350613fe783614504565b8060005b83811015614018578151613fff8882613f91565b975061400a8361452a565b925050600181019050613feb565b5085935050505092915050565b61402e81614680565b82525050565b61403d816146c3565b82525050565b61404c816146e7565b82525050565b600061405d8261451f565b6140678185614548565b93506140778185602086016146f9565b614080816147eb565b840191505092915050565b6000614098602383614548565b91506140a3826147fc565b604082019050919050565b60006140bb603483614548565b91506140c68261484b565b604082019050919050565b60006140de602683614548565b91506140e98261489a565b604082019050919050565b6000614101602283614548565b915061410c826148e9565b604082019050919050565b6000614124601b83614548565b915061412f82614938565b602082019050919050565b6000614147602883614548565b915061415282614961565b604082019050919050565b600061416a602183614548565b9150614175826149b0565b604082019050919050565b600061418d602083614548565b9150614198826149ff565b602082019050919050565b60006141b0602583614548565b91506141bb82614a28565b604082019050919050565b60006141d3602483614548565b91506141de82614a77565b604082019050919050565b6141f2816146ac565b82525050565b614201816146b6565b82525050565b600060208201905061421c6000830184613fb8565b92915050565b60006040820190506142376000830185613fb8565b6142446020830184613fb8565b9392505050565b600060c0820190506142606000830189613fb8565b61426d60208301886141e9565b61427a6040830187614043565b6142876060830186614043565b6142946080830185613fb8565b6142a160a08301846141e9565b979650505050505050565b60006020820190506142c16000830184614025565b92915050565b60006020820190506142dc6000830184614034565b92915050565b600060208201905081810360008301526142fc8184614052565b905092915050565b6000602082019050818103600083015261431d8161408b565b9050919050565b6000602082019050818103600083015261433d816140ae565b9050919050565b6000602082019050818103600083015261435d816140d1565b9050919050565b6000602082019050818103600083015261437d816140f4565b9050919050565b6000602082019050818103600083015261439d81614117565b9050919050565b600060208201905081810360008301526143bd8161413a565b9050919050565b600060208201905081810360008301526143dd8161415d565b9050919050565b600060208201905081810360008301526143fd81614180565b9050919050565b6000602082019050818103600083015261441d816141a3565b9050919050565b6000602082019050818103600083015261443d816141c6565b9050919050565b600060208201905061445960008301846141e9565b92915050565b600060408201905061447460008301856141e9565b81810360208301526144868184613fc7565b90509392505050565b600060a0820190506144a460008301886141e9565b6144b16020830187614043565b81810360408301526144c38186613fc7565b90506144d26060830185613fb8565b6144df60808301846141e9565b9695505050505050565b60006020820190506144fe60008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614564826146ac565b915061456f836146ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145a4576145a361475e565b5b828201905092915050565b60006145ba826146ac565b91506145c5836146ac565b9250826145d5576145d461478d565b5b828204905092915050565b60006145eb826146ac565b91506145f6836146ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561462f5761462e61475e565b5b828202905092915050565b6000614645826146ac565b9150614650836146ac565b9250828210156146635761466261475e565b5b828203905092915050565b60006146798261468c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146ce826146d5565b9050919050565b60006146e08261468c565b9050919050565b60006146f2826146ac565b9050919050565b60005b838110156147175780820151818401526020810190506146fc565b83811115614726576000848401525b50505050565b6000600282049050600182168061474457607f821691505b60208210811415614758576147576147bc565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614acf8161466e565b8114614ada57600080fd5b50565b614ae681614680565b8114614af157600080fd5b50565b614afd816146ac565b8114614b0857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122060c67ee7310611098ebc2eaa54b6d799751bc8db3d1411247d6b8efb7206b58764736f6c63430008040033
Deployed Bytecode Sourcemap
14278:14871:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17964:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19130:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15930:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18241:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20428:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23857:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20055:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21447:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21959:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14713:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22493:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19904:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15215:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15303:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18150:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18627:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21827:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16045:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14995:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15115:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15481:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21568:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22767:813;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15391:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15347:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19759:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15258:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18349:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15766:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15818:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15615:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21217:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6042:145;;;;;;;;;;;;;:::i;:::-;;18055:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15439:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15660:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18853:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22356:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23682:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15172:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20813:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22177:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15057:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15978:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15524:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16093:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22068:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18476:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19644:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15571:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21717:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6195:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16145:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14934:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17964:83;18001:13;18034:5;18027:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17964:83;:::o;19130:161::-;19205:4;19222:39;19231:12;:10;:12::i;:::-;19245:7;19254:6;19222:8;:39::i;:::-;19279:4;19272:11;;19130:161;;;;:::o;15930:41::-;;;;;;;;;;;;;:::o;18241:100::-;18294:7;18321:12;;18314:19;;18241:100;:::o;20428:373::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20578:15:::1;20557:18;:36;;;;20625:15;20604:18;:36;;;;20674:17;20651:20;:40;;;;20725:68;20772:20;;20725:42;20748:18;;20725;;:22;;:42;;;;:::i;:::-;:46;;:68;;;;:::i;:::-;20704:18;:89;;;;20428:373:::0;;;:::o;23857:313::-;23955:4;23972:36;23982:6;23990:9;24001:6;23972:9;:36::i;:::-;;24019:121;24028:6;24036:12;:10;:12::i;:::-;24050:89;24088:6;24050:89;;;;;;;;;;;;;;;;;:11;:19;24062:6;24050:19;;;;;;;;;;;;;;;:33;24070:12;:10;:12::i;:::-;24050:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24019:8;:121::i;:::-;24158:4;24151:11;;23857:313;;;;;:::o;20055:365::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20203:15:::1;20183:17;:35;;;;20249:15;20229:17;:35;;;;20297:17;20275:19;:39;;;;20347:65;20392:19;;20347:40;20369:17;;20347;;:21;;:40;;;;:::i;:::-;:44;;:65;;;;:::i;:::-;20327:17;:85;;;;20055:365:::0;;;:::o;21447:113::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21544:8:::1;21525:16;;:27;;;;;;;;;;;;;;;;;;21447:113:::0;:::o;21959:101::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22041:10:::1;22027:3;;:25;;;;;;;;;;;;;;;;;;21959:101:::0;:::o;14713:81::-;;;:::o;22493:128::-;22546:7;22573:40;22590:22;22600:11;22590:9;:22::i;:::-;22573:12;;:16;;:40;;;;:::i;:::-;22566:47;;22493:128;:::o;19904:143::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20031:8:::1;19998:21;:30;20020:7;19998:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19904:143:::0;;:::o;15215:36::-;;;;:::o;15303:37::-;;;;:::o;18150:83::-;18191:5;18216:9;;;;;;;;;;;18209:16;;18150:83;:::o;18627:218::-;18715:4;18732:83;18741:12;:10;:12::i;:::-;18755:7;18764:50;18803:10;18764:11;:25;18776:12;:10;:12::i;:::-;18764:25;;;;;;;;;;;;;;;:34;18790:7;18764:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18732:8;:83::i;:::-;18833:4;18826:11;;18627:218;;;;:::o;21827:124::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21935:8:::1;21909:23;:34;;;;21827:124:::0;:::o;16045:41::-;;;;;;;;;;;;;:::o;14995:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;15115:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;15481:36::-;;;;:::o;21568:141::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21695:6:::1;21662:22;:30;21685:6;21662:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21568:141:::0;;:::o;22767:813::-;22847:22;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22884:35:::1;22941:16;22884:74;;23007:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22989:53;;;23051:4;23058:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22989:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22972:110;;23124:1;23098:28;;:14;:28;;;23095:225;;;23212:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23194:74;;;23277:4;23284:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23194:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23177:131;;23095:225;23346:14;23332:11;;:28;;;;;;;;;;;;;;;;;;23412:16;23394:15;;:34;;;;;;;;;;;;;;;;;;23513:4;23466:22;:44;23497:11;;;;;;;;;;;23466:44;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;23568:4;23528:15;:37;23552:11;;;;;;;;;;;23528:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;6021:1;22767:813:::0;;;:::o;15391:39::-;;;;:::o;15347:37::-;;;;:::o;19759:133::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19878:6:::1;19849:18;:26;19868:6;19849:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19759:133:::0;;:::o;15258:38::-;;;;:::o;18349:119::-;18415:7;18442:9;:18;18452:7;18442:18;;;;;;;;;;;;;;;;18435:25;;18349:119;;;:::o;15766:45::-;;;;:::o;15818:43::-;;;;:::o;15615:38::-;;;;:::o;5817:79::-;5855:7;5882:6;;;;;;;;;;;5875:13;;5817:79;:::o;21217:222::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21321:15:::1;21305:11;:32;;21297:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21420:11;21405:12;:26;;;;21217:222:::0;:::o;6042:145::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6146:1:::1;6109:40;;6130:6;::::0;::::1;;;;;;;;6109:40;;;;;;;;;;;;6177:1;6160:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6042:145::o:0;18055:87::-;18094:13;18127:7;18120:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18055:87;:::o;15439:35::-;;;;:::o;15660:44::-;;;;:::o;18853:269::-;18946:4;18963:129;18972:12;:10;:12::i;:::-;18986:7;18995:96;19034:15;18995:96;;;;;;;;;;;;;;;;;:11;:25;19007:12;:10;:12::i;:::-;18995:25;;;;;;;;;;;;;;;:34;19021:7;18995:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18963:8;:129::i;:::-;19110:4;19103:11;;18853:269;;;;:::o;22356:125::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22465:8:::1;22437:25;;:36;;;;;;;;;;;;;;;;;;22356:125:::0;:::o;23682:167::-;23760:4;23777:42;23787:12;:10;:12::i;:::-;23801:9;23812:6;23777:9;:42::i;:::-;;23837:4;23830:11;;23682:167;;;;:::o;15172:36::-;;;;:::o;20813:392::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20980:17:::1;20961:16;:36;;;;21027:17;21008:16;:36;;;;21076:19;21055:18;:40;;;;21135:62;21178:18;;21135:38;21156:16;;21135;;:20;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;21108:24;:89;;;;20813:392:::0;;;:::o;22177:171::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22278:8:::1;22254:21;;:32;;;;;;;;;;;;;;;;;;22302:38;22331:8;22302:38;;;;;;:::i;:::-;;;;;;;;22177:171:::0;:::o;15057:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15978:26::-;;;;;;;;;;;;;:::o;15524:38::-;;;;:::o;16093:45::-;;;;;;;;;;;;;:::o;22068:101::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22150:10:::1;22136:3;;:25;;;;;;;;;;;;;;;;;;22068:101:::0;:::o;18476:143::-;18557:7;18584:11;:18;18596:5;18584:18;;;;;;;;;;;;;;;:27;18603:7;18584:27;;;;;;;;;;;;;;;;18577:34;;18476:143;;;;:::o;19644:107::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19739:4:::1;19712:15;:24;19728:7;19712:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19644:107:::0;:::o;15571:37::-;;;;:::o;21717:102::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21803:8:::1;21789:10;:22;;;;21717:102:::0;:::o;6195:244::-;5961:12;:10;:12::i;:::-;5951:22;;:6;;;;;;;;;;:22;;;5943:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6304:1:::1;6284:22;;:8;:22;;;;6276:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6394:8;6365:38;;6386:6;::::0;::::1;;;;;;;;6365:38;;;;;;;;;;;;6423:8;6414:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6195:244:::0;:::o;16145:35::-;;;;;;;;;;;;;:::o;14934:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;1219:181::-;1277:7;1297:9;1313:1;1309;:5;;;;:::i;:::-;1297:17;;1338:1;1333;:6;;1325:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1391:1;1384:8;;;1219:181;;;;:::o;151:115::-;204:15;247:10;232:26;;151:115;:::o;19299:337::-;19409:1;19392:19;;:5;:19;;;;19384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19490:1;19471:21;;:7;:21;;;;19463:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19574:6;19544:11;:18;19556:5;19544:18;;;;;;;;;;;;;;;:27;19563:7;19544:27;;;;;;;;;;;;;;;:36;;;;19612:7;19596:32;;19605:5;19596:32;;;19621:6;19596:32;;;;;;:::i;:::-;;;;;;;;19299:337;;;:::o;24178:1727::-;24265:4;24310:1;24292:20;;:6;:20;;;;24284:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24394:1;24373:23;;:9;:23;;;;24365:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24452:16;;;;;;;;;;;24449:1449;;;24502:41;24517:6;24525:9;24536:6;24502:14;:41::i;:::-;24495:48;;;;24449:1449;24599:18;:26;24618:6;24599:26;;;;;;;;;;;;;;;;;;;;;;;;;24598:27;:61;;;;;24630:18;:29;24649:9;24630:29;;;;;;;;;;;;;;;;;;;;;;;;;24629:30;24598:61;24595:176;;;24698:12;;24688:6;:22;;24680:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24595:176;24799:28;24830:24;24848:4;24830:9;:24::i;:::-;24799:55;;24869:28;24924:23;;24900:20;:47;;24869:78;;24980:23;:44;;;;;25008:16;;;;;;;;;;;25007:17;24980:44;:72;;;;;25029:15;:23;25045:6;25029:23;;;;;;;;;;;;;;;;;;;;;;;;;25028:24;24980:72;:97;;;;;25056:21;;;;;;;;;;;24980:97;24976:308;;;25115:25;;;;;;;;;;;25112:97;;;25186:23;;25163:46;;25112:97;25228:36;25243:20;25228:14;:36::i;:::-;24976:308;25320:53;25342:6;25320:53;;;;;;;;;;;;;;;;;:9;:17;25330:6;25320:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25300:9;:17;25310:6;25300:17;;;;;;;;;;;;;;;:73;;;;25390:19;25413:21;:29;25435:6;25413:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;25446:21;:32;25468:9;25446:32;;;;;;;;;;;;;;;;;;;;;;;;;25413:65;25412:156;;25534:34;25542:6;25550:9;25561:6;25534:7;:34::i;:::-;25412:156;;;25525:6;25412:156;25390:178;;25588:16;;;;;;;;;;;:54;;;;;25609:22;:33;25632:9;25609:33;;;;;;;;;;;;;;;;;;;;;;;;;25608:34;25588:54;25585:136;;;25710:10;;25669:37;25694:11;25669:20;25679:9;25669;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;25661:60;;;;;;25585:136;25761:37;25786:11;25761:9;:20;25771:9;25761:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25738:9;:20;25748:9;25738:20;;;;;;;;;;;;;;;:60;;;;25837:9;25820:40;;25829:6;25820:40;;;25848:11;25820:40;;;;;;:::i;:::-;;;;;;;;25882:4;25875:11;;;;;24178:1727;;;;;;:::o;1552:192::-;1638:7;1671:1;1666;:6;;1674:12;1658:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1698:9;1714:1;1710;:5;;;;:::i;:::-;1698:17;;1735:1;1728:8;;;1552:192;;;;;:::o;1408:136::-;1466:7;1493:43;1497:1;1500;1493:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1486:50;;1408:136;;;;:::o;25913:330::-;26006:4;26043:53;26065:6;26043:53;;;;;;;;;;;;;;;;;:9;:17;26053:6;26043:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;26023:9;:17;26033:6;26023:17;;;;;;;;;;;;;;;:73;;;;26130:32;26155:6;26130:9;:20;26140:9;26130:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;26107:9;:20;26117:9;26107:20;;;;;;;;;;;;;;;:55;;;;26195:9;26178:35;;26187:6;26178:35;;;26206:6;26178:35;;;;;;:::i;:::-;;;;;;;;26231:4;26224:11;;25913:330;;;;;:::o;26251:1054::-;16622:4;16603:16;;:23;;;;;;;;;;;;;;;;;;26333:19:::1;26355:66;26419:1;26355:59;26389:24;;26355:29;26367:16;;26355:7;:11;;:29;;;;:::i;:::-;:33;;:59;;;;:::i;:::-;:63;;:66;;;;:::i;:::-;26333:88;;26432:21;26456:24;26468:11;26456:7;:11;;:24;;;;:::i;:::-;26432:48;;26493:31;26510:13;26493:16;:31::i;:::-;26535:22;26560:21;26535:46;;26594:19;26616:53;26645:23;26666:1;26645:16;;:20;;:23;;;;:::i;:::-;26616:24;;:28;;:53;;;;:::i;:::-;26594:75;;26690:26;26719:60;26777:1;26719:53;26760:11;26719:36;26738:16;;26719:14;:18;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;26690:89;;26790:28;26821:55;26864:11;26821:38;26840:18;;26821:14;:18;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;26790:86;;26887:26;26916:64;26959:20;26916:38;26935:18;26916:14;:18;;:38;;;;:::i;:::-;:42;;:64;;;;:::i;:::-;26887:93;;27017:1;26996:18;:22;26993:85;;;27033:45;27054:3;;;;;;;;;;;27059:18;27033:20;:45::i;:::-;26993:85;27117:1;27094:20;:24;27091:89;;;27133:47;27154:3;;;;;;;;;;;27159:20;27133;:47::i;:::-;27091:89;27217:1;27196:18;:22;:41;;;;;27236:1;27222:11;:15;27196:41;27193:104;;;27252:45;27265:11;27278:18;27252:12;:45::i;:::-;27193:104;16637:1;;;;;;;16668:5:::0;16649:16;;:24;;;;;;;;;;;;;;;;;;26251:1054;:::o;28512:628::-;28598:7;28628:17;28648:1;28628:21;;28673:15;:23;28689:6;28673:23;;;;;;;;;;;;;;;;;;;;;;;;;28670:229;;;28725:38;28759:3;28725:29;28736:17;;28725:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;28713:50;;28670:229;;;28793:15;:26;28809:9;28793:26;;;;;;;;;;;;;;;;;;;;;;;;;28790:109;;;28848:39;28883:3;28848:30;28859:18;;28848:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;28836:51;;28790:109;28670:229;28934:1;28922:9;:13;28919:173;;;28979:39;29008:9;28979;:24;28997:4;28979:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;28952:9;:24;28970:4;28952:24;;;;;;;;;;;;;;;:66;;;;29063:4;29038:42;;29047:6;29038:42;;;29070:9;29038:42;;;;;;:::i;:::-;;;;;;;;28919:173;29111:21;29122:9;29111:6;:10;;:21;;;;:::i;:::-;29104:28;;;28512:628;;;;;:::o;1752:250::-;1810:7;1839:1;1834;:6;1830:47;;;1864:1;1857:8;;;;1830:47;1889:9;1905:1;1901;:5;;;;:::i;:::-;1889:17;;1934:1;1929;1925;:5;;;;:::i;:::-;:10;1917:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1993:1;1986:8;;;1752:250;;;;;:::o;2010:132::-;2068:7;2095:39;2099:1;2102;2095:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2088:46;;2010:132;;;;:::o;27317:666::-;27443:21;27481:1;27467:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27443:40;;27512:4;27494;27499:1;27494:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;27538:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27528:4;27533:1;27528:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;27573:62;27590:4;27605:15;;;;;;;;;;;27623:11;27573:8;:62::i;:::-;27674:15;;;;;;;;;;;:66;;;27755:11;27781:1;27825:4;27852;27888:15;27674:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27940:35;27957:11;27970:4;27940:35;;;;;;;:::i;:::-;;;;;;;;27317:666;;:::o;22629:126::-;22721:9;:18;;:26;22740:6;22721:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22629:126;;:::o;27991:513::-;28139:62;28156:4;28171:15;;;;;;;;;;;28189:11;28139:8;:62::i;:::-;28244:15;;;;;;;;;;;:31;;;28283:9;28316:4;28336:11;28362:1;28405;28448:7;:5;:7::i;:::-;28470:15;28244:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27991:513;;:::o;2150:278::-;2236:7;2268:1;2264;:5;2271:12;2256:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2295:9;2311:1;2307;:5;;;;:::i;:::-;2295:17;;2419:1;2412:8;;;2150:278;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;1072:6;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;1360:6;1368;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;1782:6;1790;1798;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;2328:6;2336;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;2738:6;2746;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:256::-;3139:6;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3204:1;3201;3194:12;3156:2;3247:1;3272:50;3314:7;3305:6;3294:9;3290:22;3272:50;:::i;:::-;3262:60;;3218:114;3146:193;;;;:::o;3345:262::-;3404:6;3453:2;3441:9;3432:7;3428:23;3424:32;3421:2;;;3469:1;3466;3459:12;3421:2;3512:1;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3483:117;3411:196;;;;:::o;3613:552::-;3690:6;3698;3706;3755:2;3743:9;3734:7;3730:23;3726:32;3723:2;;;3771:1;3768;3761:12;3723:2;3814:1;3839:53;3884:7;3875:6;3864:9;3860:22;3839:53;:::i;:::-;3829:63;;3785:117;3941:2;3967:53;4012:7;4003:6;3992:9;3988:22;3967:53;:::i;:::-;3957:63;;3912:118;4069:2;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4040:118;3713:452;;;;;:::o;4171:596::-;4259:6;4267;4275;4324:2;4312:9;4303:7;4299:23;4295:32;4292:2;;;4340:1;4337;4330:12;4292:2;4383:1;4408:64;4464:7;4455:6;4444:9;4440:22;4408:64;:::i;:::-;4398:74;;4354:128;4521:2;4547:64;4603:7;4594:6;4583:9;4579:22;4547:64;:::i;:::-;4537:74;;4492:129;4660:2;4686:64;4742:7;4733:6;4722:9;4718:22;4686:64;:::i;:::-;4676:74;;4631:129;4282:485;;;;;:::o;4773:179::-;4842:10;4863:46;4905:3;4897:6;4863:46;:::i;:::-;4941:4;4936:3;4932:14;4918:28;;4853:99;;;;:::o;4958:108::-;5035:24;5053:5;5035:24;:::i;:::-;5030:3;5023:37;5013:53;;:::o;5072:118::-;5159:24;5177:5;5159:24;:::i;:::-;5154:3;5147:37;5137:53;;:::o;5226:732::-;5345:3;5374:54;5422:5;5374:54;:::i;:::-;5444:86;5523:6;5518:3;5444:86;:::i;:::-;5437:93;;5554:56;5604:5;5554:56;:::i;:::-;5633:7;5664:1;5649:284;5674:6;5671:1;5668:13;5649:284;;;5750:6;5744:13;5777:63;5836:3;5821:13;5777:63;:::i;:::-;5770:70;;5863:60;5916:6;5863:60;:::i;:::-;5853:70;;5709:224;5696:1;5693;5689:9;5684:14;;5649:284;;;5653:14;5949:3;5942:10;;5350:608;;;;;;;:::o;5964:109::-;6045:21;6060:5;6045:21;:::i;:::-;6040:3;6033:34;6023:50;;:::o;6079:185::-;6193:64;6251:5;6193:64;:::i;:::-;6188:3;6181:77;6171:93;;:::o;6270:147::-;6365:45;6404:5;6365:45;:::i;:::-;6360:3;6353:58;6343:74;;:::o;6423:364::-;6511:3;6539:39;6572:5;6539:39;:::i;:::-;6594:71;6658:6;6653:3;6594:71;:::i;:::-;6587:78;;6674:52;6719:6;6714:3;6707:4;6700:5;6696:16;6674:52;:::i;:::-;6751:29;6773:6;6751:29;:::i;:::-;6746:3;6742:39;6735:46;;6515:272;;;;;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6939:220;;;:::o;7165:366::-;7307:3;7328:67;7392:2;7387:3;7328:67;:::i;:::-;7321:74;;7404:93;7493:3;7404:93;:::i;:::-;7522:2;7517:3;7513:12;7506:19;;7311:220;;;:::o;7537:366::-;7679:3;7700:67;7764:2;7759:3;7700:67;:::i;:::-;7693:74;;7776:93;7865:3;7776:93;:::i;:::-;7894:2;7889:3;7885:12;7878:19;;7683:220;;;:::o;7909:366::-;8051:3;8072:67;8136:2;8131:3;8072:67;:::i;:::-;8065:74;;8148:93;8237:3;8148:93;:::i;:::-;8266:2;8261:3;8257:12;8250:19;;8055:220;;;:::o;8281:366::-;8423:3;8444:67;8508:2;8503:3;8444:67;:::i;:::-;8437:74;;8520:93;8609:3;8520:93;:::i;:::-;8638:2;8633:3;8629:12;8622:19;;8427:220;;;:::o;8653:366::-;8795:3;8816:67;8880:2;8875:3;8816:67;:::i;:::-;8809:74;;8892:93;8981:3;8892:93;:::i;:::-;9010:2;9005:3;9001:12;8994:19;;8799:220;;;:::o;9025:366::-;9167:3;9188:67;9252:2;9247:3;9188:67;:::i;:::-;9181:74;;9264:93;9353:3;9264:93;:::i;:::-;9382:2;9377:3;9373:12;9366:19;;9171:220;;;:::o;9397:366::-;9539:3;9560:67;9624:2;9619:3;9560:67;:::i;:::-;9553:74;;9636:93;9725:3;9636:93;:::i;:::-;9754:2;9749:3;9745:12;9738:19;;9543:220;;;:::o;9769:366::-;9911:3;9932:67;9996:2;9991:3;9932:67;:::i;:::-;9925:74;;10008:93;10097:3;10008:93;:::i;:::-;10126:2;10121:3;10117:12;10110:19;;9915:220;;;:::o;10141:366::-;10283:3;10304:67;10368:2;10363:3;10304:67;:::i;:::-;10297:74;;10380:93;10469:3;10380:93;:::i;:::-;10498:2;10493:3;10489:12;10482:19;;10287:220;;;:::o;10513:118::-;10600:24;10618:5;10600:24;:::i;:::-;10595:3;10588:37;10578:53;;:::o;10637:112::-;10720:22;10736:5;10720:22;:::i;:::-;10715:3;10708:35;10698:51;;:::o;10755:222::-;10848:4;10886:2;10875:9;10871:18;10863:26;;10899:71;10967:1;10956:9;10952:17;10943:6;10899:71;:::i;:::-;10853:124;;;;:::o;10983:332::-;11104:4;11142:2;11131:9;11127:18;11119:26;;11155:71;11223:1;11212:9;11208:17;11199:6;11155:71;:::i;:::-;11236:72;11304:2;11293:9;11289:18;11280:6;11236:72;:::i;:::-;11109:206;;;;;:::o;11321:807::-;11570:4;11608:3;11597:9;11593:19;11585:27;;11622:71;11690:1;11679:9;11675:17;11666:6;11622:71;:::i;:::-;11703:72;11771:2;11760:9;11756:18;11747:6;11703:72;:::i;:::-;11785:80;11861:2;11850:9;11846:18;11837:6;11785:80;:::i;:::-;11875;11951:2;11940:9;11936:18;11927:6;11875:80;:::i;:::-;11965:73;12033:3;12022:9;12018:19;12009:6;11965:73;:::i;:::-;12048;12116:3;12105:9;12101:19;12092:6;12048:73;:::i;:::-;11575:553;;;;;;;;;:::o;12134:210::-;12221:4;12259:2;12248:9;12244:18;12236:26;;12272:65;12334:1;12323:9;12319:17;12310:6;12272:65;:::i;:::-;12226:118;;;;:::o;12350:276::-;12470:4;12508:2;12497:9;12493:18;12485:26;;12521:98;12616:1;12605:9;12601:17;12592:6;12521:98;:::i;:::-;12475:151;;;;:::o;12632:313::-;12745:4;12783:2;12772:9;12768:18;12760:26;;12832:9;12826:4;12822:20;12818:1;12807:9;12803:17;12796:47;12860:78;12933:4;12924:6;12860:78;:::i;:::-;12852:86;;12750:195;;;;:::o;12951:419::-;13117:4;13155:2;13144:9;13140:18;13132:26;;13204:9;13198:4;13194:20;13190:1;13179:9;13175:17;13168:47;13232:131;13358:4;13232:131;:::i;:::-;13224:139;;13122:248;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13547:248;;;:::o;13801:419::-;13967:4;14005:2;13994:9;13990:18;13982:26;;14054:9;14048:4;14044:20;14040:1;14029:9;14025:17;14018:47;14082:131;14208:4;14082:131;:::i;:::-;14074:139;;13972:248;;;:::o;14226:419::-;14392:4;14430:2;14419:9;14415:18;14407:26;;14479:9;14473:4;14469:20;14465:1;14454:9;14450:17;14443:47;14507:131;14633:4;14507:131;:::i;:::-;14499:139;;14397:248;;;:::o;14651:419::-;14817:4;14855:2;14844:9;14840:18;14832:26;;14904:9;14898:4;14894:20;14890:1;14879:9;14875:17;14868:47;14932:131;15058:4;14932:131;:::i;:::-;14924:139;;14822:248;;;:::o;15076:419::-;15242:4;15280:2;15269:9;15265:18;15257:26;;15329:9;15323:4;15319:20;15315:1;15304:9;15300:17;15293:47;15357:131;15483:4;15357:131;:::i;:::-;15349:139;;15247:248;;;:::o;15501:419::-;15667:4;15705:2;15694:9;15690:18;15682:26;;15754:9;15748:4;15744:20;15740:1;15729:9;15725:17;15718:47;15782:131;15908:4;15782:131;:::i;:::-;15774:139;;15672:248;;;:::o;15926:419::-;16092:4;16130:2;16119:9;16115:18;16107:26;;16179:9;16173:4;16169:20;16165:1;16154:9;16150:17;16143:47;16207:131;16333:4;16207:131;:::i;:::-;16199:139;;16097:248;;;:::o;16351:419::-;16517:4;16555:2;16544:9;16540:18;16532:26;;16604:9;16598:4;16594:20;16590:1;16579:9;16575:17;16568:47;16632:131;16758:4;16632:131;:::i;:::-;16624:139;;16522:248;;;:::o;16776:419::-;16942:4;16980:2;16969:9;16965:18;16957:26;;17029:9;17023:4;17019:20;17015:1;17004:9;17000:17;16993:47;17057:131;17183:4;17057:131;:::i;:::-;17049:139;;16947:248;;;:::o;17201:222::-;17294:4;17332:2;17321:9;17317:18;17309:26;;17345:71;17413:1;17402:9;17398:17;17389:6;17345:71;:::i;:::-;17299:124;;;;:::o;17429:483::-;17600:4;17638:2;17627:9;17623:18;17615:26;;17651:71;17719:1;17708:9;17704:17;17695:6;17651:71;:::i;:::-;17769:9;17763:4;17759:20;17754:2;17743:9;17739:18;17732:48;17797:108;17900:4;17891:6;17797:108;:::i;:::-;17789:116;;17605:307;;;;;:::o;17918:831::-;18181:4;18219:3;18208:9;18204:19;18196:27;;18233:71;18301:1;18290:9;18286:17;18277:6;18233:71;:::i;:::-;18314:80;18390:2;18379:9;18375:18;18366:6;18314:80;:::i;:::-;18441:9;18435:4;18431:20;18426:2;18415:9;18411:18;18404:48;18469:108;18572:4;18563:6;18469:108;:::i;:::-;18461:116;;18587:72;18655:2;18644:9;18640:18;18631:6;18587:72;:::i;:::-;18669:73;18737:3;18726:9;18722:19;18713:6;18669:73;:::i;:::-;18186:563;;;;;;;;:::o;18755:214::-;18844:4;18882:2;18871:9;18867:18;18859:26;;18895:67;18959:1;18948:9;18944:17;18935:6;18895:67;:::i;:::-;18849:120;;;;:::o;18975:132::-;19042:4;19065:3;19057:11;;19095:4;19090:3;19086:14;19078:22;;19047:60;;;:::o;19113:114::-;19180:6;19214:5;19208:12;19198:22;;19187:40;;;:::o;19233:99::-;19285:6;19319:5;19313:12;19303:22;;19292:40;;;:::o;19338:113::-;19408:4;19440;19435:3;19431:14;19423:22;;19413:38;;;:::o;19457:184::-;19556:11;19590:6;19585:3;19578:19;19630:4;19625:3;19621:14;19606:29;;19568:73;;;;:::o;19647:169::-;19731:11;19765:6;19760:3;19753:19;19805:4;19800:3;19796:14;19781:29;;19743:73;;;;:::o;19822:305::-;19862:3;19881:20;19899:1;19881:20;:::i;:::-;19876:25;;19915:20;19933:1;19915:20;:::i;:::-;19910:25;;20069:1;20001:66;19997:74;19994:1;19991:81;19988:2;;;20075:18;;:::i;:::-;19988:2;20119:1;20116;20112:9;20105:16;;19866:261;;;;:::o;20133:185::-;20173:1;20190:20;20208:1;20190:20;:::i;:::-;20185:25;;20224:20;20242:1;20224:20;:::i;:::-;20219:25;;20263:1;20253:2;;20268:18;;:::i;:::-;20253:2;20310:1;20307;20303:9;20298:14;;20175:143;;;;:::o;20324:348::-;20364:7;20387:20;20405:1;20387:20;:::i;:::-;20382:25;;20421:20;20439:1;20421:20;:::i;:::-;20416:25;;20609:1;20541:66;20537:74;20534:1;20531:81;20526:1;20519:9;20512:17;20508:105;20505:2;;;20616:18;;:::i;:::-;20505:2;20664:1;20661;20657:9;20646:20;;20372:300;;;;:::o;20678:191::-;20718:4;20738:20;20756:1;20738:20;:::i;:::-;20733:25;;20772:20;20790:1;20772:20;:::i;:::-;20767:25;;20811:1;20808;20805:8;20802:2;;;20816:18;;:::i;:::-;20802:2;20861:1;20858;20854:9;20846:17;;20723:146;;;;:::o;20875:96::-;20912:7;20941:24;20959:5;20941:24;:::i;:::-;20930:35;;20920:51;;;:::o;20977:90::-;21011:7;21054:5;21047:13;21040:21;21029:32;;21019:48;;;:::o;21073:126::-;21110:7;21150:42;21143:5;21139:54;21128:65;;21118:81;;;:::o;21205:77::-;21242:7;21271:5;21260:16;;21250:32;;;:::o;21288:86::-;21323:7;21363:4;21356:5;21352:16;21341:27;;21331:43;;;:::o;21380:180::-;21457:9;21490:64;21548:5;21490:64;:::i;:::-;21477:77;;21467:93;;;:::o;21566:140::-;21643:9;21676:24;21694:5;21676:24;:::i;:::-;21663:37;;21653:53;;;:::o;21712:121::-;21770:9;21803:24;21821:5;21803:24;:::i;:::-;21790:37;;21780:53;;;:::o;21839:307::-;21907:1;21917:113;21931:6;21928:1;21925:13;21917:113;;;22016:1;22011:3;22007:11;22001:18;21997:1;21992:3;21988:11;21981:39;21953:2;21950:1;21946:10;21941:15;;21917:113;;;22048:6;22045:1;22042:13;22039:2;;;22128:1;22119:6;22114:3;22110:16;22103:27;22039:2;21888:258;;;;:::o;22152:320::-;22196:6;22233:1;22227:4;22223:12;22213:22;;22280:1;22274:4;22270:12;22301:18;22291:2;;22357:4;22349:6;22345:17;22335:27;;22291:2;22419;22411:6;22408:14;22388:18;22385:38;22382:2;;;22438:18;;:::i;:::-;22382:2;22203:269;;;;:::o;22478:180::-;22526:77;22523:1;22516:88;22623:4;22620:1;22613:15;22647:4;22644:1;22637:15;22664:180;22712:77;22709:1;22702:88;22809:4;22806:1;22799:15;22833:4;22830:1;22823:15;22850:180;22898:77;22895:1;22888:88;22995:4;22992:1;22985:15;23019:4;23016:1;23009:15;23036:102;23077:6;23128:2;23124:7;23119:2;23112:5;23108:14;23104:28;23094:38;;23084:54;;;:::o;23144:222::-;23284:34;23280:1;23272:6;23268:14;23261:58;23353:5;23348:2;23340:6;23336:15;23329:30;23250:116;:::o;23372:239::-;23512:34;23508:1;23500:6;23496:14;23489:58;23581:22;23576:2;23568:6;23564:15;23557:47;23478:133;:::o;23617:225::-;23757:34;23753:1;23745:6;23741:14;23734:58;23826:8;23821:2;23813:6;23809:15;23802:33;23723:119;:::o;23848:221::-;23988:34;23984:1;23976:6;23972:14;23965:58;24057:4;24052:2;24044:6;24040:15;24033:29;23954:115;:::o;24075:177::-;24215:29;24211:1;24203:6;24199:14;24192:53;24181:71;:::o;24258:227::-;24398:34;24394:1;24386:6;24382:14;24375:58;24467:10;24462:2;24454:6;24450:15;24443:35;24364:121;:::o;24491:220::-;24631:34;24627:1;24619:6;24615:14;24608:58;24700:3;24695:2;24687:6;24683:15;24676:28;24597:114;:::o;24717:182::-;24857:34;24853:1;24845:6;24841:14;24834:58;24823:76;:::o;24905:224::-;25045:34;25041:1;25033:6;25029:14;25022:58;25114:7;25109:2;25101:6;25097:15;25090:32;25011:118;:::o;25135:223::-;25275:34;25271:1;25263:6;25259:14;25252:58;25344:6;25339:2;25331:6;25327:15;25320:31;25241:117;:::o;25364:122::-;25437:24;25455:5;25437:24;:::i;:::-;25430:5;25427:35;25417:2;;25476:1;25473;25466:12;25417:2;25407:79;:::o;25492:116::-;25562:21;25577:5;25562:21;:::i;:::-;25555:5;25552:32;25542:2;;25598:1;25595;25588:12;25542:2;25532:76;:::o;25614:122::-;25687:24;25705:5;25687:24;:::i;:::-;25680:5;25677:35;25667:2;;25726:1;25723;25716:12;25667:2;25657:79;:::o
Swarm Source
ipfs://60c67ee7310611098ebc2eaa54b6d799751bc8db3d1411247d6b8efb7206b587
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.