ERC-20
Overview
Max Total Supply
10,000,000,000 Matsuejo
Holders
80
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.234028023 MatsuejoValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TheCastle
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-24 */ /** * */ /* 卞廾ヨ 亡丹己卞しヨ |冊丹卞己凵ヨ勹Ō I am leaving sell tax at 90% to prevent bots at launch as i want this to be as fair as possible i will reduce tax to 1% and renounce contract after launch. https://medium.com/@marshalethereum/in-short-this-is-why-the-castle-a-100-decentralized-autonomous-token-with-1-liquidity-tax-e1efc6b114f7 */ // 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 TheCastle is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "The Castle"; string private _symbol = "Matsuejo"; uint8 private _decimals = 9; address payable private taxWallet1 = payable(0x000000000000000000000000000000000000dEaD); address payable private taxWallet2 = payable(0x000000000000000000000000000000000000dEaD); 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 = 0; uint256 public _buyDevelopmentFees = 0; uint256 public _sellLiquidityFees = 90; uint256 public _sellMarketingFees = 0; uint256 public _sellDevelopmentFees = 0; uint256 public _liquidityShares = 91; uint256 public _marketingShares = 0; uint256 public _developmentShares = 0; uint256 public _totalTaxIfBuying = 1; uint256 public _totalTaxIfSelling = 90; uint256 public _totalDistributionShares = 91; uint256 private _totalSupply = 10000 * 10**6 * 10**9; uint256 public _maxTxAmount = 200 * 10**6 * 10**9; uint256 public _walletMax = 200 * 10**6 * 10**9; uint256 private minimumTokensBeforeSwap = 10 * 10**9; 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 <= (10000 * 10**6 * 10**9), "Max wallet should be less or euqal to 4% totalSupply"); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner { checkWalletLimitExcept[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function settaxWallet1(address newAddress) external onlyOwner() { taxWallet1 = payable(newAddress); } function settaxWallet2(address newAddress) external onlyOwner() { taxWallet2 = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address checkWalletLimitExcept[address(uniswapPair)] = true; checkMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !checkWalletLimitExcept[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); 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(taxWallet1, amountETHMarketing); if(amountETHDevelopment > 0) transferToAddressETH(taxWallet2, 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":"settaxWallet1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"settaxWallet2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600a81526020017f54686520436173746c6500000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b1d565b506040518060400160405280600881526020017f4d61747375656a6f000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b1d565b506009600460006101000a81548160ff021916908360ff16021790555061dead600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600c556000600d556000600e55605a600f5560006010556000601155605b601255600060135560006014556001601555605a601655605b601755678ac7230489e800006018556702c68af0bb1400006019556702c68af0bb140000601a556402540be400601b556000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200024157600080fd5b5060006200025462000a8960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035257600080fd5b505afa15801562000367573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038d919062000be4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f057600080fd5b505afa15801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b919062000be4565b6040518363ffffffff1660e01b81526004016200044a92919062000c59565b602060405180830381600087803b1580156200046557600080fd5b505af11580156200047a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a0919062000be4565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005dc62000a9160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006be600e54620006aa600d54600c5462000aba60201b620028d11790919060201c565b62000aba60201b620028d11790919060201c565b601581905550620006fd601154620006e9601054600f5462000aba60201b620028d11790919060201c565b62000aba60201b620028d11790919060201c565b6016819055506200073c6014546200072860135460125462000aba60201b620028d11790919060201c565b62000aba60201b620028d11790919060201c565b6017819055506001600960006200075862000a9160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200089162000a9160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009cb62000a8960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a1962000a8960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a7a919062000ca8565b60405180910390a35062000e48565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000acb919062000cd6565b90508381101562000b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b0a9062000c86565b60405180910390fd5b8091505092915050565b82805462000b2b9062000d71565b90600052602060002090601f01602090048101928262000b4f576000855562000b9b565b82601f1062000b6a57805160ff191683800117855562000b9b565b8280016001018555821562000b9b579182015b8281111562000b9a57825182559160200191906001019062000b7d565b5b50905062000baa919062000bae565b5090565b5b8082111562000bc957600081600090555060010162000baf565b5090565b60008151905062000bde8162000e2e565b92915050565b60006020828403121562000bf757600080fd5b600062000c078482850162000bcd565b91505092915050565b62000c1b8162000d33565b82525050565b600062000c30601b8362000cc5565b915062000c3d8262000e05565b602082019050919050565b62000c538162000d67565b82525050565b600060408201905062000c70600083018562000c10565b62000c7f602083018462000c10565b9392505050565b6000602082019050818103600083015262000ca18162000c21565b9050919050565b600060208201905062000cbf600083018462000c48565b92915050565b600082825260208201905092915050565b600062000ce38262000d67565b915062000cf08362000d67565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d285762000d2762000da7565b5b828201905092915050565b600062000d408262000d47565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000d8a57607f821691505b6020821081141562000da15762000da062000dd6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e398162000d33565b811462000e4557600080fd5b50565b60805160601c614b8f62000e6e6000396000818161124801526112740152614b8f6000f3fe6080604052600436106103545760003560e01c806370a08231116101c6578063bbaa7d44116100f7578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610c87578063f2fde38b14610cb0578063f872858a14610cd9578063fabf706314610d045761035b565b8063dd62ed3e14610bf6578063e207a92b14610c33578063f0cd1dac14610c5c5761035b565b8063c78a789b116100d1578063c78a789b14610b38578063c816841b14610b75578063d76e26a314610ba0578063da00097d14610bcb5761035b565b8063bbaa7d4414610abd578063c2d4640e14610ae6578063c49b9a8014610b0f5761035b565b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146109ef578063a5d69d1f14610a2c578063a9059cbb14610a55578063b6c3af3414610a925761035b565b806395d89b411461096e5780639e3fa32314610999578063a08e671f146109c45761035b565b806382eefb43116101a057806382eefb43146108d85780638da5cb5b146109035780638f03aad51461092e578063914eb66a146109575761035b565b806370a08231146108455780637d1db4a514610882578063807c2d9c146108ad5761035b565b80632f0a5fd4116102a0578063565cec381161023e578063646d470011610218578063646d47001461079b578063661b6e36146107c6578063667b511c146107f1578063705f9d741461081a5761035b565b8063565cec381461070a57806357e6adcb146107355780635881f3ef1461075e5761035b565b80633b97084a1161027a5780633b97084a1461063c5780634a74bb0214610665578063526012e81461069057806355324fa9146106cd5761035b565b80632f0a5fd4146105a9578063313ce567146105d457806339509351146105ff5761035b565b806323b872dd1161030d57806327c8f835116102e757806327c8f835146104ff5780632b112e491461052a5780632cdae5cb146105555780632df671091461057e5761035b565b806323b872dd1461047057806325519cf2146104ad5780632563ae83146104d65761035b565b806306fdde0314610360578063095ea7b31461038b5780630fe1203c146103c85780631694505e146103f157806318160ddd1461041c5780631d865c30146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d41565b60405161038291906142e3565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190613e66565b610dd3565b6040516103bf91906142ad565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190613d4d565b610df1565b005b3480156103fd57600080fd5b50610406610eca565b60405161041391906142c8565b60405180910390f35b34801561042857600080fd5b50610431610ef0565b60405161043e9190614445565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190613ef4565b610efa565b005b34801561047c57600080fd5b5061049760048036038101906104929190613ddb565b610fda565b6040516104a491906142ad565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf9190613ef4565b6110b4565b005b3480156104e257600080fd5b506104fd60048036038101906104f89190613ea2565b611194565b005b34801561050b57600080fd5b50610514611246565b6040516105219190614208565b60405180910390f35b34801561053657600080fd5b5061053f61126a565b60405161054c9190614445565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613e2a565b6112ae565b005b34801561058a57600080fd5b5061059361139e565b6040516105a09190614445565b60405180910390f35b3480156105b557600080fd5b506105be6113a4565b6040516105cb9190614445565b60405180910390f35b3480156105e057600080fd5b506105e96113aa565b6040516105f691906144ea565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190613e66565b6113c1565b60405161063391906142ad565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613ecb565b611474565b005b34801561067157600080fd5b5061067a611513565b60405161068791906142ad565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613d4d565b611526565b6040516106c491906142ad565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613d4d565b611546565b60405161070191906142ad565b60405180910390f35b34801561071657600080fd5b5061071f611566565b60405161072c9190614445565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e2a565b61156c565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d4d565b61165c565b6040516107929190614208565b60405180910390f35b3480156107a757600080fd5b506107b0611bba565b6040516107bd9190614445565b60405180910390f35b3480156107d257600080fd5b506107db611bc0565b6040516107e89190614445565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613e2a565b611bc6565b005b34801561082657600080fd5b5061082f611cb6565b60405161083c9190614445565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d4d565b611cbc565b6040516108799190614445565b60405180910390f35b34801561088e57600080fd5b50610897611d05565b6040516108a49190614445565b60405180910390f35b3480156108b957600080fd5b506108c2611d0b565b6040516108cf9190614445565b60405180910390f35b3480156108e457600080fd5b506108ed611d11565b6040516108fa9190614445565b60405180910390f35b34801561090f57600080fd5b50610918611d17565b6040516109259190614208565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613ecb565b611d40565b005b34801561096357600080fd5b5061096c611e2a565b005b34801561097a57600080fd5b50610983611f7d565b60405161099091906142e3565b60405180910390f35b3480156109a557600080fd5b506109ae61200f565b6040516109bb9190614445565b60405180910390f35b3480156109d057600080fd5b506109d9612015565b6040516109e69190614445565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613e66565b61201b565b604051610a2391906142ad565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613ea2565b6120e8565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190613e66565b61219a565b604051610a8991906142ad565b60405180910390f35b348015610a9e57600080fd5b50610aa76121b9565b604051610ab49190614445565b60405180910390f35b348015610ac957600080fd5b50610ae46004803603810190610adf9190613d4d565b6121bf565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613ef4565b612298565b005b348015610b1b57600080fd5b50610b366004803603810190610b319190613ea2565b612378565b005b348015610b4457600080fd5b50610b5f6004803603810190610b5a9190613d4d565b612461565b604051610b6c91906142ad565b60405180910390f35b348015610b8157600080fd5b50610b8a612481565b604051610b979190614208565b60405180910390f35b348015610bac57600080fd5b50610bb56124a7565b604051610bc29190614445565b60405180910390f35b348015610bd757600080fd5b50610be06124ad565b604051610bed91906142ad565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190613d9f565b6124c0565b604051610c2a9190614445565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d4d565b612547565b005b348015610c6857600080fd5b50610c71612637565b604051610c7e9190614445565b60405180910390f35b348015610c9357600080fd5b50610cae6004803603810190610ca99190613ecb565b61263d565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd29190613d4d565b6126dc565b005b348015610ce557600080fd5b50610cee61289e565b604051610cfb91906142ad565b60405180910390f35b348015610d1057600080fd5b50610d2b6004803603810190610d269190613d4d565b6128b1565b604051610d3891906142ad565b60405180910390f35b606060028054610d509061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7c9061472d565b8015610dc95780601f10610d9e57610100808354040283529160200191610dc9565b820191906000526020600020905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b6000610de7610de061292f565b8484612937565b6001905092915050565b610df961292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d906143e5565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610f0261292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f86906143e5565b60405180910390fd5b82600f819055508160108190555080601181905550610fcf601154610fc1601054600f546128d190919063ffffffff16565b6128d190919063ffffffff16565b601681905550505050565b6000610fe7848484612b02565b506110a984610ff461292f565b6110a485604051806060016040528060288152602001614b0d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061105a61292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b612937565b600190509392505050565b6110bc61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611140906143e5565b60405180910390fd5b82600c8190555081600d8190555080600e81905550611189600e5461117b600d54600c546128d190919063ffffffff16565b6128d190919063ffffffff16565b601581905550505050565b61119c61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611220906143e5565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112a96112987f0000000000000000000000000000000000000000000000000000000000000000611cbc565b60185461314b90919063ffffffff16565b905090565b6112b661292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906143e5565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600f5481565b6000600460009054906101000a900460ff16905090565b600061146a6113ce61292f565b8461146585600760006113df61292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b612937565b6001905092915050565b61147c61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906143e5565b60405180910390fd5b80601b8190555050565b601d60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b61157461292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906143e5565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061166661292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906143e5565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613d76565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d857600080fd5b505afa1580156117ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118109190613d76565b6040518363ffffffff1660e01b815260040161182d929190614223565b60206040518083038186803b15801561184557600080fd5b505afa158015611859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187d9190613d76565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190613d76565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561199457600080fd5b505afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc9190613d76565b6040518363ffffffff1660e01b81526004016119e9929190614223565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613d76565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60115481565b60105481565b611bce61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906143e5565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d4861292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906143e5565b60405180910390fd5b678ac7230489e80000811115611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1790614325565b60405180910390fd5b8060198190555050565b611e3261292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6906143e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611f8c9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb89061472d565b80156120055780601f10611fda57610100808354040283529160200191612005565b820191906000526020600020905b815481529060010190602001808311611fe857829003601f168201915b5050505050905090565b60125481565b60175481565b60006120de61202861292f565b846120d985604051806060016040528060258152602001614b35602591396007600061205261292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b612937565b6001905092915050565b6120f061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461217d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612174906143e5565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b60006121ae6121a761292f565b8484612b02565b506001905092915050565b600c5481565b6121c761292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b906143e5565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122a061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612324906143e5565b60405180910390fd5b82601281905550816013819055508060148190555061236d60145461235f6013546012546128d190919063ffffffff16565b6128d190919063ffffffff16565b601781905550505050565b61238061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461240d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612404906143e5565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161245691906142ad565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61254f61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906143e5565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b61264561292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c9906143e5565b60405180910390fd5b80601a8190555050565b6126e461292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906143e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d890614345565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846128e0919061455a565b905083811015612925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291c90614385565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299e90614425565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0e90614365565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612af59190614445565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a90614405565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bda90614305565b60405180910390fd5b601d60149054906101000a900460ff1615612c0a57612c03848484613195565b90506130e0565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cae5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf957601954821115612cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cef906143a5565b60405180910390fd5b5b6000612d0430611cbc565b90506000601b548210159050808015612d2a5750601d60149054906101000a900460ff16155b8015612d805750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d985750601d60159054906101000a900460ff165b15612dc257601d60169054906101000a900460ff1615612db857601b5491505b612dc182613368565b5b612e4b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f315750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4557612f40878787613559565b612f47565b845b9050601d60179054906101000a900460ff168015612faf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fde57601a54612fd282612fc489611cbc565b6128d190919063ffffffff16565b1115612fdd57600080fd5b5b61303081600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130d09190614445565b60405180910390a3600193505050505b9392505050565b600083831115829061312f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312691906142e3565b60405180910390fd5b506000838561313e919061463b565b9050809150509392505050565b600061318d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e7565b905092915050565b6000613220826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133559190614445565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006133c160026133b36017546133a56012548761378090919063ffffffff16565b6137fb90919063ffffffff16565b6137fb90919063ffffffff16565b905060006133d8828461314b90919063ffffffff16565b90506133e381613845565b6000479050600061341461340360026012546137fb90919063ffffffff16565b60175461314b90919063ffffffff16565b905060006134526002613444846134366012548861378090919063ffffffff16565b6137fb90919063ffffffff16565b6137fb90919063ffffffff16565b9050600061347d8361346f6014548761378090919063ffffffff16565b6137fb90919063ffffffff16565b905060006134a682613498858861314b90919063ffffffff16565b61314b90919063ffffffff16565b905060008111156134de576134dd600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b42565b5b600082111561351457613513600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b42565b5b6000831180156135245750600087115b15613534576135338784613b8d565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135e1576135da60646135cc6015548661378090919063ffffffff16565b6137fb90919063ffffffff16565b905061365f565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365e5761365b606461364d6016548661378090919063ffffffff16565b6137fb90919063ffffffff16565b90505b5b6000811115613763576136ba81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161375a9190614445565b60405180910390a35b613776818461314b90919063ffffffff16565b9150509392505050565b60008083141561379357600090506137f5565b600082846137a191906145e1565b90508284826137b091906145b0565b146137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e7906143c5565b60405180910390fd5b809150505b92915050565b600061383d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c81565b905092915050565b6000600267ffffffffffffffff811115613888577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138b65781602001602082028036833780820191505090505b50905030816000815181106138f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561399657600080fd5b505afa1580156139aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ce9190613d76565b81600181518110613a08577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a6f30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612937565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ad3959493929190614490565b600060405180830381600087803b158015613aed57600080fd5b505af1158015613b01573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b36929190614460565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b88573d6000803e3d6000fd5b505050565b613bba30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612937565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c06611d17565b426040518863ffffffff1660e01b8152600401613c289695949392919061424c565b6060604051808303818588803b158015613c4157600080fd5b505af1158015613c55573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c7a9190613f43565b5050505050565b60008083118290613cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbf91906142e3565b60405180910390fd5b5060008385613cd791906145b0565b9050809150509392505050565b600081359050613cf381614ac7565b92915050565b600081519050613d0881614ac7565b92915050565b600081359050613d1d81614ade565b92915050565b600081359050613d3281614af5565b92915050565b600081519050613d4781614af5565b92915050565b600060208284031215613d5f57600080fd5b6000613d6d84828501613ce4565b91505092915050565b600060208284031215613d8857600080fd5b6000613d9684828501613cf9565b91505092915050565b60008060408385031215613db257600080fd5b6000613dc085828601613ce4565b9250506020613dd185828601613ce4565b9150509250929050565b600080600060608486031215613df057600080fd5b6000613dfe86828701613ce4565b9350506020613e0f86828701613ce4565b9250506040613e2086828701613d23565b9150509250925092565b60008060408385031215613e3d57600080fd5b6000613e4b85828601613ce4565b9250506020613e5c85828601613d0e565b9150509250929050565b60008060408385031215613e7957600080fd5b6000613e8785828601613ce4565b9250506020613e9885828601613d23565b9150509250929050565b600060208284031215613eb457600080fd5b6000613ec284828501613d0e565b91505092915050565b600060208284031215613edd57600080fd5b6000613eeb84828501613d23565b91505092915050565b600080600060608486031215613f0957600080fd5b6000613f1786828701613d23565b9350506020613f2886828701613d23565b9250506040613f3986828701613d23565b9150509250925092565b600080600060608486031215613f5857600080fd5b6000613f6686828701613d38565b9350506020613f7786828701613d38565b9250506040613f8886828701613d38565b9150509250925092565b6000613f9e8383613faa565b60208301905092915050565b613fb38161466f565b82525050565b613fc28161466f565b82525050565b6000613fd382614515565b613fdd8185614538565b9350613fe883614505565b8060005b838110156140195781516140008882613f92565b975061400b8361452b565b925050600181019050613fec565b5085935050505092915050565b61402f81614681565b82525050565b61403e816146c4565b82525050565b61404d816146e8565b82525050565b600061405e82614520565b6140688185614549565b93506140788185602086016146fa565b614081816147ec565b840191505092915050565b6000614099602383614549565b91506140a4826147fd565b604082019050919050565b60006140bc603483614549565b91506140c78261484c565b604082019050919050565b60006140df602683614549565b91506140ea8261489b565b604082019050919050565b6000614102602283614549565b915061410d826148ea565b604082019050919050565b6000614125601b83614549565b915061413082614939565b602082019050919050565b6000614148602883614549565b915061415382614962565b604082019050919050565b600061416b602183614549565b9150614176826149b1565b604082019050919050565b600061418e602083614549565b915061419982614a00565b602082019050919050565b60006141b1602583614549565b91506141bc82614a29565b604082019050919050565b60006141d4602483614549565b91506141df82614a78565b604082019050919050565b6141f3816146ad565b82525050565b614202816146b7565b82525050565b600060208201905061421d6000830184613fb9565b92915050565b60006040820190506142386000830185613fb9565b6142456020830184613fb9565b9392505050565b600060c0820190506142616000830189613fb9565b61426e60208301886141ea565b61427b6040830187614044565b6142886060830186614044565b6142956080830185613fb9565b6142a260a08301846141ea565b979650505050505050565b60006020820190506142c26000830184614026565b92915050565b60006020820190506142dd6000830184614035565b92915050565b600060208201905081810360008301526142fd8184614053565b905092915050565b6000602082019050818103600083015261431e8161408c565b9050919050565b6000602082019050818103600083015261433e816140af565b9050919050565b6000602082019050818103600083015261435e816140d2565b9050919050565b6000602082019050818103600083015261437e816140f5565b9050919050565b6000602082019050818103600083015261439e81614118565b9050919050565b600060208201905081810360008301526143be8161413b565b9050919050565b600060208201905081810360008301526143de8161415e565b9050919050565b600060208201905081810360008301526143fe81614181565b9050919050565b6000602082019050818103600083015261441e816141a4565b9050919050565b6000602082019050818103600083015261443e816141c7565b9050919050565b600060208201905061445a60008301846141ea565b92915050565b600060408201905061447560008301856141ea565b81810360208301526144878184613fc8565b90509392505050565b600060a0820190506144a560008301886141ea565b6144b26020830187614044565b81810360408301526144c48186613fc8565b90506144d36060830185613fb9565b6144e060808301846141ea565b9695505050505050565b60006020820190506144ff60008301846141f9565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614565826146ad565b9150614570836146ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145a5576145a461475f565b5b828201905092915050565b60006145bb826146ad565b91506145c6836146ad565b9250826145d6576145d561478e565b5b828204905092915050565b60006145ec826146ad565b91506145f7836146ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146305761462f61475f565b5b828202905092915050565b6000614646826146ad565b9150614651836146ad565b9250828210156146645761466361475f565b5b828203905092915050565b600061467a8261468d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146cf826146d6565b9050919050565b60006146e18261468d565b9050919050565b60006146f3826146ad565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b60208210811415614759576147586147bd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614ad08161466f565b8114614adb57600080fd5b50565b614ae781614681565b8114614af257600080fd5b50565b614afe816146ad565b8114614b0957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122009e76864a4e6f93cc7442634ede0c49bf0437bc7a550fec11f2806a828f4714164736f6c63430008040033
Deployed Bytecode
0x6080604052600436106103545760003560e01c806370a08231116101c6578063bbaa7d44116100f7578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610c87578063f2fde38b14610cb0578063f872858a14610cd9578063fabf706314610d045761035b565b8063dd62ed3e14610bf6578063e207a92b14610c33578063f0cd1dac14610c5c5761035b565b8063c78a789b116100d1578063c78a789b14610b38578063c816841b14610b75578063d76e26a314610ba0578063da00097d14610bcb5761035b565b8063bbaa7d4414610abd578063c2d4640e14610ae6578063c49b9a8014610b0f5761035b565b806395d89b4111610164578063a457c2d71161013e578063a457c2d7146109ef578063a5d69d1f14610a2c578063a9059cbb14610a55578063b6c3af3414610a925761035b565b806395d89b411461096e5780639e3fa32314610999578063a08e671f146109c45761035b565b806382eefb43116101a057806382eefb43146108d85780638da5cb5b146109035780638f03aad51461092e578063914eb66a146109575761035b565b806370a08231146108455780637d1db4a514610882578063807c2d9c146108ad5761035b565b80632f0a5fd4116102a0578063565cec381161023e578063646d470011610218578063646d47001461079b578063661b6e36146107c6578063667b511c146107f1578063705f9d741461081a5761035b565b8063565cec381461070a57806357e6adcb146107355780635881f3ef1461075e5761035b565b80633b97084a1161027a5780633b97084a1461063c5780634a74bb0214610665578063526012e81461069057806355324fa9146106cd5761035b565b80632f0a5fd4146105a9578063313ce567146105d457806339509351146105ff5761035b565b806323b872dd1161030d57806327c8f835116102e757806327c8f835146104ff5780632b112e491461052a5780632cdae5cb146105555780632df671091461057e5761035b565b806323b872dd1461047057806325519cf2146104ad5780632563ae83146104d65761035b565b806306fdde0314610360578063095ea7b31461038b5780630fe1203c146103c85780631694505e146103f157806318160ddd1461041c5780631d865c30146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d41565b60405161038291906142e3565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190613e66565b610dd3565b6040516103bf91906142ad565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190613d4d565b610df1565b005b3480156103fd57600080fd5b50610406610eca565b60405161041391906142c8565b60405180910390f35b34801561042857600080fd5b50610431610ef0565b60405161043e9190614445565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190613ef4565b610efa565b005b34801561047c57600080fd5b5061049760048036038101906104929190613ddb565b610fda565b6040516104a491906142ad565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf9190613ef4565b6110b4565b005b3480156104e257600080fd5b506104fd60048036038101906104f89190613ea2565b611194565b005b34801561050b57600080fd5b50610514611246565b6040516105219190614208565b60405180910390f35b34801561053657600080fd5b5061053f61126a565b60405161054c9190614445565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190613e2a565b6112ae565b005b34801561058a57600080fd5b5061059361139e565b6040516105a09190614445565b60405180910390f35b3480156105b557600080fd5b506105be6113a4565b6040516105cb9190614445565b60405180910390f35b3480156105e057600080fd5b506105e96113aa565b6040516105f691906144ea565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190613e66565b6113c1565b60405161063391906142ad565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613ecb565b611474565b005b34801561067157600080fd5b5061067a611513565b60405161068791906142ad565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613d4d565b611526565b6040516106c491906142ad565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613d4d565b611546565b60405161070191906142ad565b60405180910390f35b34801561071657600080fd5b5061071f611566565b60405161072c9190614445565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613e2a565b61156c565b005b34801561076a57600080fd5b5061078560048036038101906107809190613d4d565b61165c565b6040516107929190614208565b60405180910390f35b3480156107a757600080fd5b506107b0611bba565b6040516107bd9190614445565b60405180910390f35b3480156107d257600080fd5b506107db611bc0565b6040516107e89190614445565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613e2a565b611bc6565b005b34801561082657600080fd5b5061082f611cb6565b60405161083c9190614445565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613d4d565b611cbc565b6040516108799190614445565b60405180910390f35b34801561088e57600080fd5b50610897611d05565b6040516108a49190614445565b60405180910390f35b3480156108b957600080fd5b506108c2611d0b565b6040516108cf9190614445565b60405180910390f35b3480156108e457600080fd5b506108ed611d11565b6040516108fa9190614445565b60405180910390f35b34801561090f57600080fd5b50610918611d17565b6040516109259190614208565b60405180910390f35b34801561093a57600080fd5b5061095560048036038101906109509190613ecb565b611d40565b005b34801561096357600080fd5b5061096c611e2a565b005b34801561097a57600080fd5b50610983611f7d565b60405161099091906142e3565b60405180910390f35b3480156109a557600080fd5b506109ae61200f565b6040516109bb9190614445565b60405180910390f35b3480156109d057600080fd5b506109d9612015565b6040516109e69190614445565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a119190613e66565b61201b565b604051610a2391906142ad565b60405180910390f35b348015610a3857600080fd5b50610a536004803603810190610a4e9190613ea2565b6120e8565b005b348015610a6157600080fd5b50610a7c6004803603810190610a779190613e66565b61219a565b604051610a8991906142ad565b60405180910390f35b348015610a9e57600080fd5b50610aa76121b9565b604051610ab49190614445565b60405180910390f35b348015610ac957600080fd5b50610ae46004803603810190610adf9190613d4d565b6121bf565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613ef4565b612298565b005b348015610b1b57600080fd5b50610b366004803603810190610b319190613ea2565b612378565b005b348015610b4457600080fd5b50610b5f6004803603810190610b5a9190613d4d565b612461565b604051610b6c91906142ad565b60405180910390f35b348015610b8157600080fd5b50610b8a612481565b604051610b979190614208565b60405180910390f35b348015610bac57600080fd5b50610bb56124a7565b604051610bc29190614445565b60405180910390f35b348015610bd757600080fd5b50610be06124ad565b604051610bed91906142ad565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190613d9f565b6124c0565b604051610c2a9190614445565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d4d565b612547565b005b348015610c6857600080fd5b50610c71612637565b604051610c7e9190614445565b60405180910390f35b348015610c9357600080fd5b50610cae6004803603810190610ca99190613ecb565b61263d565b005b348015610cbc57600080fd5b50610cd76004803603810190610cd29190613d4d565b6126dc565b005b348015610ce557600080fd5b50610cee61289e565b604051610cfb91906142ad565b60405180910390f35b348015610d1057600080fd5b50610d2b6004803603810190610d269190613d4d565b6128b1565b604051610d3891906142ad565b60405180910390f35b606060028054610d509061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7c9061472d565b8015610dc95780601f10610d9e57610100808354040283529160200191610dc9565b820191906000526020600020905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b6000610de7610de061292f565b8484612937565b6001905092915050565b610df961292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d906143e5565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610f0261292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f86906143e5565b60405180910390fd5b82600f819055508160108190555080601181905550610fcf601154610fc1601054600f546128d190919063ffffffff16565b6128d190919063ffffffff16565b601681905550505050565b6000610fe7848484612b02565b506110a984610ff461292f565b6110a485604051806060016040528060288152602001614b0d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061105a61292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b612937565b600190509392505050565b6110bc61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611140906143e5565b60405180910390fd5b82600c8190555081600d8190555080600e81905550611189600e5461117b600d54600c546128d190919063ffffffff16565b6128d190919063ffffffff16565b601581905550505050565b61119c61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611220906143e5565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006112a96112987f000000000000000000000000000000000000000000000000000000000000dead611cbc565b60185461314b90919063ffffffff16565b905090565b6112b661292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906143e5565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600f5481565b6000600460009054906101000a900460ff16905090565b600061146a6113ce61292f565b8461146585600760006113df61292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b612937565b6001905092915050565b61147c61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906143e5565b60405180910390fd5b80601b8190555050565b601d60159054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b61157461292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906143e5565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061166661292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea906143e5565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613d76565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d857600080fd5b505afa1580156117ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118109190613d76565b6040518363ffffffff1660e01b815260040161182d929190614223565b60206040518083038186803b15801561184557600080fd5b505afa158015611859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187d9190613d76565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3e578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190613d76565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561199457600080fd5b505afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc9190613d76565b6040518363ffffffff1660e01b81526004016119e9929190614223565b602060405180830381600087803b158015611a0357600080fd5b505af1158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613d76565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60115481565b60105481565b611bce61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906143e5565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d4861292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc906143e5565b60405180910390fd5b678ac7230489e80000811115611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1790614325565b60405180910390fd5b8060198190555050565b611e3261292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6906143e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611f8c9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb89061472d565b80156120055780601f10611fda57610100808354040283529160200191612005565b820191906000526020600020905b815481529060010190602001808311611fe857829003601f168201915b5050505050905090565b60125481565b60175481565b60006120de61202861292f565b846120d985604051806060016040528060258152602001614b35602591396007600061205261292f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b612937565b6001905092915050565b6120f061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461217d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612174906143e5565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b60006121ae6121a761292f565b8484612b02565b506001905092915050565b600c5481565b6121c761292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b906143e5565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122a061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461232d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612324906143e5565b60405180910390fd5b82601281905550816013819055508060148190555061236d60145461235f6013546012546128d190919063ffffffff16565b6128d190919063ffffffff16565b601781905550505050565b61238061292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461240d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612404906143e5565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161245691906142ad565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61254f61292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906143e5565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b61264561292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c9906143e5565b60405180910390fd5b80601a8190555050565b6126e461292f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906143e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d890614345565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846128e0919061455a565b905083811015612925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291c90614385565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299e90614425565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0e90614365565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612af59190614445565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a90614405565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bda90614305565b60405180910390fd5b601d60149054906101000a900460ff1615612c0a57612c03848484613195565b90506130e0565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cae5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf957601954821115612cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cef906143a5565b60405180910390fd5b5b6000612d0430611cbc565b90506000601b548210159050808015612d2a5750601d60149054906101000a900460ff16155b8015612d805750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d985750601d60159054906101000a900460ff165b15612dc257601d60169054906101000a900460ff1615612db857601b5491505b612dc182613368565b5b612e4b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f315750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4557612f40878787613559565b612f47565b845b9050601d60179054906101000a900460ff168015612faf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fde57601a54612fd282612fc489611cbc565b6128d190919063ffffffff16565b1115612fdd57600080fd5b5b61303081600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130d09190614445565b60405180910390a3600193505050505b9392505050565b600083831115829061312f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312691906142e3565b60405180910390fd5b506000838561313e919061463b565b9050809150509392505050565b600061318d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e7565b905092915050565b6000613220826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e79092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b582600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133559190614445565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006133c160026133b36017546133a56012548761378090919063ffffffff16565b6137fb90919063ffffffff16565b6137fb90919063ffffffff16565b905060006133d8828461314b90919063ffffffff16565b90506133e381613845565b6000479050600061341461340360026012546137fb90919063ffffffff16565b60175461314b90919063ffffffff16565b905060006134526002613444846134366012548861378090919063ffffffff16565b6137fb90919063ffffffff16565b6137fb90919063ffffffff16565b9050600061347d8361346f6014548761378090919063ffffffff16565b6137fb90919063ffffffff16565b905060006134a682613498858861314b90919063ffffffff16565b61314b90919063ffffffff16565b905060008111156134de576134dd600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b42565b5b600082111561351457613513600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b42565b5b6000831180156135245750600087115b15613534576135338784613b8d565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135e1576135da60646135cc6015548661378090919063ffffffff16565b6137fb90919063ffffffff16565b905061365f565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365e5761365b606461364d6016548661378090919063ffffffff16565b6137fb90919063ffffffff16565b90505b5b6000811115613763576136ba81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161375a9190614445565b60405180910390a35b613776818461314b90919063ffffffff16565b9150509392505050565b60008083141561379357600090506137f5565b600082846137a191906145e1565b90508284826137b091906145b0565b146137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e7906143c5565b60405180910390fd5b809150505b92915050565b600061383d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c81565b905092915050565b6000600267ffffffffffffffff811115613888577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138b65781602001602082028036833780820191505090505b50905030816000815181106138f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561399657600080fd5b505afa1580156139aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ce9190613d76565b81600181518110613a08577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a6f30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612937565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ad3959493929190614490565b600060405180830381600087803b158015613aed57600080fd5b505af1158015613b01573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b36929190614460565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b88573d6000803e3d6000fd5b505050565b613bba30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612937565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c06611d17565b426040518863ffffffff1660e01b8152600401613c289695949392919061424c565b6060604051808303818588803b158015613c4157600080fd5b505af1158015613c55573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c7a9190613f43565b5050505050565b60008083118290613cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbf91906142e3565b60405180910390fd5b5060008385613cd791906145b0565b9050809150509392505050565b600081359050613cf381614ac7565b92915050565b600081519050613d0881614ac7565b92915050565b600081359050613d1d81614ade565b92915050565b600081359050613d3281614af5565b92915050565b600081519050613d4781614af5565b92915050565b600060208284031215613d5f57600080fd5b6000613d6d84828501613ce4565b91505092915050565b600060208284031215613d8857600080fd5b6000613d9684828501613cf9565b91505092915050565b60008060408385031215613db257600080fd5b6000613dc085828601613ce4565b9250506020613dd185828601613ce4565b9150509250929050565b600080600060608486031215613df057600080fd5b6000613dfe86828701613ce4565b9350506020613e0f86828701613ce4565b9250506040613e2086828701613d23565b9150509250925092565b60008060408385031215613e3d57600080fd5b6000613e4b85828601613ce4565b9250506020613e5c85828601613d0e565b9150509250929050565b60008060408385031215613e7957600080fd5b6000613e8785828601613ce4565b9250506020613e9885828601613d23565b9150509250929050565b600060208284031215613eb457600080fd5b6000613ec284828501613d0e565b91505092915050565b600060208284031215613edd57600080fd5b6000613eeb84828501613d23565b91505092915050565b600080600060608486031215613f0957600080fd5b6000613f1786828701613d23565b9350506020613f2886828701613d23565b9250506040613f3986828701613d23565b9150509250925092565b600080600060608486031215613f5857600080fd5b6000613f6686828701613d38565b9350506020613f7786828701613d38565b9250506040613f8886828701613d38565b9150509250925092565b6000613f9e8383613faa565b60208301905092915050565b613fb38161466f565b82525050565b613fc28161466f565b82525050565b6000613fd382614515565b613fdd8185614538565b9350613fe883614505565b8060005b838110156140195781516140008882613f92565b975061400b8361452b565b925050600181019050613fec565b5085935050505092915050565b61402f81614681565b82525050565b61403e816146c4565b82525050565b61404d816146e8565b82525050565b600061405e82614520565b6140688185614549565b93506140788185602086016146fa565b614081816147ec565b840191505092915050565b6000614099602383614549565b91506140a4826147fd565b604082019050919050565b60006140bc603483614549565b91506140c78261484c565b604082019050919050565b60006140df602683614549565b91506140ea8261489b565b604082019050919050565b6000614102602283614549565b915061410d826148ea565b604082019050919050565b6000614125601b83614549565b915061413082614939565b602082019050919050565b6000614148602883614549565b915061415382614962565b604082019050919050565b600061416b602183614549565b9150614176826149b1565b604082019050919050565b600061418e602083614549565b915061419982614a00565b602082019050919050565b60006141b1602583614549565b91506141bc82614a29565b604082019050919050565b60006141d4602483614549565b91506141df82614a78565b604082019050919050565b6141f3816146ad565b82525050565b614202816146b7565b82525050565b600060208201905061421d6000830184613fb9565b92915050565b60006040820190506142386000830185613fb9565b6142456020830184613fb9565b9392505050565b600060c0820190506142616000830189613fb9565b61426e60208301886141ea565b61427b6040830187614044565b6142886060830186614044565b6142956080830185613fb9565b6142a260a08301846141ea565b979650505050505050565b60006020820190506142c26000830184614026565b92915050565b60006020820190506142dd6000830184614035565b92915050565b600060208201905081810360008301526142fd8184614053565b905092915050565b6000602082019050818103600083015261431e8161408c565b9050919050565b6000602082019050818103600083015261433e816140af565b9050919050565b6000602082019050818103600083015261435e816140d2565b9050919050565b6000602082019050818103600083015261437e816140f5565b9050919050565b6000602082019050818103600083015261439e81614118565b9050919050565b600060208201905081810360008301526143be8161413b565b9050919050565b600060208201905081810360008301526143de8161415e565b9050919050565b600060208201905081810360008301526143fe81614181565b9050919050565b6000602082019050818103600083015261441e816141a4565b9050919050565b6000602082019050818103600083015261443e816141c7565b9050919050565b600060208201905061445a60008301846141ea565b92915050565b600060408201905061447560008301856141ea565b81810360208301526144878184613fc8565b90509392505050565b600060a0820190506144a560008301886141ea565b6144b26020830187614044565b81810360408301526144c48186613fc8565b90506144d36060830185613fb9565b6144e060808301846141ea565b9695505050505050565b60006020820190506144ff60008301846141f9565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614565826146ad565b9150614570836146ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145a5576145a461475f565b5b828201905092915050565b60006145bb826146ad565b91506145c6836146ad565b9250826145d6576145d561478e565b5b828204905092915050565b60006145ec826146ad565b91506145f7836146ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146305761462f61475f565b5b828202905092915050565b6000614646826146ad565b9150614651836146ad565b9250828210156146645761466361475f565b5b828203905092915050565b600061467a8261468d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146cf826146d6565b9050919050565b60006146e18261468d565b9050919050565b60006146f3826146ad565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b60208210811415614759576147586147bd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614ad08161466f565b8114614adb57600080fd5b50565b614ae781614681565b8114614af257600080fd5b50565b614afe816146ad565b8114614b0957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122009e76864a4e6f93cc7442634ede0c49bf0437bc7a550fec11f2806a828f4714164736f6c63430008040033
Deployed Bytecode Sourcemap
14614:14938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18319:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19485:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22320:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16285:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18596:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20783:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24246:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20410:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21808:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15055:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22882:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20259:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15557:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15645:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18505:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18982:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22188:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16400:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15337:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15457:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15825:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21929:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23156:813;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15734:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15690:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20114:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15600:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18704:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16113:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16169:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15956:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6153:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21572:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6378:145;;;;;;;;;;;;;:::i;:::-;;18410:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15782:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16001:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19208:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22745:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24071:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15514:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22443:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21168:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22566:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15399:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16333:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15867:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16448:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18831:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19999:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15913:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22078:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6531:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16500:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15276:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18319:83;18356:13;18389:5;18382:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18319:83;:::o;19485:161::-;19560:4;19577:39;19586:12;:10;:12::i;:::-;19600:7;19609:6;19577:8;:39::i;:::-;19634:4;19627:11;;19485:161;;;;:::o;22320:115::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22416:10:::1;22395;;:32;;;;;;;;;;;;;;;;;;22320:115:::0;:::o;16285:41::-;;;;;;;;;;;;;:::o;18596:100::-;18649:7;18676:12;;18669:19;;18596:100;:::o;20783:373::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20933:15:::1;20912:18;:36;;;;20980:15;20959:18;:36;;;;21029:17;21006:20;:40;;;;21080:68;21127:20;;21080:42;21103:18;;21080;;:22;;:42;;;;:::i;:::-;:46;;:68;;;;:::i;:::-;21059:18;:89;;;;20783:373:::0;;;:::o;24246:313::-;24344:4;24361:36;24371:6;24379:9;24390:6;24361:9;:36::i;:::-;;24408:121;24417:6;24425:12;:10;:12::i;:::-;24439:89;24477:6;24439:89;;;;;;;;;;;;;;;;;:11;:19;24451:6;24439:19;;;;;;;;;;;;;;;:33;24459:12;:10;:12::i;:::-;24439:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24408:8;:121::i;:::-;24547:4;24540:11;;24246:313;;;;;:::o;20410:365::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20558:15:::1;20538:17;:35;;;;20604:15;20584:17;:35;;;;20652:17;20630:19;:39;;;;20702:65;20747:19;;20702:40;20724:17;;20702;;:21;;:40;;;;:::i;:::-;:44;;:65;;;;:::i;:::-;20682:17;:85;;;;20410:365:::0;;;:::o;21808:113::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21905:8:::1;21886:16;;:27;;;;;;;;;;;;;;;;;;21808:113:::0;:::o;15055:81::-;;;:::o;22882:128::-;22935:7;22962:40;22979:22;22989:11;22979:9;:22::i;:::-;22962:12;;:16;;:40;;;;:::i;:::-;22955:47;;22882:128;:::o;20259:143::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20386:8:::1;20353:21;:30;20375:7;20353:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20259:143:::0;;:::o;15557:36::-;;;;:::o;15645:38::-;;;;:::o;18505:83::-;18546:5;18571:9;;;;;;;;;;;18564:16;;18505:83;:::o;18982:218::-;19070:4;19087:83;19096:12;:10;:12::i;:::-;19110:7;19119:50;19158:10;19119:11;:25;19131:12;:10;:12::i;:::-;19119:25;;;;;;;;;;;;;;;:34;19145:7;19119:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19087:8;:83::i;:::-;19188:4;19181:11;;18982:218;;;;:::o;22188:124::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22296:8:::1;22270:23;:34;;;;22188:124:::0;:::o;16400:41::-;;;;;;;;;;;;;:::o;15337:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;15457:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;15825:35::-;;;;:::o;21929:141::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22056:6:::1;22023:22;:30;22046:6;22023:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21929:141:::0;;:::o;23156:813::-;23236:22;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23273:35:::1;23330:16;23273:74;;23396:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23378:53;;;23440:4;23447:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23378:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23361:110;;23513:1;23487:28;;:14;:28;;;23484:225;;;23601:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23583:74;;;23666:4;23673:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23583:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23566:131;;23484:225;23735:14;23721:11;;:28;;;;;;;;;;;;;;;;;;23801:16;23783:15;;:34;;;;;;;;;;;;;;;;;;23902:4;23855:22;:44;23886:11;;;;;;;;;;;23855:44;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;23957:4;23917:15;:37;23941:11;;;;;;;;;;;23917:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;6357:1;23156:813:::0;;;:::o;15734:39::-;;;;:::o;15690:37::-;;;;:::o;20114:133::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20233:6:::1;20204:18;:26;20223:6;20204:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20114:133:::0;;:::o;15600:38::-;;;;:::o;18704:119::-;18770:7;18797:9;:18;18807:7;18797:18;;;;;;;;;;;;;;;;18790:25;;18704:119;;;:::o;16113:49::-;;;;:::o;16169:47::-;;;;:::o;15956:38::-;;;;:::o;6153:79::-;6191:7;6218:6;;;;;;;;;;;6211:13;;6153:79;:::o;21572:228::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21676:21:::1;21660:11;:38;;21652:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;21781:11;21766:12;:26;;;;21572:228:::0;:::o;6378:145::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6482:1:::1;6445:40;;6466:6;::::0;::::1;;;;;;;;6445:40;;;;;;;;;;;;6513:1;6496:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6378:145::o:0;18410:87::-;18449:13;18482:7;18475:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18410:87;:::o;15782:36::-;;;;:::o;16001:44::-;;;;:::o;19208:269::-;19301:4;19318:129;19327:12;:10;:12::i;:::-;19341:7;19350:96;19389:15;19350:96;;;;;;;;;;;;;;;;;:11;:25;19362:12;:10;:12::i;:::-;19350:25;;;;;;;;;;;;;;;:34;19376:7;19350:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19318:8;:129::i;:::-;19465:4;19458:11;;19208:269;;;;:::o;22745:125::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22854:8:::1;22826:25;;:36;;;;;;;;;;;;;;;;;;22745:125:::0;:::o;24071:167::-;24149:4;24166:42;24176:12;:10;:12::i;:::-;24190:9;24201:6;24166:9;:42::i;:::-;;24226:4;24219:11;;24071:167;;;;:::o;15514:36::-;;;;:::o;22443:115::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22539:10:::1;22518;;:32;;;;;;;;;;;;;;;;;;22443:115:::0;:::o;21168:392::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21335:17:::1;21316:16;:36;;;;21382:17;21363:16;:36;;;;21431:19;21410:18;:40;;;;21490:62;21533:18;;21490:38;21511:16;;21490;;:20;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;21463:24;:89;;;;21168:392:::0;;;:::o;22566:171::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22667:8:::1;22643:21;;:32;;;;;;;;;;;;;;;;;;22691:38;22720:8;22691:38;;;;;;:::i;:::-;;;;;;;;22566:171:::0;:::o;15399:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;16333:26::-;;;;;;;;;;;;;:::o;15867:37::-;;;;:::o;16448:45::-;;;;;;;;;;;;;:::o;18831:143::-;18912:7;18939:11;:18;18951:5;18939:18;;;;;;;;;;;;;;;:27;18958:7;18939:27;;;;;;;;;;;;;;;;18932:34;;18831:143;;;;:::o;19999:107::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20094:4:::1;20067:15;:24;20083:7;20067:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19999:107:::0;:::o;15913:36::-;;;;:::o;22078:102::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22164:8:::1;22150:10;:22;;;;22078:102:::0;:::o;6531:244::-;6297:12;:10;:12::i;:::-;6287:22;;:6;;;;;;;;;;:22;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6640:1:::1;6620:22;;:8;:22;;;;6612:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6730:8;6701:38;;6722:6;::::0;::::1;;;;;;;;6701:38;;;;;;;;;;;;6759:8;6750:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6531:244:::0;:::o;16500:35::-;;;;;;;;;;;;;:::o;15276:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;1555:181::-;1613:7;1633:9;1649:1;1645;:5;;;;:::i;:::-;1633:17;;1674:1;1669;:6;;1661:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:1;1720:8;;;1555:181;;;;:::o;487:115::-;540:15;583:10;568:26;;487:115;:::o;19654:337::-;19764:1;19747:19;;:5;:19;;;;19739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19845:1;19826:21;;:7;:21;;;;19818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19929:6;19899:11;:18;19911:5;19899:18;;;;;;;;;;;;;;;:27;19918:7;19899:27;;;;;;;;;;;;;;;:36;;;;19967:7;19951:32;;19960:5;19951:32;;;19976:6;19951:32;;;;;;:::i;:::-;;;;;;;;19654:337;;;:::o;24567:1727::-;24654:4;24699:1;24681:20;;:6;:20;;;;24673:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24783:1;24762:23;;:9;:23;;;;24754:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24841:16;;;;;;;;;;;24838:1449;;;24891:41;24906:6;24914:9;24925:6;24891:14;:41::i;:::-;24884:48;;;;24838:1449;24988:18;:26;25007:6;24988:26;;;;;;;;;;;;;;;;;;;;;;;;;24987:27;:61;;;;;25019:18;:29;25038:9;25019:29;;;;;;;;;;;;;;;;;;;;;;;;;25018:30;24987:61;24984:176;;;25087:12;;25077:6;:22;;25069:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24984:176;25188:28;25219:24;25237:4;25219:9;:24::i;:::-;25188:55;;25258:28;25313:23;;25289:20;:47;;25258:78;;25369:23;:44;;;;;25397:16;;;;;;;;;;;25396:17;25369:44;:72;;;;;25418:15;:23;25434:6;25418:23;;;;;;;;;;;;;;;;;;;;;;;;;25417:24;25369:72;:97;;;;;25445:21;;;;;;;;;;;25369:97;25365:308;;;25504:25;;;;;;;;;;;25501:97;;;25575:23;;25552:46;;25501:97;25617:36;25632:20;25617:14;:36::i;:::-;25365:308;25709:53;25731:6;25709:53;;;;;;;;;;;;;;;;;:9;:17;25719:6;25709:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25689:9;:17;25699:6;25689:17;;;;;;;;;;;;;;;:73;;;;25779:19;25802:21;:29;25824:6;25802:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;25835:21;:32;25857:9;25835:32;;;;;;;;;;;;;;;;;;;;;;;;;25802:65;25801:156;;25923:34;25931:6;25939:9;25950:6;25923:7;:34::i;:::-;25801:156;;;25914:6;25801:156;25779:178;;25977:16;;;;;;;;;;;:54;;;;;25998:22;:33;26021:9;25998:33;;;;;;;;;;;;;;;;;;;;;;;;;25997:34;25977:54;25974:136;;;26099:10;;26058:37;26083:11;26058:20;26068:9;26058;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;26050:60;;;;;;25974:136;26150:37;26175:11;26150:9;:20;26160:9;26150:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;26127:9;:20;26137:9;26127:20;;;;;;;;;;;;;;;:60;;;;26226:9;26209:40;;26218:6;26209:40;;;26237:11;26209:40;;;;;;:::i;:::-;;;;;;;;26271:4;26264:11;;;;;24567:1727;;;;;;:::o;1888:192::-;1974:7;2007:1;2002;:6;;2010:12;1994:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2034:9;2050:1;2046;:5;;;;:::i;:::-;2034:17;;2071:1;2064:8;;;1888:192;;;;;:::o;1744:136::-;1802:7;1829:43;1833:1;1836;1829:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1822:50;;1744:136;;;;:::o;26302:330::-;26395:4;26432:53;26454:6;26432:53;;;;;;;;;;;;;;;;;:9;:17;26442:6;26432:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;26412:9;:17;26422:6;26412:17;;;;;;;;;;;;;;;:73;;;;26519:32;26544:6;26519:9;:20;26529:9;26519:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;26496:9;:20;26506:9;26496:20;;;;;;;;;;;;;;;:55;;;;26584:9;26567:35;;26576:6;26567:35;;;26595:6;26567:35;;;;;;:::i;:::-;;;;;;;;26620:4;26613:11;;26302:330;;;;;:::o;26640:1068::-;16977:4;16958:16;;:23;;;;;;;;;;;;;;;;;;26722:19:::1;26744:66;26808:1;26744:59;26778:24;;26744:29;26756:16;;26744:7;:11;;:29;;;;:::i;:::-;:33;;:59;;;;:::i;:::-;:63;;:66;;;;:::i;:::-;26722:88;;26821:21;26845:24;26857:11;26845:7;:11;;:24;;;;:::i;:::-;26821:48;;26882:31;26899:13;26882:16;:31::i;:::-;26924:22;26949:21;26924:46;;26983:19;27005:53;27034:23;27055:1;27034:16;;:20;;:23;;;;:::i;:::-;27005:24;;:28;;:53;;;;:::i;:::-;26983:75;;27079:26;27108:60;27166:1;27108:53;27149:11;27108:36;27127:16;;27108:14;:18;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;27079:89;;27179:28;27210:55;27253:11;27210:38;27229:18;;27210:14;:18;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;27179:86;;27276:26;27305:64;27348:20;27305:38;27324:18;27305:14;:18;;:38;;;;:::i;:::-;:42;;:64;;;;:::i;:::-;27276:93;;27406:1;27385:18;:22;27382:92;;;27422:52;27443:10;;;;;;;;;;;27455:18;27422:20;:52::i;:::-;27382:92;27513:1;27490:20;:24;27487:96;;;27529:54;27550:10;;;;;;;;;;;27562:20;27529;:54::i;:::-;27487:96;27620:1;27599:18;:22;:41;;;;;27639:1;27625:11;:15;27599:41;27596:104;;;27655:45;27668:11;27681:18;27655:12;:45::i;:::-;27596:104;16992:1;;;;;;;17023:5:::0;17004:16;;:24;;;;;;;;;;;;;;;;;;26640:1068;:::o;28915:628::-;29001:7;29031:17;29051:1;29031:21;;29076:15;:23;29092:6;29076:23;;;;;;;;;;;;;;;;;;;;;;;;;29073:229;;;29128:38;29162:3;29128:29;29139:17;;29128:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;29116:50;;29073:229;;;29196:15;:26;29212:9;29196:26;;;;;;;;;;;;;;;;;;;;;;;;;29193:109;;;29251:39;29286:3;29251:30;29262:18;;29251:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;29239:51;;29193:109;29073:229;29337:1;29325:9;:13;29322:173;;;29382:39;29411:9;29382;:24;29400:4;29382:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;29355:9;:24;29373:4;29355:24;;;;;;;;;;;;;;;:66;;;;29466:4;29441:42;;29450:6;29441:42;;;29473:9;29441:42;;;;;;:::i;:::-;;;;;;;;29322:173;29514:21;29525:9;29514:6;:10;;:21;;;;:::i;:::-;29507:28;;;28915:628;;;;;:::o;2088:250::-;2146:7;2175:1;2170;:6;2166:47;;;2200:1;2193:8;;;;2166:47;2225:9;2241:1;2237;:5;;;;:::i;:::-;2225:17;;2270:1;2265;2261;:5;;;;:::i;:::-;:10;2253:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2329:1;2322:8;;;2088:250;;;;;:::o;2346:132::-;2404:7;2431:39;2435:1;2438;2431:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2424:46;;2346:132;;;;:::o;27720:666::-;27846:21;27884:1;27870:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27846:40;;27915:4;27897;27902:1;27897:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;27941:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27931:4;27936:1;27931:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;27976:62;27993:4;28008:15;;;;;;;;;;;28026:11;27976:8;:62::i;:::-;28077:15;;;;;;;;;;;:66;;;28158:11;28184:1;28228:4;28255;28291:15;28077:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28343:35;28360:11;28373:4;28343:35;;;;;;;:::i;:::-;;;;;;;;27720:666;;:::o;23018:126::-;23110:9;:18;;:26;23129:6;23110:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23018:126;;:::o;28394:513::-;28542:62;28559:4;28574:15;;;;;;;;;;;28592:11;28542:8;:62::i;:::-;28647:15;;;;;;;;;;;:31;;;28686:9;28719:4;28739:11;28765:1;28808;28851:7;:5;:7::i;:::-;28873:15;28647:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28394:513;;:::o;2486:278::-;2572:7;2604:1;2600;:5;2607:12;2592:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2631:9;2647:1;2643;:5;;;;:::i;:::-;2631:17;;2755:1;2748:8;;;2486: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://09e76864a4e6f93cc7442634ede0c49bf0437bc7a550fec11f2806a828f47141
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.