Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0.01026454 ETH
Eth Value
$22.11 (@ $2,153.86/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 41 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 18784387 | 443 days ago | IN | 0 ETH | 0.00185393 | ||||
Transfer | 17378912 | 640 days ago | IN | 0 ETH | 0.00180474 | ||||
Transfer | 17378900 | 640 days ago | IN | 0 ETH | 0.00196567 | ||||
Transfer | 17316880 | 648 days ago | IN | 0 ETH | 0.00273533 | ||||
Transfer | 17197111 | 665 days ago | IN | 0 ETH | 0.00718176 | ||||
Approve | 17027049 | 689 days ago | IN | 0 ETH | 0.00105122 | ||||
Approve | 17025449 | 689 days ago | IN | 0 ETH | 0.0009372 | ||||
Approve | 17022226 | 690 days ago | IN | 0 ETH | 0.00066874 | ||||
Approve | 17022086 | 690 days ago | IN | 0 ETH | 0.00103263 | ||||
Approve | 17022067 | 690 days ago | IN | 0 ETH | 0.00107536 | ||||
Transfer | 16997549 | 693 days ago | IN | 0 ETH | 0.0014709 | ||||
Transfer | 16997346 | 693 days ago | IN | 0 ETH | 0.00133185 | ||||
Transfer | 16979668 | 696 days ago | IN | 0 ETH | 0.00242833 | ||||
Transfer | 16977452 | 696 days ago | IN | 0 ETH | 0.00556952 | ||||
Transfer | 16976460 | 696 days ago | IN | 0 ETH | 0.00180162 | ||||
Transfer | 16971920 | 697 days ago | IN | 0 ETH | 0.00155785 | ||||
Transfer | 16949295 | 700 days ago | IN | 0 ETH | 0.00290849 | ||||
Transfer | 16927241 | 703 days ago | IN | 0 ETH | 0.00155589 | ||||
Transfer | 16927229 | 703 days ago | IN | 0 ETH | 0.00181556 | ||||
Transfer | 16927081 | 703 days ago | IN | 0 ETH | 0.00125112 | ||||
Transfer | 16883435 | 710 days ago | IN | 0 ETH | 0.0009905 | ||||
Transfer | 16858576 | 713 days ago | IN | 0 ETH | 0.00087156 | ||||
Transfer | 16855822 | 713 days ago | IN | 0 ETH | 0.00155642 | ||||
Transfer | 16855564 | 713 days ago | IN | 0 ETH | 0.00164318 | ||||
Transfer | 16851373 | 714 days ago | IN | 0 ETH | 0.00162348 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17088968 | 680 days ago | 0.01026454 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
JEFFREY
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-16 */ /** */ // 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; 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; 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) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; 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"); (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 JEFFREY is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "JEFFREY"; string private _symbol = "JEF"; uint8 private _decimals = 18; address payable public Marketing = payable(0x5DBd2b9976CdFc5fd1A195f67f177747Be7A13dD); address payable public Team = payable(0x5DBd2b9976CdFc5fd1A195f67f177747Be7A13dD); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 private _buyLiquidityFee = 1; uint256 private _buyJefMarketingFee = 1; uint256 private _buyJefTeamFee = 0; uint256 private _sellLiquidityFee = 1; uint256 private _sellJefMarketingFee = 1; uint256 private _sellJefTeamFee = 0; uint256 public _liquidityShare = 0; uint256 public _JefMarketingShare = 0; uint256 public _JefTeamShare = 0; uint256 public _totalTaxIfBuying = 0; uint256 public _totalTaxIfSelling = 0; uint256 public _totalDistributionShares = 0; uint256 private _totalSupply = 1 * 10**9 * 10**18; uint256 public _maxTxAmount = 1 * 10**9 * 10**18; uint256 public _walletMax = 1 * 10**9 * 10**18; uint256 public minimumTokensBeforeSwap = 25000 * 10**18; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyJefMarketingFee).add(_buyJefTeamFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellJefMarketingFee).add(_sellJefTeamFee); _totalDistributionShares = _liquidityShare.add(_JefMarketingShare).add(_JefTeamShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isMarketPair[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, "BEP20: 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 { isMarketPair[account] = true; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount <= (40 * 10**6 * 10**9), "Max wallet should be less or equal to 4% totalSupply"); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function 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)) { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; uniswapV2Router = _uniswapV2Router; isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } 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, "BEP20: 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(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHTeam = amountReceived.mul(_JefTeamShare).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHTeam); if(amountETHMarketing > 0) transferToAddressETH(Marketing, amountETHMarketing); if(amountETHTeam > 0) transferToAddressETH(Team, amountETHTeam); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[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 creator :@cashmoneydev }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Team","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_JefMarketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_JefTeamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","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":"_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":"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":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":[],"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
60a06040526040518060400160405280600781526020017f4a45464652455900000000000000000000000000000000000000000000000000815250600290816200004a919062000d8b565b506040518060400160405280600381526020017f4a454600000000000000000000000000000000000000000000000000000000008152506003908162000091919062000d8b565b506012600460006101000a81548160ff021916908360ff160217905550735dbd2b9976cdfc5fd1a195f67f177747be7a13dd600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735dbd2b9976cdfc5fd1a195f67f177747be7a13dd600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506001600c556001600d556000600e556001600f55600160105560006011556000601255600060135560006014556000601555600060165560006017556b033b2e3c9fd0803ce80000006018556b033b2e3c9fd0803ce80000006019556b033b2e3c9fd0803ce8000000601a5569054b40b1f852bda00000601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200026557600080fd5b5060006200027862000a7d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a1919062000edc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000409573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042f919062000edc565b6040518363ffffffff1660e01b81526004016200044e92919062000f1f565b6020604051808303816000875af11580156200046e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000494919062000edc565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005d062000a8560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006b2600e546200069e600d54600c5462000aae60201b6200223a1790919060201c565b62000aae60201b6200223a1790919060201c565b601581905550620006f1601154620006dd601054600f5462000aae60201b6200223a1790919060201c565b62000aae60201b6200223a1790919060201c565b601681905550620007306014546200071c60135460125462000aae60201b6200223a1790919060201c565b62000aae60201b6200223a1790919060201c565b6017819055506001600960006200074c62000a8560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200088562000a8560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009bf62000a7d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a0d62000a7d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000a6e919062000f5d565b60405180910390a35062001067565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000abf919062000fa9565b90508381101562000b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afe9062001045565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b9357607f821691505b60208210810362000ba95762000ba862000b4b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bd4565b62000c1f868362000bd4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c6c62000c6662000c608462000c37565b62000c41565b62000c37565b9050919050565b6000819050919050565b62000c888362000c4b565b62000ca062000c978262000c73565b84845462000be1565b825550505050565b600090565b62000cb762000ca8565b62000cc481848462000c7d565b505050565b5b8181101562000cec5762000ce060008262000cad565b60018101905062000cca565b5050565b601f82111562000d3b5762000d058162000baf565b62000d108462000bc4565b8101602085101562000d20578190505b62000d3862000d2f8562000bc4565b83018262000cc9565b50505b505050565b600082821c905092915050565b600062000d606000198460080262000d40565b1980831691505092915050565b600062000d7b838362000d4d565b9150826002028217905092915050565b62000d968262000b11565b67ffffffffffffffff81111562000db25762000db162000b1c565b5b62000dbe825462000b7a565b62000dcb82828562000cf0565b600060209050601f83116001811462000e03576000841562000dee578287015190505b62000dfa858262000d6d565b86555062000e6a565b601f19841662000e138662000baf565b60005b8281101562000e3d5784890151825560018201915060208501945060208101905062000e16565b8683101562000e5d578489015162000e59601f89168262000d4d565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ea48262000e77565b9050919050565b62000eb68162000e97565b811462000ec257600080fd5b50565b60008151905062000ed68162000eab565b92915050565b60006020828403121562000ef55762000ef462000e72565b5b600062000f058482850162000ec5565b91505092915050565b62000f198162000e97565b82525050565b600060408201905062000f36600083018562000f0e565b62000f45602083018462000f0e565b9392505050565b62000f578162000c37565b82525050565b600060208201905062000f74600083018462000f4c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000fb68262000c37565b915062000fc38362000c37565b925082820190508082111562000fde5762000fdd62000f7a565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200102d601b8362000fe4565b91506200103a8262000ff5565b602082019050919050565b6000602082019050818103600083015262001060816200101e565b9050919050565b6080516144d96200108a60003960008181610e890152610eb501526144d96000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063da00097d116100c1578063f0cd1dac1161007a578063f0cd1dac14610a2f578063f1d5f51714610a5a578063f2fde38b14610a83578063f84ba65d14610aac578063f872858a14610ad5578063ff39d12a14610b0057610293565b8063da00097d14610921578063db886f231461094c578063dd62ed3e14610977578063e207a92b146109b4578063ec28438a146109dd578063ef422a1814610a0657610293565b8063a5d69d1f11610113578063a5d69d1f146107ff578063a9059cbb14610828578063c49b9a8014610865578063c816841b1461088e578063c867d60b146108b9578063d2d7ad83146108f657610293565b80638da5cb5b146106ff578063914eb66a1461072a57806395d89b41146107415780639d5e7f681461076c578063a08e671f14610797578063a457c2d7146107c257610293565b80633b97084a116101fe578063639e01dd116101b7578063639e01dd146105d957806370a08231146106045780637d1db4a514610641578063807c2d9c1461066c57806382eefb43146106975780638b42507f146106c257610293565b80633b97084a146104a35780633ecad271146104cc5780634a74bb02146105095780635342acb41461053457806357a5802f146105715780635881f3ef1461059c57610293565b806323b872dd1161025057806323b872dd1461037f5780632563ae83146103bc57806327c8f835146103e55780632b112e4914610410578063313ce5671461043b578063395093511461046657610293565b806306fdde0314610298578063095ea7b3146102c35780631694505e1461030057806318160ddd1461032b5780632198cf6c1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b2b565b6040516102ba9190613648565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613703565b610bbd565b6040516102f7919061375e565b60405180910390f35b34801561030c57600080fd5b50610315610bdb565b60405161032291906137d8565b60405180910390f35b34801561033757600080fd5b50610340610c01565b60405161034d9190613802565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190613849565b610c0b565b005b34801561038b57600080fd5b506103a660048036038101906103a19190613889565b610cfb565b6040516103b3919061375e565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906138dc565b610dd5565b005b3480156103f157600080fd5b506103fa610e87565b6040516104079190613918565b60405180910390f35b34801561041c57600080fd5b50610425610eab565b6040516104329190613802565b60405180910390f35b34801561044757600080fd5b50610450610eef565b60405161045d919061394f565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613703565b610f06565b60405161049a919061375e565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c5919061396a565b610fb9565b005b3480156104d857600080fd5b506104f360048036038101906104ee9190613997565b611058565b604051610500919061375e565b60405180910390f35b34801561051557600080fd5b5061051e611078565b60405161052b919061375e565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613997565b61108b565b604051610568919061375e565b60405180910390f35b34801561057d57600080fd5b506105866110ab565b6040516105939190613802565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190613997565b6110b1565b6040516105d09190613918565b60405180910390f35b3480156105e557600080fd5b506105ee6115b4565b6040516105fb91906139e5565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613997565b6115da565b6040516106389190613802565b60405180910390f35b34801561064d57600080fd5b50610656611623565b6040516106639190613802565b60405180910390f35b34801561067857600080fd5b50610681611629565b60405161068e9190613802565b60405180910390f35b3480156106a357600080fd5b506106ac61162f565b6040516106b99190613802565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613997565b611635565b6040516106f6919061375e565b60405180910390f35b34801561070b57600080fd5b50610714611655565b6040516107219190613918565b60405180910390f35b34801561073657600080fd5b5061073f61167e565b005b34801561074d57600080fd5b506107566117d1565b6040516107639190613648565b60405180910390f35b34801561077857600080fd5b50610781611863565b60405161078e9190613802565b60405180910390f35b3480156107a357600080fd5b506107ac611869565b6040516107b99190613802565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613703565b61186f565b6040516107f6919061375e565b60405180910390f35b34801561080b57600080fd5b50610826600480360381019061082191906138dc565b61193c565b005b34801561083457600080fd5b5061084f600480360381019061084a9190613703565b6119ee565b60405161085c919061375e565b60405180910390f35b34801561087157600080fd5b5061088c600480360381019061088791906138dc565b611a0d565b005b34801561089a57600080fd5b506108a3611af6565b6040516108b09190613918565b60405180910390f35b3480156108c557600080fd5b506108e060048036038101906108db9190613997565b611b1c565b6040516108ed919061375e565b60405180910390f35b34801561090257600080fd5b5061090b611b3c565b6040516109189190613802565b60405180910390f35b34801561092d57600080fd5b50610936611b42565b604051610943919061375e565b60405180910390f35b34801561095857600080fd5b50610961611b55565b60405161096e91906139e5565b60405180910390f35b34801561098357600080fd5b5061099e60048036038101906109999190613a00565b611b7b565b6040516109ab9190613802565b60405180910390f35b3480156109c057600080fd5b506109db60048036038101906109d69190613997565b611c02565b005b3480156109e957600080fd5b50610a0460048036038101906109ff919061396a565b611cf2565b005b348015610a1257600080fd5b50610a2d6004803603810190610a289190613849565b611ddb565b005b348015610a3b57600080fd5b50610a44611ecb565b604051610a519190613802565b60405180910390f35b348015610a6657600080fd5b50610a816004803603810190610a7c919061396a565b611ed1565b005b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613997565b611f70565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613849565b612131565b005b348015610ae157600080fd5b50610aea612221565b604051610af7919061375e565b60405180910390f35b348015610b0c57600080fd5b50610b15612234565b604051610b229190613802565b60405180910390f35b606060028054610b3a90613a6f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6690613a6f565b8015610bb35780601f10610b8857610100808354040283529160200191610bb3565b820191906000526020600020905b815481529060010190602001808311610b9657829003601f168201915b5050505050905090565b6000610bd1610bca612298565b84846122a0565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610c13612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790613aec565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610d08848484612469565b50610dca84610d15612298565b610dc58560405180606001604052806028815260200161445760289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7b612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b6122a0565b600190509392505050565b610ddd612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190613aec565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610eea610ed97f00000000000000000000000000000000000000000000000000000000000000006115da565b601854612ab090919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610faf610f13612298565b84610faa8560076000610f24612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b6122a0565b6001905092915050565b610fc1612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104590613aec565b60405180910390fd5b80601b8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60125481565b60006110bb612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90613aec565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bc9190613b21565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190613b21565b6040518363ffffffff1660e01b8152600401611264929190613b4e565b602060405180830381865afa158015611281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a59190613b21565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611438578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613b21565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d59190613b21565b6040518363ffffffff1660e01b81526004016113f2929190613b4e565b6020604051808303816000875af1158015611411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114359190613b21565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611686612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a90613aec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600380546117e090613a6f565b80601f016020809104026020016040519081016040528092919081815260200182805461180c90613a6f565b80156118595780601f1061182e57610100808354040283529160200191611859565b820191906000526020600020905b81548152906001019060200180831161183c57829003601f168201915b5050505050905090565b60145481565b60175481565b600061193261187c612298565b8461192d8560405180606001604052806025815260200161447f60259139600760006118a6612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b6122a0565b6001905092915050565b611944612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613aec565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000611a026119fb612298565b8484612469565b506001905092915050565b611a15612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990613aec565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611aeb919061375e565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b601b5481565b601d60169054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c0a612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613aec565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611cfa612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e90613aec565b60405180910390fd5b668e1bc9bf040000811115611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc890613be9565b60405180910390fd5b8060198190555050565b611de3612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6790613aec565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611ed9612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90613aec565b60405180910390fd5b80601a8190555050565b611f78612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613aec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206b90613c7b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612139612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90613aec565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b60135481565b60008082846122499190613cca565b90508381101561228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228590613d4a565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690613ddc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237590613e6e565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161245c9190613802565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90613f92565b60405180910390fd5b601d60149054906101000a900460ff161561256f57612568848484612afa565b9050612a45565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126135750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265e5760195482111561265d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265490614024565b60405180910390fd5b5b6000612669306115da565b90506000601b54821015905080801561268f5750601d60149054906101000a900460ff16155b80156126e55750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126fd5750601d60159054906101000a900460ff165b1561272757601d60169054906101000a900460ff161561271d57601b5491505b61272682612ccd565b5b6127b0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128965750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128aa576128a5878787612ebe565b6128ac565b845b9050601d60179054906101000a900460ff1680156129145750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561294357601a5461293782612929896115da565b61223a90919063ffffffff16565b111561294257600080fd5b5b61299581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a359190613802565b60405180910390a3600193505050505b9392505050565b6000838311158290612a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8b9190613648565b60405180910390fd5b5060008385612aa39190614044565b9050809150509392505050565b6000612af283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a4c565b905092915050565b6000612b85826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1a82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cba9190613802565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612d266002612d18601754612d0a601254876130e590919063ffffffff16565b61315f90919063ffffffff16565b61315f90919063ffffffff16565b90506000612d3d8284612ab090919063ffffffff16565b9050612d48816131a9565b60004790506000612d79612d68600260125461315f90919063ffffffff16565b601754612ab090919063ffffffff16565b90506000612db76002612da984612d9b601254886130e590919063ffffffff16565b61315f90919063ffffffff16565b61315f90919063ffffffff16565b90506000612de283612dd4601454876130e590919063ffffffff16565b61315f90919063ffffffff16565b90506000612e0b82612dfd8588612ab090919063ffffffff16565b612ab090919063ffffffff16565b90506000811115612e4357612e42600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613425565b5b6000821115612e7957612e78600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613425565b5b600083118015612e895750600087115b15612e9957612e988784613470565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f4657612f3f6064612f31601554866130e590919063ffffffff16565b61315f90919063ffffffff16565b9050612fc4565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fc357612fc06064612fb2601654866130e590919063ffffffff16565b61315f90919063ffffffff16565b90505b5b60008111156130c85761301f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130bf9190613802565b60405180910390a35b6130db8184612ab090919063ffffffff16565b9150509392505050565b60008083036130f75760009050613159565b600082846131059190614078565b905082848261311491906140e9565b14613154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314b9061418c565b60405180910390fd5b809150505b92915050565b60006131a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613555565b905092915050565b6000600267ffffffffffffffff8111156131c6576131c56141ac565b5b6040519080825280602002602001820160405280156131f45781602001602082028036833780820191505090505b509050308160008151811061320c5761320b6141db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d79190613b21565b816001815181106132eb576132ea6141db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061335230601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122a0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133b6959493929190614303565b600060405180830381600087803b1580156133d057600080fd5b505af11580156133e4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161341992919061435d565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561346b573d6000803e3d6000fd5b505050565b61349d30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122a0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806134e9611655565b426040518863ffffffff1660e01b815260040161350b9695949392919061438d565b60606040518083038185885af1158015613529573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061354e9190614403565b5050505050565b6000808311829061359c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135939190613648565b60405180910390fd5b50600083856135ab91906140e9565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135f25780820151818401526020810190506135d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061361a826135b8565b61362481856135c3565b93506136348185602086016135d4565b61363d816135fe565b840191505092915050565b60006020820190508181036000830152613662818461360f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061369a8261366f565b9050919050565b6136aa8161368f565b81146136b557600080fd5b50565b6000813590506136c7816136a1565b92915050565b6000819050919050565b6136e0816136cd565b81146136eb57600080fd5b50565b6000813590506136fd816136d7565b92915050565b6000806040838503121561371a5761371961366a565b5b6000613728858286016136b8565b9250506020613739858286016136ee565b9150509250929050565b60008115159050919050565b61375881613743565b82525050565b6000602082019050613773600083018461374f565b92915050565b6000819050919050565b600061379e6137996137948461366f565b613779565b61366f565b9050919050565b60006137b082613783565b9050919050565b60006137c2826137a5565b9050919050565b6137d2816137b7565b82525050565b60006020820190506137ed60008301846137c9565b92915050565b6137fc816136cd565b82525050565b600060208201905061381760008301846137f3565b92915050565b61382681613743565b811461383157600080fd5b50565b6000813590506138438161381d565b92915050565b600080604083850312156138605761385f61366a565b5b600061386e858286016136b8565b925050602061387f85828601613834565b9150509250929050565b6000806000606084860312156138a2576138a161366a565b5b60006138b0868287016136b8565b93505060206138c1868287016136b8565b92505060406138d2868287016136ee565b9150509250925092565b6000602082840312156138f2576138f161366a565b5b600061390084828501613834565b91505092915050565b6139128161368f565b82525050565b600060208201905061392d6000830184613909565b92915050565b600060ff82169050919050565b61394981613933565b82525050565b60006020820190506139646000830184613940565b92915050565b6000602082840312156139805761397f61366a565b5b600061398e848285016136ee565b91505092915050565b6000602082840312156139ad576139ac61366a565b5b60006139bb848285016136b8565b91505092915050565b60006139cf8261366f565b9050919050565b6139df816139c4565b82525050565b60006020820190506139fa60008301846139d6565b92915050565b60008060408385031215613a1757613a1661366a565b5b6000613a25858286016136b8565b9250506020613a36858286016136b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a8757607f821691505b602082108103613a9a57613a99613a40565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ad66020836135c3565b9150613ae182613aa0565b602082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b600081519050613b1b816136a1565b92915050565b600060208284031215613b3757613b3661366a565b5b6000613b4584828501613b0c565b91505092915050565b6000604082019050613b636000830185613909565b613b706020830184613909565b9392505050565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065717560008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b6000613bd36034836135c3565b9150613bde82613b77565b604082019050919050565b60006020820190508181036000830152613c0281613bc6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c656026836135c3565b9150613c7082613c09565b604082019050919050565b60006020820190508181036000830152613c9481613c58565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cd5826136cd565b9150613ce0836136cd565b9250828201905080821115613cf857613cf7613c9b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d34601b836135c3565b9150613d3f82613cfe565b602082019050919050565b60006020820190508181036000830152613d6381613d27565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613dc66024836135c3565b9150613dd182613d6a565b604082019050919050565b60006020820190508181036000830152613df581613db9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e586022836135c3565b9150613e6382613dfc565b604082019050919050565b60006020820190508181036000830152613e8781613e4b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eea6025836135c3565b9150613ef582613e8e565b604082019050919050565b60006020820190508181036000830152613f1981613edd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f7c6023836135c3565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061400e6028836135c3565b915061401982613fb2565b604082019050919050565b6000602082019050818103600083015261403d81614001565b9050919050565b600061404f826136cd565b915061405a836136cd565b925082820390508181111561407257614071613c9b565b5b92915050565b6000614083826136cd565b915061408e836136cd565b925082820261409c816136cd565b915082820484148315176140b3576140b2613c9b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f4826136cd565b91506140ff836136cd565b92508261410f5761410e6140ba565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141766021836135c3565b91506141818261411a565b604082019050919050565b600060208201905081810360008301526141a581614169565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061422f61422a6142258461420a565b613779565b6136cd565b9050919050565b61423f81614214565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61427a8161368f565b82525050565b600061428c8383614271565b60208301905092915050565b6000602082019050919050565b60006142b082614245565b6142ba8185614250565b93506142c583614261565b8060005b838110156142f65781516142dd8882614280565b97506142e883614298565b9250506001810190506142c9565b5085935050505092915050565b600060a08201905061431860008301886137f3565b6143256020830187614236565b818103604083015261433781866142a5565b90506143466060830185613909565b61435360808301846137f3565b9695505050505050565b600060408201905061437260008301856137f3565b818103602083015261438481846142a5565b90509392505050565b600060c0820190506143a26000830189613909565b6143af60208301886137f3565b6143bc6040830187614236565b6143c96060830186614236565b6143d66080830185613909565b6143e360a08301846137f3565b979650505050505050565b6000815190506143fd816136d7565b92915050565b60008060006060848603121561441c5761441b61366a565b5b600061442a868287016143ee565b935050602061443b868287016143ee565b925050604061444c868287016143ee565b915050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a03d7c5613c01baed50474a7ad34909942a3d08e080273ea979f8148d2d731bf64736f6c63430008120033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063da00097d116100c1578063f0cd1dac1161007a578063f0cd1dac14610a2f578063f1d5f51714610a5a578063f2fde38b14610a83578063f84ba65d14610aac578063f872858a14610ad5578063ff39d12a14610b0057610293565b8063da00097d14610921578063db886f231461094c578063dd62ed3e14610977578063e207a92b146109b4578063ec28438a146109dd578063ef422a1814610a0657610293565b8063a5d69d1f11610113578063a5d69d1f146107ff578063a9059cbb14610828578063c49b9a8014610865578063c816841b1461088e578063c867d60b146108b9578063d2d7ad83146108f657610293565b80638da5cb5b146106ff578063914eb66a1461072a57806395d89b41146107415780639d5e7f681461076c578063a08e671f14610797578063a457c2d7146107c257610293565b80633b97084a116101fe578063639e01dd116101b7578063639e01dd146105d957806370a08231146106045780637d1db4a514610641578063807c2d9c1461066c57806382eefb43146106975780638b42507f146106c257610293565b80633b97084a146104a35780633ecad271146104cc5780634a74bb02146105095780635342acb41461053457806357a5802f146105715780635881f3ef1461059c57610293565b806323b872dd1161025057806323b872dd1461037f5780632563ae83146103bc57806327c8f835146103e55780632b112e4914610410578063313ce5671461043b578063395093511461046657610293565b806306fdde0314610298578063095ea7b3146102c35780631694505e1461030057806318160ddd1461032b5780632198cf6c1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b2b565b6040516102ba9190613648565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613703565b610bbd565b6040516102f7919061375e565b60405180910390f35b34801561030c57600080fd5b50610315610bdb565b60405161032291906137d8565b60405180910390f35b34801561033757600080fd5b50610340610c01565b60405161034d9190613802565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190613849565b610c0b565b005b34801561038b57600080fd5b506103a660048036038101906103a19190613889565b610cfb565b6040516103b3919061375e565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906138dc565b610dd5565b005b3480156103f157600080fd5b506103fa610e87565b6040516104079190613918565b60405180910390f35b34801561041c57600080fd5b50610425610eab565b6040516104329190613802565b60405180910390f35b34801561044757600080fd5b50610450610eef565b60405161045d919061394f565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190613703565b610f06565b60405161049a919061375e565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c5919061396a565b610fb9565b005b3480156104d857600080fd5b506104f360048036038101906104ee9190613997565b611058565b604051610500919061375e565b60405180910390f35b34801561051557600080fd5b5061051e611078565b60405161052b919061375e565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613997565b61108b565b604051610568919061375e565b60405180910390f35b34801561057d57600080fd5b506105866110ab565b6040516105939190613802565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190613997565b6110b1565b6040516105d09190613918565b60405180910390f35b3480156105e557600080fd5b506105ee6115b4565b6040516105fb91906139e5565b60405180910390f35b34801561061057600080fd5b5061062b60048036038101906106269190613997565b6115da565b6040516106389190613802565b60405180910390f35b34801561064d57600080fd5b50610656611623565b6040516106639190613802565b60405180910390f35b34801561067857600080fd5b50610681611629565b60405161068e9190613802565b60405180910390f35b3480156106a357600080fd5b506106ac61162f565b6040516106b99190613802565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613997565b611635565b6040516106f6919061375e565b60405180910390f35b34801561070b57600080fd5b50610714611655565b6040516107219190613918565b60405180910390f35b34801561073657600080fd5b5061073f61167e565b005b34801561074d57600080fd5b506107566117d1565b6040516107639190613648565b60405180910390f35b34801561077857600080fd5b50610781611863565b60405161078e9190613802565b60405180910390f35b3480156107a357600080fd5b506107ac611869565b6040516107b99190613802565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613703565b61186f565b6040516107f6919061375e565b60405180910390f35b34801561080b57600080fd5b50610826600480360381019061082191906138dc565b61193c565b005b34801561083457600080fd5b5061084f600480360381019061084a9190613703565b6119ee565b60405161085c919061375e565b60405180910390f35b34801561087157600080fd5b5061088c600480360381019061088791906138dc565b611a0d565b005b34801561089a57600080fd5b506108a3611af6565b6040516108b09190613918565b60405180910390f35b3480156108c557600080fd5b506108e060048036038101906108db9190613997565b611b1c565b6040516108ed919061375e565b60405180910390f35b34801561090257600080fd5b5061090b611b3c565b6040516109189190613802565b60405180910390f35b34801561092d57600080fd5b50610936611b42565b604051610943919061375e565b60405180910390f35b34801561095857600080fd5b50610961611b55565b60405161096e91906139e5565b60405180910390f35b34801561098357600080fd5b5061099e60048036038101906109999190613a00565b611b7b565b6040516109ab9190613802565b60405180910390f35b3480156109c057600080fd5b506109db60048036038101906109d69190613997565b611c02565b005b3480156109e957600080fd5b50610a0460048036038101906109ff919061396a565b611cf2565b005b348015610a1257600080fd5b50610a2d6004803603810190610a289190613849565b611ddb565b005b348015610a3b57600080fd5b50610a44611ecb565b604051610a519190613802565b60405180910390f35b348015610a6657600080fd5b50610a816004803603810190610a7c919061396a565b611ed1565b005b348015610a8f57600080fd5b50610aaa6004803603810190610aa59190613997565b611f70565b005b348015610ab857600080fd5b50610ad36004803603810190610ace9190613849565b612131565b005b348015610ae157600080fd5b50610aea612221565b604051610af7919061375e565b60405180910390f35b348015610b0c57600080fd5b50610b15612234565b604051610b229190613802565b60405180910390f35b606060028054610b3a90613a6f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6690613a6f565b8015610bb35780601f10610b8857610100808354040283529160200191610bb3565b820191906000526020600020905b815481529060010190602001808311610b9657829003601f168201915b5050505050905090565b6000610bd1610bca612298565b84846122a0565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610c13612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790613aec565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610d08848484612469565b50610dca84610d15612298565b610dc58560405180606001604052806028815260200161445760289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7b612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b6122a0565b600190509392505050565b610ddd612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190613aec565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610eea610ed97f000000000000000000000000000000000000000000000000000000000000dead6115da565b601854612ab090919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610faf610f13612298565b84610faa8560076000610f24612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b6122a0565b6001905092915050565b610fc1612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104590613aec565b60405180910390fd5b80601b8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60125481565b60006110bb612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90613aec565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bc9190613b21565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190613b21565b6040518363ffffffff1660e01b8152600401611264929190613b4e565b602060405180830381865afa158015611281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a59190613b21565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611438578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613b21565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d59190613b21565b6040518363ffffffff1660e01b81526004016113f2929190613b4e565b6020604051808303816000875af1158015611411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114359190613b21565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611686612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a90613aec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600380546117e090613a6f565b80601f016020809104026020016040519081016040528092919081815260200182805461180c90613a6f565b80156118595780601f1061182e57610100808354040283529160200191611859565b820191906000526020600020905b81548152906001019060200180831161183c57829003601f168201915b5050505050905090565b60145481565b60175481565b600061193261187c612298565b8461192d8560405180606001604052806025815260200161447f60259139600760006118a6612298565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b6122a0565b6001905092915050565b611944612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613aec565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000611a026119fb612298565b8484612469565b506001905092915050565b611a15612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990613aec565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611aeb919061375e565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b601b5481565b601d60169054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c0a612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613aec565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611cfa612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e90613aec565b60405180910390fd5b668e1bc9bf040000811115611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc890613be9565b60405180910390fd5b8060198190555050565b611de3612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6790613aec565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611ed9612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90613aec565b60405180910390fd5b80601a8190555050565b611f78612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613aec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206b90613c7b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612139612298565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90613aec565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b60135481565b60008082846122499190613cca565b90508381101561228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228590613d4a565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690613ddc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237590613e6e565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161245c9190613802565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90613f92565b60405180910390fd5b601d60149054906101000a900460ff161561256f57612568848484612afa565b9050612a45565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126135750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265e5760195482111561265d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265490614024565b60405180910390fd5b5b6000612669306115da565b90506000601b54821015905080801561268f5750601d60149054906101000a900460ff16155b80156126e55750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126fd5750601d60159054906101000a900460ff165b1561272757601d60169054906101000a900460ff161561271d57601b5491505b61272682612ccd565b5b6127b0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128965750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128aa576128a5878787612ebe565b6128ac565b845b9050601d60179054906101000a900460ff1680156129145750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561294357601a5461293782612929896115da565b61223a90919063ffffffff16565b111561294257600080fd5b5b61299581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a359190613802565b60405180910390a3600193505050505b9392505050565b6000838311158290612a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8b9190613648565b60405180910390fd5b5060008385612aa39190614044565b9050809150509392505050565b6000612af283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a4c565b905092915050565b6000612b85826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1a82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cba9190613802565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612d266002612d18601754612d0a601254876130e590919063ffffffff16565b61315f90919063ffffffff16565b61315f90919063ffffffff16565b90506000612d3d8284612ab090919063ffffffff16565b9050612d48816131a9565b60004790506000612d79612d68600260125461315f90919063ffffffff16565b601754612ab090919063ffffffff16565b90506000612db76002612da984612d9b601254886130e590919063ffffffff16565b61315f90919063ffffffff16565b61315f90919063ffffffff16565b90506000612de283612dd4601454876130e590919063ffffffff16565b61315f90919063ffffffff16565b90506000612e0b82612dfd8588612ab090919063ffffffff16565b612ab090919063ffffffff16565b90506000811115612e4357612e42600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613425565b5b6000821115612e7957612e78600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613425565b5b600083118015612e895750600087115b15612e9957612e988784613470565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f4657612f3f6064612f31601554866130e590919063ffffffff16565b61315f90919063ffffffff16565b9050612fc4565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fc357612fc06064612fb2601654866130e590919063ffffffff16565b61315f90919063ffffffff16565b90505b5b60008111156130c85761301f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223a90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130bf9190613802565b60405180910390a35b6130db8184612ab090919063ffffffff16565b9150509392505050565b60008083036130f75760009050613159565b600082846131059190614078565b905082848261311491906140e9565b14613154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314b9061418c565b60405180910390fd5b809150505b92915050565b60006131a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613555565b905092915050565b6000600267ffffffffffffffff8111156131c6576131c56141ac565b5b6040519080825280602002602001820160405280156131f45781602001602082028036833780820191505090505b509050308160008151811061320c5761320b6141db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d79190613b21565b816001815181106132eb576132ea6141db565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061335230601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122a0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016133b6959493929190614303565b600060405180830381600087803b1580156133d057600080fd5b505af11580156133e4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161341992919061435d565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561346b573d6000803e3d6000fd5b505050565b61349d30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122a0565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806134e9611655565b426040518863ffffffff1660e01b815260040161350b9695949392919061438d565b60606040518083038185885af1158015613529573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061354e9190614403565b5050505050565b6000808311829061359c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135939190613648565b60405180910390fd5b50600083856135ab91906140e9565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135f25780820151818401526020810190506135d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061361a826135b8565b61362481856135c3565b93506136348185602086016135d4565b61363d816135fe565b840191505092915050565b60006020820190508181036000830152613662818461360f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061369a8261366f565b9050919050565b6136aa8161368f565b81146136b557600080fd5b50565b6000813590506136c7816136a1565b92915050565b6000819050919050565b6136e0816136cd565b81146136eb57600080fd5b50565b6000813590506136fd816136d7565b92915050565b6000806040838503121561371a5761371961366a565b5b6000613728858286016136b8565b9250506020613739858286016136ee565b9150509250929050565b60008115159050919050565b61375881613743565b82525050565b6000602082019050613773600083018461374f565b92915050565b6000819050919050565b600061379e6137996137948461366f565b613779565b61366f565b9050919050565b60006137b082613783565b9050919050565b60006137c2826137a5565b9050919050565b6137d2816137b7565b82525050565b60006020820190506137ed60008301846137c9565b92915050565b6137fc816136cd565b82525050565b600060208201905061381760008301846137f3565b92915050565b61382681613743565b811461383157600080fd5b50565b6000813590506138438161381d565b92915050565b600080604083850312156138605761385f61366a565b5b600061386e858286016136b8565b925050602061387f85828601613834565b9150509250929050565b6000806000606084860312156138a2576138a161366a565b5b60006138b0868287016136b8565b93505060206138c1868287016136b8565b92505060406138d2868287016136ee565b9150509250925092565b6000602082840312156138f2576138f161366a565b5b600061390084828501613834565b91505092915050565b6139128161368f565b82525050565b600060208201905061392d6000830184613909565b92915050565b600060ff82169050919050565b61394981613933565b82525050565b60006020820190506139646000830184613940565b92915050565b6000602082840312156139805761397f61366a565b5b600061398e848285016136ee565b91505092915050565b6000602082840312156139ad576139ac61366a565b5b60006139bb848285016136b8565b91505092915050565b60006139cf8261366f565b9050919050565b6139df816139c4565b82525050565b60006020820190506139fa60008301846139d6565b92915050565b60008060408385031215613a1757613a1661366a565b5b6000613a25858286016136b8565b9250506020613a36858286016136b8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a8757607f821691505b602082108103613a9a57613a99613a40565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ad66020836135c3565b9150613ae182613aa0565b602082019050919050565b60006020820190508181036000830152613b0581613ac9565b9050919050565b600081519050613b1b816136a1565b92915050565b600060208284031215613b3757613b3661366a565b5b6000613b4584828501613b0c565b91505092915050565b6000604082019050613b636000830185613909565b613b706020830184613909565b9392505050565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065717560008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b6000613bd36034836135c3565b9150613bde82613b77565b604082019050919050565b60006020820190508181036000830152613c0281613bc6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c656026836135c3565b9150613c7082613c09565b604082019050919050565b60006020820190508181036000830152613c9481613c58565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cd5826136cd565b9150613ce0836136cd565b9250828201905080821115613cf857613cf7613c9b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d34601b836135c3565b9150613d3f82613cfe565b602082019050919050565b60006020820190508181036000830152613d6381613d27565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613dc66024836135c3565b9150613dd182613d6a565b604082019050919050565b60006020820190508181036000830152613df581613db9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e586022836135c3565b9150613e6382613dfc565b604082019050919050565b60006020820190508181036000830152613e8781613e4b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eea6025836135c3565b9150613ef582613e8e565b604082019050919050565b60006020820190508181036000830152613f1981613edd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f7c6023836135c3565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061400e6028836135c3565b915061401982613fb2565b604082019050919050565b6000602082019050818103600083015261403d81614001565b9050919050565b600061404f826136cd565b915061405a836136cd565b925082820390508181111561407257614071613c9b565b5b92915050565b6000614083826136cd565b915061408e836136cd565b925082820261409c816136cd565b915082820484148315176140b3576140b2613c9b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140f4826136cd565b91506140ff836136cd565b92508261410f5761410e6140ba565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141766021836135c3565b91506141818261411a565b604082019050919050565b600060208201905081810360008301526141a581614169565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061422f61422a6142258461420a565b613779565b6136cd565b9050919050565b61423f81614214565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61427a8161368f565b82525050565b600061428c8383614271565b60208301905092915050565b6000602082019050919050565b60006142b082614245565b6142ba8185614250565b93506142c583614261565b8060005b838110156142f65781516142dd8882614280565b97506142e883614298565b9250506001810190506142c9565b5085935050505092915050565b600060a08201905061431860008301886137f3565b6143256020830187614236565b818103604083015261433781866142a5565b90506143466060830185613909565b61435360808301846137f3565b9695505050505050565b600060408201905061437260008301856137f3565b818103602083015261438481846142a5565b90509392505050565b600060c0820190506143a26000830189613909565b6143af60208301886137f3565b6143bc6040830187614236565b6143c96060830186614236565b6143d66080830185613909565b6143e360a08301846137f3565b979650505050505050565b6000815190506143fd816136d7565b92915050565b60008060006060848603121561441c5761441b61366a565b5b600061442a868287016143ee565b935050602061443b868287016143ee565b925050604061444c868287016143ee565b915050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a03d7c5613c01baed50474a7ad34909942a3d08e080273ea979f8148d2d731bf64736f6c63430008120033
Deployed Bytecode Sourcemap
13661:13014:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17290:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18456:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15289:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17567:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19725:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21657:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19604:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14084:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20426:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17476:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17953:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19978:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14476:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15404:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14305:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14795:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20700:737;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13996:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17675:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15116:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15171:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14964:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14421:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5425:145;;;;;;;;;;;;;:::i;:::-;;17381:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14880:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15008:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18179:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20289:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21482:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20110:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15337:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14362:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15224:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15451:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13903:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17802:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18970:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19374:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19221:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14921:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19868:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19082:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15503:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14836:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17290:83;17327:13;17360:5;17353:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17290:83;:::o;18456:161::-;18531:4;18548:39;18557:12;:10;:12::i;:::-;18571:7;18580:6;18548:8;:39::i;:::-;18605:4;18598:11;;18456:161;;;;:::o;15289:41::-;;;;;;;;;;;;;:::o;17567:100::-;17620:7;17647:12;;17640:19;;17567:100;:::o;19725:135::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19846:6:::1;19816:19;:27;19836:6;19816:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19725:135:::0;;:::o;21657:313::-;21755:4;21772:36;21782:6;21790:9;21801:6;21772:9;:36::i;:::-;;21819:121;21828:6;21836:12;:10;:12::i;:::-;21850:89;21888:6;21850:89;;;;;;;;;;;;;;;;;:11;:19;21862:6;21850:19;;;;;;;;;;;;;;;:33;21870:12;:10;:12::i;:::-;21850:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21819:8;:121::i;:::-;21958:4;21951:11;;21657:313;;;;;:::o;19604:113::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19701:8:::1;19682:16;;:27;;;;;;;;;;;;;;;;;;19604:113:::0;:::o;14084:81::-;;;:::o;20426:128::-;20479:7;20506:40;20523:22;20533:11;20523:9;:22::i;:::-;20506:12;;:16;;:40;;;;:::i;:::-;20499:47;;20426:128;:::o;17476:83::-;17517:5;17542:9;;;;;;;;;;;17535:16;;17476:83;:::o;17953:218::-;18041:4;18058:83;18067:12;:10;:12::i;:::-;18081:7;18090:50;18129:10;18090:11;:25;18102:12;:10;:12::i;:::-;18090:25;;;;;;;;;;;;;;;:34;18116:7;18090:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18058:8;:83::i;:::-;18159:4;18152:11;;17953:218;;;;:::o;19978:124::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20086:8:::1;20060:23;:34;;;;19978:124:::0;:::o;14476:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15404:40::-;;;;;;;;;;;;;:::o;14305:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;14795:34::-;;;;:::o;20700:737::-;20780:22;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20817:35:::1;20874:16;20817:74;;20940:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20922:53;;;20984:4;20991:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20922:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20905:110;;21057:1;21031:28;;:14;:28;;::::0;21028:201:::1;;21121:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21103:74;;;21186:4;21193:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21103:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21086:131;;21028:201;21255:14;21241:11;;:28;;;;;;;;;;;;;;;;;;21299:16;21281:15;;:34;;;;;;;;;;;;;;;;;;21373:4;21329:19;:41;21357:11;;;;;;;;;;;21329:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;21425:4;21388:12;:34;21409:11;;;;;;;;;;;21388:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20804:633;20700:737:::0;;;:::o;13996:81::-;;;;;;;;;;;;;:::o;17675:119::-;17741:7;17768:9;:18;17778:7;17768:18;;;;;;;;;;;;;;;;17761:25;;17675:119;;;:::o;15116:48::-;;;;:::o;15171:46::-;;;;:::o;14964:37::-;;;;:::o;14421:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;5200:79::-;5238:7;5265:6;;;;;;;;;;;5258:13;;5200:79;:::o;5425:145::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5529:1:::1;5492:40;;5513:6;::::0;::::1;;;;;;;;5492:40;;;;;;;;;;;;5560:1;5543:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5425:145::o:0;17381:87::-;17420:13;17453:7;17446:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:87;:::o;14880:32::-;;;;:::o;15008:43::-;;;;:::o;18179:269::-;18272:4;18289:129;18298:12;:10;:12::i;:::-;18312:7;18321:96;18360:15;18321:96;;;;;;;;;;;;;;;;;:11;:25;18333:12;:10;:12::i;:::-;18321:25;;;;;;;;;;;;;;;:34;18347:7;18321:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18289:8;:129::i;:::-;18436:4;18429:11;;18179:269;;;;:::o;20289:125::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20398:8:::1;20370:25;;:36;;;;;;;;;;;;;;;;;;20289:125:::0;:::o;21482:167::-;21560:4;21577:42;21587:12;:10;:12::i;:::-;21601:9;21612:6;21577:9;:42::i;:::-;;21637:4;21630:11;;21482:167;;;;:::o;20110:171::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20211:8:::1;20187:21;;:32;;;;;;;;;;;;;;;;;;20235:38;20264:8;20235:38;;;;;;:::i;:::-;;;;;;;;20110:171:::0;:::o;15337:26::-;;;;;;;;;;;;;:::o;14362:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;15224:55::-;;;;:::o;15451:45::-;;;;;;;;;;;;;:::o;13903:86::-;;;;;;;;;;;;;:::o;17802:143::-;17883:7;17910:11;:18;17922:5;17910:18;;;;;;;;;;;;;;;:27;17929:7;17910:27;;;;;;;;;;;;;;;;17903:34;;17802:143;;;;:::o;18970:104::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19062:4:::1;19038:12;:21;19051:7;19038:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18970:104:::0;:::o;19374:222::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19475:18:::1;19459:11;:35;;19451:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;19577:11;19562:12;:26;;;;19374:222:::0;:::o;19221:135::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19340:8:::1;19311:17;:26;19329:7;19311:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19221:135:::0;;:::o;14921:36::-;;;;:::o;19868:102::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19954:8:::1;19940:10;:22;;;;19868:102:::0;:::o;5578:244::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5687:1:::1;5667:22;;:8;:22;;::::0;5659:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5777:8;5748:38;;5769:6;::::0;::::1;;;;;;;;5748:38;;;;;;;;;;;;5806:8;5797:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5578:244:::0;:::o;19082:127::-;5344:12;:10;:12::i;:::-;5334:22;;:6;;;;;;;;;;:22;;;5326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19195:6:::1;19169:15;:23;19185:6;19169:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19082:127:::0;;:::o;15503:35::-;;;;;;;;;;;;;:::o;14836:37::-;;;;:::o;1069:181::-;1127:7;1147:9;1163:1;1159;:5;;;;:::i;:::-;1147:17;;1188:1;1183;:6;;1175:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1241:1;1234:8;;;1069:181;;;;:::o;119:115::-;172:15;215:10;200:26;;119:115;:::o;18625:337::-;18735:1;18718:19;;:5;:19;;;18710:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18816:1;18797:21;;:7;:21;;;18789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:6;18870:11;:18;18882:5;18870:18;;;;;;;;;;;;;;;:27;18889:7;18870:27;;;;;;;;;;;;;;;:36;;;;18938:7;18922:32;;18931:5;18922:32;;;18947:6;18922:32;;;;;;:::i;:::-;;;;;;;;18625:337;;;:::o;21978:1707::-;22065:4;22110:1;22092:20;;:6;:20;;;22084:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22194:1;22173:23;;:9;:23;;;22165:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22252:16;;;;;;;;;;;22249:1429;;;22302:41;22317:6;22325:9;22336:6;22302:14;:41::i;:::-;22295:48;;;;22249:1429;22399:15;:23;22415:6;22399:23;;;;;;;;;;;;;;;;;;;;;;;;;22398:24;:55;;;;;22427:15;:26;22443:9;22427:26;;;;;;;;;;;;;;;;;;;;;;;;;22426:27;22398:55;22395:170;;;22492:12;;22482:6;:22;;22474:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22395:170;22593:28;22624:24;22642:4;22624:9;:24::i;:::-;22593:55;;22663:28;22718:23;;22694:20;:47;;22663:78;;22774:23;:44;;;;;22802:16;;;;;;;;;;;22801:17;22774:44;:69;;;;;22823:12;:20;22836:6;22823:20;;;;;;;;;;;;;;;;;;;;;;;;;22822:21;22774:69;:94;;;;;22847:21;;;;;;;;;;;22774:94;22770:305;;;22906:25;;;;;;;;;;;22903:97;;;22977:23;;22954:46;;22903:97;23019:36;23034:20;23019:14;:36::i;:::-;22770:305;23111:53;23133:6;23111:53;;;;;;;;;;;;;;;;;:9;:17;23121:6;23111:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23091:9;:17;23101:6;23091:17;;;;;;;;;;;;;;;:73;;;;23181:19;23204:17;:25;23222:6;23204:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23233:17;:28;23251:9;23233:28;;;;;;;;;;;;;;;;;;;;;;;;;23204:57;23203:148;;23317:34;23325:6;23333:9;23344:6;23317:7;:34::i;:::-;23203:148;;;23308:6;23203:148;23181:170;;23371:16;;;;;;;;;;;:51;;;;;23392:19;:30;23412:9;23392:30;;;;;;;;;;;;;;;;;;;;;;;;;23391:31;23371:51;23368:133;;;23490:10;;23449:37;23474:11;23449:20;23459:9;23449;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;23441:60;;;;;;23368:133;23541:37;23566:11;23541:9;:20;23551:9;23541:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23518:9;:20;23528:9;23518:20;;;;;;;;;;;;;;;:60;;;;23617:9;23600:40;;23609:6;23600:40;;;23628:11;23600:40;;;;;;:::i;:::-;;;;;;;;23662:4;23655:11;;;;;21978:1707;;;;;;:::o;1402:192::-;1488:7;1521:1;1516;:6;;1524:12;1508:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1548:9;1564:1;1560;:5;;;;:::i;:::-;1548:17;;1585:1;1578:8;;;1402:192;;;;;:::o;1258:136::-;1316:7;1343:43;1347:1;1350;1343:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1336:50;;1258:136;;;;:::o;23693:330::-;23786:4;23823:53;23845:6;23823:53;;;;;;;;;;;;;;;;;:9;:17;23833:6;23823:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23803:9;:17;23813:6;23803:17;;;;;;;;;;;;;;;:73;;;;23910:32;23935:6;23910:9;:20;23920:9;23910:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;23887:9;:20;23897:9;23887:20;;;;;;;;;;;;;;;:55;;;;23975:9;23958:35;;23967:6;23958:35;;;23986:6;23958:35;;;;;;:::i;:::-;;;;;;;;24011:4;24004:11;;23693:330;;;;;:::o;24031:1025::-;15986:4;15967:16;;:23;;;;;;;;;;;;;;;;;;24113:19:::1;24135:65;24198:1;24135:58;24168:24;;24135:28;24147:15;;24135:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;24113:87;;24211:21;24235:24;24247:11;24235:7;:11;;:24;;;;:::i;:::-;24211:48;;24272:31;24289:13;24272:16;:31::i;:::-;24314:22;24339:21;24314:46;;24373:19;24395:52;24424:22;24444:1;24424:15;;:19;;:22;;;;:::i;:::-;24395:24;;:28;;:52;;;;:::i;:::-;24373:74;;24468:26;24497:59;24554:1;24497:52;24537:11;24497:35;24516:15;;24497:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;24468:88;;24567:21;24591:50;24629:11;24591:33;24610:13;;24591:14;:18;;:33;;;;:::i;:::-;:37;;:50;;;;:::i;:::-;24567:74;;24652:26;24681:57;24724:13;24681:38;24700:18;24681:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;24652:86;;24775:1;24754:18;:22;24751:91;;;24791:51;24812:9;;;;;;;;;;;24823:18;24791:20;:51::i;:::-;24751:91;24874:1;24858:13;:17;24855:76;;;24890:41;24911:4;;;;;;;;;;;24917:13;24890:20;:41::i;:::-;24855:76;24968:1;24947:18;:22;:41;;;;;24987:1;24973:11;:15;24947:41;24944:104;;;25003:45;25016:11;25029:18;25003:12;:45::i;:::-;24944:104;24092:964;;;;;;;16032:5:::0;16013:16;;:24;;;;;;;;;;;;;;;;;;24031:1025;:::o;26010:622::-;26096:7;26126:17;26146:1;26126:21;;26171:12;:20;26184:6;26171:20;;;;;;;;;;;;;;;;;;;;;;;;;26168:223;;;26220:38;26254:3;26220:29;26231:17;;26220:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;26208:50;;26168:223;;;26288:12;:23;26301:9;26288:23;;;;;;;;;;;;;;;;;;;;;;;;;26285:106;;;26340:39;26375:3;26340:30;26351:18;;26340:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;26328:51;;26285:106;26168:223;26426:1;26414:9;:13;26411:173;;;26471:39;26500:9;26471;:24;26489:4;26471:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;26444:9;:24;26462:4;26444:24;;;;;;;;;;;;;;;:66;;;;26555:4;26530:42;;26539:6;26530:42;;;26562:9;26530:42;;;;;;:::i;:::-;;;;;;;;26411:173;26603:21;26614:9;26603:6;:10;;:21;;;;:::i;:::-;26596:28;;;26010:622;;;;;:::o;1602:250::-;1660:7;1689:1;1684;:6;1680:47;;1714:1;1707:8;;;;1680:47;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1784:1;1779;1775;:5;;;;:::i;:::-;:10;1767:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1843:1;1836:8;;;1602:250;;;;;:::o;1860:132::-;1918:7;1945:39;1949:1;1952;1945:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1938:46;;1860:132;;;;:::o;25068:547::-;25136:21;25174:1;25160:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25136:40;;25205:4;25187;25192:1;25187:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25231:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25221:4;25226:1;25221:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25266:62;25283:4;25298:15;;;;;;;;;;;25316:11;25266:8;:62::i;:::-;25348:15;;;;;;;;;;;:66;;;25429:11;25455:1;25472:4;25499;25520:15;25348:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25572:35;25589:11;25602:4;25572:35;;;;;;;:::i;:::-;;;;;;;;25123:492;25068:547;:::o;20562:126::-;20654:9;:18;;:26;20673:6;20654:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20562:126;;:::o;25623:381::-;25712:62;25729:4;25744:15;;;;;;;;;;;25762:11;25712:8;:62::i;:::-;25796:15;;;;;;;;;;;:31;;;25835:9;25868:4;25888:11;25914:1;25931;25948:7;:5;:7::i;:::-;25970:15;25796:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25623:381;;:::o;2000:191::-;2086:7;2118:1;2114;:5;2121:12;2106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2145:9;2161:1;2157;:5;;;;:::i;:::-;2145:17;;2182:1;2175:8;;;2000:191;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:116::-;4846:21;4861:5;4846:21;:::i;:::-;4839:5;4836:32;4826:60;;4882:1;4879;4872:12;4826:60;4776:116;:::o;4898:133::-;4941:5;4979:6;4966:20;4957:29;;4995:30;5019:5;4995:30;:::i;:::-;4898:133;;;;:::o;5037:468::-;5102:6;5110;5159:2;5147:9;5138:7;5134:23;5130:32;5127:119;;;5165:79;;:::i;:::-;5127:119;5285:1;5310:53;5355:7;5346:6;5335:9;5331:22;5310:53;:::i;:::-;5300:63;;5256:117;5412:2;5438:50;5480:7;5471:6;5460:9;5456:22;5438:50;:::i;:::-;5428:60;;5383:115;5037:468;;;;;:::o;5511:619::-;5588:6;5596;5604;5653:2;5641:9;5632:7;5628:23;5624:32;5621:119;;;5659:79;;:::i;:::-;5621:119;5779:1;5804:53;5849:7;5840:6;5829:9;5825:22;5804:53;:::i;:::-;5794:63;;5750:117;5906:2;5932:53;5977:7;5968:6;5957:9;5953:22;5932:53;:::i;:::-;5922:63;;5877:118;6034:2;6060:53;6105:7;6096:6;6085:9;6081:22;6060:53;:::i;:::-;6050:63;;6005:118;5511:619;;;;;:::o;6136:323::-;6192:6;6241:2;6229:9;6220:7;6216:23;6212:32;6209:119;;;6247:79;;:::i;:::-;6209:119;6367:1;6392:50;6434:7;6425:6;6414:9;6410:22;6392:50;:::i;:::-;6382:60;;6338:114;6136:323;;;;:::o;6465:118::-;6552:24;6570:5;6552:24;:::i;:::-;6547:3;6540:37;6465:118;;:::o;6589:222::-;6682:4;6720:2;6709:9;6705:18;6697:26;;6733:71;6801:1;6790:9;6786:17;6777:6;6733:71;:::i;:::-;6589:222;;;;:::o;6817:86::-;6852:7;6892:4;6885:5;6881:16;6870:27;;6817:86;;;:::o;6909:112::-;6992:22;7008:5;6992:22;:::i;:::-;6987:3;6980:35;6909:112;;:::o;7027:214::-;7116:4;7154:2;7143:9;7139:18;7131:26;;7167:67;7231:1;7220:9;7216:17;7207:6;7167:67;:::i;:::-;7027:214;;;;:::o;7247:329::-;7306:6;7355:2;7343:9;7334:7;7330:23;7326:32;7323:119;;;7361:79;;:::i;:::-;7323:119;7481:1;7506:53;7551:7;7542:6;7531:9;7527:22;7506:53;:::i;:::-;7496:63;;7452:117;7247:329;;;;:::o;7582:::-;7641:6;7690:2;7678:9;7669:7;7665:23;7661:32;7658:119;;;7696:79;;:::i;:::-;7658:119;7816:1;7841:53;7886:7;7877:6;7866:9;7862:22;7841:53;:::i;:::-;7831:63;;7787:117;7582:329;;;;:::o;7917:104::-;7962:7;7991:24;8009:5;7991:24;:::i;:::-;7980:35;;7917:104;;;:::o;8027:142::-;8130:32;8156:5;8130:32;:::i;:::-;8125:3;8118:45;8027:142;;:::o;8175:254::-;8284:4;8322:2;8311:9;8307:18;8299:26;;8335:87;8419:1;8408:9;8404:17;8395:6;8335:87;:::i;:::-;8175:254;;;;:::o;8435:474::-;8503:6;8511;8560:2;8548:9;8539:7;8535:23;8531:32;8528:119;;;8566:79;;:::i;:::-;8528:119;8686:1;8711:53;8756:7;8747:6;8736:9;8732:22;8711:53;:::i;:::-;8701:63;;8657:117;8813:2;8839:53;8884:7;8875:6;8864:9;8860:22;8839:53;:::i;:::-;8829:63;;8784:118;8435:474;;;;;:::o;8915:180::-;8963:77;8960:1;8953:88;9060:4;9057:1;9050:15;9084:4;9081:1;9074:15;9101:320;9145:6;9182:1;9176:4;9172:12;9162:22;;9229:1;9223:4;9219:12;9250:18;9240:81;;9306:4;9298:6;9294:17;9284:27;;9240:81;9368:2;9360:6;9357:14;9337:18;9334:38;9331:84;;9387:18;;:::i;:::-;9331:84;9152:269;9101:320;;;:::o;9427:182::-;9567:34;9563:1;9555:6;9551:14;9544:58;9427:182;:::o;9615:366::-;9757:3;9778:67;9842:2;9837:3;9778:67;:::i;:::-;9771:74;;9854:93;9943:3;9854:93;:::i;:::-;9972:2;9967:3;9963:12;9956:19;;9615:366;;;:::o;9987:419::-;10153:4;10191:2;10180:9;10176:18;10168:26;;10240:9;10234:4;10230:20;10226:1;10215:9;10211:17;10204:47;10268:131;10394:4;10268:131;:::i;:::-;10260:139;;9987:419;;;:::o;10412:143::-;10469:5;10500:6;10494:13;10485:22;;10516:33;10543:5;10516:33;:::i;:::-;10412:143;;;;:::o;10561:351::-;10631:6;10680:2;10668:9;10659:7;10655:23;10651:32;10648:119;;;10686:79;;:::i;:::-;10648:119;10806:1;10831:64;10887:7;10878:6;10867:9;10863:22;10831:64;:::i;:::-;10821:74;;10777:128;10561:351;;;;:::o;10918:332::-;11039:4;11077:2;11066:9;11062:18;11054:26;;11090:71;11158:1;11147:9;11143:17;11134:6;11090:71;:::i;:::-;11171:72;11239:2;11228:9;11224:18;11215:6;11171:72;:::i;:::-;10918:332;;;;;:::o;11256:239::-;11396:34;11392:1;11384:6;11380:14;11373:58;11465:22;11460:2;11452:6;11448:15;11441:47;11256:239;:::o;11501:366::-;11643:3;11664:67;11728:2;11723:3;11664:67;:::i;:::-;11657:74;;11740:93;11829:3;11740:93;:::i;:::-;11858:2;11853:3;11849:12;11842:19;;11501:366;;;:::o;11873:419::-;12039:4;12077:2;12066:9;12062:18;12054:26;;12126:9;12120:4;12116:20;12112:1;12101:9;12097:17;12090:47;12154:131;12280:4;12154:131;:::i;:::-;12146:139;;11873:419;;;:::o;12298:225::-;12438:34;12434:1;12426:6;12422:14;12415:58;12507:8;12502:2;12494:6;12490:15;12483:33;12298:225;:::o;12529:366::-;12671:3;12692:67;12756:2;12751:3;12692:67;:::i;:::-;12685:74;;12768:93;12857:3;12768:93;:::i;:::-;12886:2;12881:3;12877:12;12870:19;;12529:366;;;:::o;12901:419::-;13067:4;13105:2;13094:9;13090:18;13082:26;;13154:9;13148:4;13144:20;13140:1;13129:9;13125:17;13118:47;13182:131;13308:4;13182:131;:::i;:::-;13174:139;;12901:419;;;:::o;13326:180::-;13374:77;13371:1;13364:88;13471:4;13468:1;13461:15;13495:4;13492:1;13485:15;13512:191;13552:3;13571:20;13589:1;13571:20;:::i;:::-;13566:25;;13605:20;13623:1;13605:20;:::i;:::-;13600:25;;13648:1;13645;13641:9;13634:16;;13669:3;13666:1;13663:10;13660:36;;;13676:18;;:::i;:::-;13660:36;13512:191;;;;:::o;13709:177::-;13849:29;13845:1;13837:6;13833:14;13826:53;13709:177;:::o;13892:366::-;14034:3;14055:67;14119:2;14114:3;14055:67;:::i;:::-;14048:74;;14131:93;14220:3;14131:93;:::i;:::-;14249:2;14244:3;14240:12;14233:19;;13892:366;;;:::o;14264:419::-;14430:4;14468:2;14457:9;14453:18;14445:26;;14517:9;14511:4;14507:20;14503:1;14492:9;14488:17;14481:47;14545:131;14671:4;14545:131;:::i;:::-;14537:139;;14264:419;;;:::o;14689:223::-;14829:34;14825:1;14817:6;14813:14;14806:58;14898:6;14893:2;14885:6;14881:15;14874:31;14689:223;:::o;14918:366::-;15060:3;15081:67;15145:2;15140:3;15081:67;:::i;:::-;15074:74;;15157:93;15246:3;15157:93;:::i;:::-;15275:2;15270:3;15266:12;15259:19;;14918:366;;;:::o;15290:419::-;15456:4;15494:2;15483:9;15479:18;15471:26;;15543:9;15537:4;15533:20;15529:1;15518:9;15514:17;15507:47;15571:131;15697:4;15571:131;:::i;:::-;15563:139;;15290:419;;;:::o;15715:221::-;15855:34;15851:1;15843:6;15839:14;15832:58;15924:4;15919:2;15911:6;15907:15;15900:29;15715:221;:::o;15942:366::-;16084:3;16105:67;16169:2;16164:3;16105:67;:::i;:::-;16098:74;;16181:93;16270:3;16181:93;:::i;:::-;16299:2;16294:3;16290:12;16283:19;;15942:366;;;:::o;16314:419::-;16480:4;16518:2;16507:9;16503:18;16495:26;;16567:9;16561:4;16557:20;16553:1;16542:9;16538:17;16531:47;16595:131;16721:4;16595:131;:::i;:::-;16587:139;;16314:419;;;:::o;16739:224::-;16879:34;16875:1;16867:6;16863:14;16856:58;16948:7;16943:2;16935:6;16931:15;16924:32;16739:224;:::o;16969:366::-;17111:3;17132:67;17196:2;17191:3;17132:67;:::i;:::-;17125:74;;17208:93;17297:3;17208:93;:::i;:::-;17326:2;17321:3;17317:12;17310:19;;16969:366;;;:::o;17341:419::-;17507:4;17545:2;17534:9;17530:18;17522:26;;17594:9;17588:4;17584:20;17580:1;17569:9;17565:17;17558:47;17622:131;17748:4;17622:131;:::i;:::-;17614:139;;17341:419;;;:::o;17766:222::-;17906:34;17902:1;17894:6;17890:14;17883:58;17975:5;17970:2;17962:6;17958:15;17951:30;17766:222;:::o;17994:366::-;18136:3;18157:67;18221:2;18216:3;18157:67;:::i;:::-;18150:74;;18233:93;18322:3;18233:93;:::i;:::-;18351:2;18346:3;18342:12;18335:19;;17994:366;;;:::o;18366:419::-;18532:4;18570:2;18559:9;18555:18;18547:26;;18619:9;18613:4;18609:20;18605:1;18594:9;18590:17;18583:47;18647:131;18773:4;18647:131;:::i;:::-;18639:139;;18366:419;;;:::o;18791:227::-;18931:34;18927:1;18919:6;18915:14;18908:58;19000:10;18995:2;18987:6;18983:15;18976:35;18791:227;:::o;19024:366::-;19166:3;19187:67;19251:2;19246:3;19187:67;:::i;:::-;19180:74;;19263:93;19352:3;19263:93;:::i;:::-;19381:2;19376:3;19372:12;19365:19;;19024:366;;;:::o;19396:419::-;19562:4;19600:2;19589:9;19585:18;19577:26;;19649:9;19643:4;19639:20;19635:1;19624:9;19620:17;19613:47;19677:131;19803:4;19677:131;:::i;:::-;19669:139;;19396:419;;;:::o;19821:194::-;19861:4;19881:20;19899:1;19881:20;:::i;:::-;19876:25;;19915:20;19933:1;19915:20;:::i;:::-;19910:25;;19959:1;19956;19952:9;19944:17;;19983:1;19977:4;19974:11;19971:37;;;19988:18;;:::i;:::-;19971:37;19821:194;;;;:::o;20021:410::-;20061:7;20084:20;20102:1;20084:20;:::i;:::-;20079:25;;20118:20;20136:1;20118:20;:::i;:::-;20113:25;;20173:1;20170;20166:9;20195:30;20213:11;20195:30;:::i;:::-;20184:41;;20374:1;20365:7;20361:15;20358:1;20355:22;20335:1;20328:9;20308:83;20285:139;;20404:18;;:::i;:::-;20285:139;20069:362;20021:410;;;;:::o;20437:180::-;20485:77;20482:1;20475:88;20582:4;20579:1;20572:15;20606:4;20603:1;20596:15;20623:185;20663:1;20680:20;20698:1;20680:20;:::i;:::-;20675:25;;20714:20;20732:1;20714:20;:::i;:::-;20709:25;;20753:1;20743:35;;20758:18;;:::i;:::-;20743:35;20800:1;20797;20793:9;20788:14;;20623:185;;;;:::o;20814:220::-;20954:34;20950:1;20942:6;20938:14;20931:58;21023:3;21018:2;21010:6;21006:15;20999:28;20814:220;:::o;21040:366::-;21182:3;21203:67;21267:2;21262:3;21203:67;:::i;:::-;21196:74;;21279:93;21368:3;21279:93;:::i;:::-;21397:2;21392:3;21388:12;21381:19;;21040:366;;;:::o;21412:419::-;21578:4;21616:2;21605:9;21601:18;21593:26;;21665:9;21659:4;21655:20;21651:1;21640:9;21636:17;21629:47;21693:131;21819:4;21693:131;:::i;:::-;21685:139;;21412:419;;;:::o;21837:180::-;21885:77;21882:1;21875:88;21982:4;21979:1;21972:15;22006:4;22003:1;21996:15;22023:180;22071:77;22068:1;22061:88;22168:4;22165:1;22158:15;22192:4;22189:1;22182:15;22209:85;22254:7;22283:5;22272:16;;22209:85;;;:::o;22300:158::-;22358:9;22391:61;22409:42;22418:32;22444:5;22418:32;:::i;:::-;22409:42;:::i;:::-;22391:61;:::i;:::-;22378:74;;22300:158;;;:::o;22464:147::-;22559:45;22598:5;22559:45;:::i;:::-;22554:3;22547:58;22464:147;;:::o;22617:114::-;22684:6;22718:5;22712:12;22702:22;;22617:114;;;:::o;22737:184::-;22836:11;22870:6;22865:3;22858:19;22910:4;22905:3;22901:14;22886:29;;22737:184;;;;:::o;22927:132::-;22994:4;23017:3;23009:11;;23047:4;23042:3;23038:14;23030:22;;22927:132;;;:::o;23065:108::-;23142:24;23160:5;23142:24;:::i;:::-;23137:3;23130:37;23065:108;;:::o;23179:179::-;23248:10;23269:46;23311:3;23303:6;23269:46;:::i;:::-;23347:4;23342:3;23338:14;23324:28;;23179:179;;;;:::o;23364:113::-;23434:4;23466;23461:3;23457:14;23449:22;;23364:113;;;:::o;23513:732::-;23632:3;23661:54;23709:5;23661:54;:::i;:::-;23731:86;23810:6;23805:3;23731:86;:::i;:::-;23724:93;;23841:56;23891:5;23841:56;:::i;:::-;23920:7;23951:1;23936:284;23961:6;23958:1;23955:13;23936:284;;;24037:6;24031:13;24064:63;24123:3;24108:13;24064:63;:::i;:::-;24057:70;;24150:60;24203:6;24150:60;:::i;:::-;24140:70;;23996:224;23983:1;23980;23976:9;23971:14;;23936:284;;;23940:14;24236:3;24229:10;;23637:608;;;23513:732;;;;:::o;24251:831::-;24514:4;24552:3;24541:9;24537:19;24529:27;;24566:71;24634:1;24623:9;24619:17;24610:6;24566:71;:::i;:::-;24647:80;24723:2;24712:9;24708:18;24699:6;24647:80;:::i;:::-;24774:9;24768:4;24764:20;24759:2;24748:9;24744:18;24737:48;24802:108;24905:4;24896:6;24802:108;:::i;:::-;24794:116;;24920:72;24988:2;24977:9;24973:18;24964:6;24920:72;:::i;:::-;25002:73;25070:3;25059:9;25055:19;25046:6;25002:73;:::i;:::-;24251:831;;;;;;;;:::o;25088:483::-;25259:4;25297:2;25286:9;25282:18;25274:26;;25310:71;25378:1;25367:9;25363:17;25354:6;25310:71;:::i;:::-;25428:9;25422:4;25418:20;25413:2;25402:9;25398:18;25391:48;25456:108;25559:4;25550:6;25456:108;:::i;:::-;25448:116;;25088:483;;;;;:::o;25577:807::-;25826:4;25864:3;25853:9;25849:19;25841:27;;25878:71;25946:1;25935:9;25931:17;25922:6;25878:71;:::i;:::-;25959:72;26027:2;26016:9;26012:18;26003:6;25959:72;:::i;:::-;26041:80;26117:2;26106:9;26102:18;26093:6;26041:80;:::i;:::-;26131;26207:2;26196:9;26192:18;26183:6;26131:80;:::i;:::-;26221:73;26289:3;26278:9;26274:19;26265:6;26221:73;:::i;:::-;26304;26372:3;26361:9;26357:19;26348:6;26304:73;:::i;:::-;25577:807;;;;;;;;;:::o;26390:143::-;26447:5;26478:6;26472:13;26463:22;;26494:33;26521:5;26494:33;:::i;:::-;26390:143;;;;:::o;26539:663::-;26627:6;26635;26643;26692:2;26680:9;26671:7;26667:23;26663:32;26660:119;;;26698:79;;:::i;:::-;26660:119;26818:1;26843:64;26899:7;26890:6;26879:9;26875:22;26843:64;:::i;:::-;26833:74;;26789:128;26956:2;26982:64;27038:7;27029:6;27018:9;27014:22;26982:64;:::i;:::-;26972:74;;26927:129;27095:2;27121:64;27177:7;27168:6;27157:9;27153:22;27121:64;:::i;:::-;27111:74;;27066:129;26539:663;;;;;:::o
Swarm Source
ipfs://a03d7c5613c01baed50474a7ad34909942a3d08e080273ea979f8148d2d731bf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,153.25 | 0.0103 | $22.1 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.