Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
924,384.819906 FLOKIMOTO
Holders
94
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
506.245779 FLOKIMOTOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SatoshiFlokimoto
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-14 */ /** *Submitted for verification at Etherscan.io *https://satoshiflokimoto.com/ *!anti-bot device: 65% Devtax 5 minutes post launch, 4% Devtax 1 hour post launch, 1% Devtax after! */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present 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 renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); 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); } contract SatoshiFlokimoto is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private constant _name = "Satoshi Flokomoto"; string private constant _symbol = "FLOKIMOTO"; uint8 private constant _decimals = 6; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000 uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2% uint256 public j_maxtxn = 20 * 1e3 * 1e6; //1% uint256 public swapAmount = 7 * 1e2 * 1e6; //.07% uint256 private buyEthUpperLimit = 100 * 1e14; // 0.01 // fees uint256 public j_liqBuy = 3; uint256 public j_burnBuy = 3; uint256 public j_ethBuy = 3; uint256 public j_devBuy = 65; uint256 public j_liqSell = 3; uint256 public j_burnSell = 3; uint256 public j_ethSell = 3; uint256 public j_devSell = 65; uint256 private j_previousLiqFee = j_liqFee; uint256 private j_previousBurnFee = j_burnFee; uint256 private j_previousEthFee = j_ethFee; uint256 private j_previousDevTax = j_devTax; uint256 private j_liqFee; uint256 private j_burnFee; uint256 private j_ethFee; uint256 private j_devTax; uint256 public _totalBurned; struct FeeBreakdown { uint256 tLiq; uint256 tBurn; uint256 tEth; uint256 tDev; uint256 tAmount; } mapping(address => bool) private bots; address payable private marketingWallet = payable(0x7f08B3e00190E5326c19c4a72AC1d59E49234735); address payable private devWallet = payable(0x7f08B3e00190E5326c19c4a72AC1d59E49234735); address payable public dead = payable(0x000000000000000000000000000000000000dEaD); address ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private swapping = false; bool public burnMode = false; modifier lockSwap { swapping = true; _; swapping = false; } constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _balances[_msgSender()] = _tTotal; _balances[address(0xa727E95AEe637De648F4a22e3A78672A16E36d71)] = _tTotal.div(100); _balances[address(0x6FCaC154d8376693d25cf57a285a320fF77DE644)] = _tTotal.div(100); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[dead] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { _transfer(sender, recipient, amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance")); return true; } function totalBurned() public view returns (uint256) { return _totalBurned; } function burning(address _account, uint _amount) private { require( _amount <= balanceOf(_account)); _balances[_account] = _balances[_account].sub(_amount); _tTotal = _tTotal.sub(_amount); _totalBurned = _totalBurned.add(_amount); emit Transfer(_account, address(0), _amount); } function setActualFee() external { require(_msgSender() == marketingWallet); j_liqBuy = 1; j_burnBuy = 1; j_ethBuy = 1; j_devBuy = 4; j_liqSell = 1; j_burnSell = 1; j_ethSell = 1; j_devSell = 4; } function removeAllFee() private { if (j_burnFee == 0 && j_liqFee == 0 && j_ethFee == 0 && j_devTax == 0) return; j_previousBurnFee = j_burnFee; j_previousLiqFee = j_liqFee; j_previousEthFee = j_ethFee; j_previousDevTax = j_devTax; j_burnFee = 0; j_liqFee = 0; j_ethFee = 0; j_devTax = 0; } function restoreAllFee() private { j_liqFee = j_previousLiqFee; j_burnFee = j_previousBurnFee; j_ethFee = j_previousEthFee; j_devTax = j_previousDevTax; } function removeDevTax() external { require(_msgSender() == marketingWallet); j_devSell = 1; j_liqSell = 1; j_liqBuy = 1; j_devBuy = 1; } 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!bots[from] && !bots[to]); bool takeFee = true; if (from != owner() && to != owner() && from != address(this) && to != address(this)) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) { require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet."); require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction"); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) { j_liqFee = j_liqBuy; j_burnFee = j_burnBuy; j_ethFee = j_ethBuy; j_devTax = j_devBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) { j_liqFee = j_liqSell; j_burnFee = j_burnSell; j_ethFee = j_ethSell; j_devTax = j_devSell; } if (!swapping && from != uniswapV2Pair) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > swapAmount) { swapAndLiquify(contractTokenBalance); } uint256 contractETHBalance = address(this).balance; if (!burnMode && (contractETHBalance > 0)) { sendETHToFee(address(this).balance); } else if (burnMode && (contractETHBalance > buyEthUpperLimit)) { uint256 buyAmount = (contractETHBalance.div(2)); buyEth(buyAmount); } } } if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _transferAgain(from, to, amount, takeFee); restoreAllFee(); } function setMaxTxn(uint256 maxTransaction) external { require(maxTransaction >= 10 * 1e3 * 1e6,"negative ghost rider"); require(_msgSender() == marketingWallet); j_maxtxn = maxTransaction; } function swapTokensForEth(uint256 tokenAmount) private lockSwap { 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); } function swapETHForTokens(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(ETH); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, // accept any amount of Tokens path, dead, // Burn address block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable marketingWallet, block.timestamp ); } function swapAndLiquify(uint256 contractTokenBalance) private lockSwap { uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_ethFee).add(j_devTax).add(j_liqFee)); uint256 half = autoLPamount.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(otherHalf); uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf); addLiquidity(half, newBalance); } function sendETHToFee(uint256 amount) private { marketingWallet.transfer((amount).div(2)); devWallet.transfer((amount).div(2)); } function manualSwap() external { require(_msgSender() == marketingWallet); uint256 contractBalance = balanceOf(address(this)); if (contractBalance > 0) { swapTokensForEth(contractBalance); } } function manualSend() external { require(_msgSender() == marketingWallet); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(contractETHBalance); } } function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee) { removeAllFee(); } FeeBreakdown memory fees; fees.tBurn = amount.mul(j_burnFee).div(100); fees.tLiq = amount.mul(j_liqFee).div(100); fees.tEth = amount.mul(j_ethFee).div(100); fees.tDev = amount.mul(j_devTax).div(100); fees.tAmount = amount.sub(fees.tEth).sub(fees.tDev).sub(fees.tBurn).sub(fees.tLiq); uint256 amountPreBurn = amount.sub(fees.tBurn); burning(sender, fees.tBurn); _balances[sender] = _balances[sender].sub(amountPreBurn); _balances[recipient] = _balances[recipient].add(fees.tAmount); _balances[address(this)] = _balances[address(this)].add(fees.tEth).add(fees.tDev).add(fees.tBurn.add(fees.tLiq)); if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) { burning(uniswapV2Pair, fees.tBurn); } emit Transfer(sender, recipient, fees.tAmount); restoreAllFee(); } receive() external payable {} function setMaxWalletAmount(uint256 maxWalletAmount) external { require(_msgSender() == marketingWallet); require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply"); _maxWalletAmount = maxWalletAmount; } function setSwapAmount(uint256 _swapAmount) external { require(_msgSender() == marketingWallet); swapAmount = _swapAmount; } function turnOnTheBurn() public onlyOwner { burnMode = true; } function buyEth(uint256 amount) private { if (amount > 0) { swapETHForTokens(amount); } } function setBuyEthRate(uint256 buyEthToken) external { require(_msgSender() == marketingWallet); buyEthUpperLimit = buyEthToken; } function setDevWallet(address payable _address) external onlyOwner { devWallet = _address; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_devBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_devSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_ethBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_ethSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeDevTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setActualFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyEthToken","type":"uint256"}],"name":"setBuyEthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"turnOnTheBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405264e8d4a510006005556404a817c8006006556404a817c8006007556329b92700600855662386f26fc100006009556003600a556003600b556003600c556041600d556003600e556003600f5560036010556041601155601654601255601754601355601854601455601954601555737f08b3e00190e5326c19c4a72ac1d59e49234735601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737f08b3e00190e5326c19c4a72ac1d59e49234735601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506000602160156101000a81548160ff021916908315150217905550348015620001f757600080fd5b5060006200020a6200081760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037491906200096c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040291906200096c565b6040518363ffffffff1660e01b815260040162000421929190620009af565b6020604051808303816000875af115801562000441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046791906200096c565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460026000620004be6200081760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200051960646005546200081f60201b620014b01790919060201c565b6002600073a727e95aee637de648f4a22e3a78672a16e36d7173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200058d60646005546200081f60201b620014b01790919060201c565b60026000736fcac154d8376693d25cf57a285a320ff77de64473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620005fa6200087160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007a76200081760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620008089190620009f7565b60405180910390a35062000b43565b600033905090565b60006200086983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200089a60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008db919062000ab8565b60405180910390fd5b5060008385620008f5919062000b0b565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009348262000907565b9050919050565b620009468162000927565b81146200095257600080fd5b50565b60008151905062000966816200093b565b92915050565b60006020828403121562000985576200098462000902565b5b6000620009958482850162000955565b91505092915050565b620009a98162000927565b82525050565b6000604082019050620009c660008301856200099e565b620009d560208301846200099e565b9392505050565b6000819050919050565b620009f181620009dc565b82525050565b600060208201905062000a0e6000830184620009e6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000a5057808201518184015260208101905062000a33565b8381111562000a60576000848401525b50505050565b6000601f19601f8301169050919050565b600062000a848262000a14565b62000a90818562000a1f565b935062000aa281856020860162000a30565b62000aad8162000a66565b840191505092915050565b6000602082019050818103600083015262000ad4818462000a77565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b1882620009dc565b915062000b2583620009dc565b92508262000b385762000b3762000adc565b5b828204905092915050565b6143418062000b536000396000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063d9f7e4df116100ab578063ec6d9b2d1161006f578063ec6d9b2d1461081a578063f2fde38b14610845578063f42938901461086e578063fc588c0414610885578063fd01bd4c146108ae57610246565b8063d9f7e4df14610747578063dc903ba114610772578063dd62ed3e1461079d578063de7d40ac146107da578063e632313c146107f157610246565b806395d89b41116100f257806395d89b411461065e578063a55d702214610689578063a9059cbb146106b4578063af465a27146106f1578063d89135cd1461071c57610246565b806370a0823114610589578063715018a6146105c65780638da5cb5b146105dd5780638ea78153146106085780639226fa961461063357610246565b806323b872dd116101bc57806336cf7c871161018057806336cf7c87146104da57806349bd5a5e1461050557806351bc3c85146105305780635dbc2fe1146105475780636c0a24eb1461055e57610246565b806323b872dd146103f357806323bbf9e71461043057806327a14fc21461045b5780632e8fa82114610484578063313ce567146104af57610246565b80631694505e116102035780631694505e1461031e57806318160ddd146103495780631cabcc4f146103745780631f53ac021461039f578063233296f0146103c857610246565b806306fdde031461024b578063072c8c1214610276578063080219e21461029f578063095ea7b3146102b65780630cdf2187146102f357610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606108d9565b60405161026d9190613397565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906133f4565b610916565b005b3480156102ab57600080fd5b506102b4610981565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061347f565b610a24565b6040516102ea91906134da565b60405180910390f35b3480156102ff57600080fd5b50610308610a42565b6040516103159190613504565b60405180910390f35b34801561032a57600080fd5b50610333610a48565b604051610340919061357e565b60405180910390f35b34801561035557600080fd5b5061035e610a6e565b60405161036b9190613504565b60405180910390f35b34801561038057600080fd5b50610389610a78565b6040516103969190613504565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906135d7565b610a7e565b005b3480156103d457600080fd5b506103dd610b57565b6040516103ea9190613504565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613604565b610b5d565b60405161042791906134da565b60405180910390f35b34801561043c57600080fd5b50610445610c36565b6040516104529190613504565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906133f4565b610c3c565b005b34801561049057600080fd5b50610499610cfe565b6040516104a69190613504565b60405180910390f35b3480156104bb57600080fd5b506104c4610d04565b6040516104d19190613673565b60405180910390f35b3480156104e657600080fd5b506104ef610d0d565b6040516104fc919061369d565b60405180910390f35b34801561051157600080fd5b5061051a610d33565b60405161052791906136c7565b60405180910390f35b34801561053c57600080fd5b50610545610d59565b005b34801561055357600080fd5b5061055c610ddd565b005b34801561056a57600080fd5b50610573610e8f565b6040516105809190613504565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab91906136e2565b610e95565b6040516105bd9190613504565b60405180910390f35b3480156105d257600080fd5b506105db610ede565b005b3480156105e957600080fd5b506105f2611031565b6040516105ff91906136c7565b60405180910390f35b34801561061457600080fd5b5061061d61105a565b60405161062a91906134da565b60405180910390f35b34801561063f57600080fd5b5061064861106d565b6040516106559190613504565b60405180910390f35b34801561066a57600080fd5b50610673611073565b6040516106809190613397565b60405180910390f35b34801561069557600080fd5b5061069e6110b0565b6040516106ab9190613504565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061347f565b6110b6565b6040516106e891906134da565b60405180910390f35b3480156106fd57600080fd5b506107066110d4565b6040516107139190613504565b60405180910390f35b34801561072857600080fd5b506107316110da565b60405161073e9190613504565b60405180910390f35b34801561075357600080fd5b5061075c6110e4565b6040516107699190613504565b60405180910390f35b34801561077e57600080fd5b506107876110ea565b6040516107949190613504565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf919061370f565b6110f0565b6040516107d19190613504565b60405180910390f35b3480156107e657600080fd5b506107ef611177565b005b3480156107fd57600080fd5b50610818600480360381019061081391906133f4565b6111fa565b005b34801561082657600080fd5b5061082f611265565b60405161083c9190613504565b60405180910390f35b34801561085157600080fd5b5061086c600480360381019061086791906136e2565b61126b565b005b34801561087a57600080fd5b5061088361137b565b005b34801561089157600080fd5b506108ac60048036038101906108a791906133f4565b6113f7565b005b3480156108ba57600080fd5b506108c36114aa565b6040516108d09190613504565b60405180910390f35b60606040518060400160405280601181526020017f5361746f73686920466c6f6b6f6d6f746f000000000000000000000000000000815250905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109576114fa565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b8060098190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c26114fa565b73ffffffffffffffffffffffffffffffffffffffff16146109e257600080fd5b6001600a819055506001600b819055506001600c819055506004600d819055506001600e819055506001600f8190555060016010819055506004601181905550565b6000610a38610a316114fa565b8484611502565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b610a866114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a9061379b565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6000610b6a8484846116cb565b610c2b84610b766114fa565b610c26856040518060600160405280602881526020016142e460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120619092919063ffffffff16565b611502565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b610cb360c86005546114b090919063ffffffff16565b8111610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb9061382d565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9a6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57600080fd5b6000610dc530610e95565b90506000811115610dda57610dd9816120c5565b5b50565b610de56114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e699061379b565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee66114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a9061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60105481565b60606040518060400160405280600981526020017f464c4f4b494d4f544f0000000000000000000000000000000000000000000000815250905090565b600c5481565b60006110ca6110c36114fa565b84846116cb565b6001905092915050565b60055481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86114fa565b73ffffffffffffffffffffffffffffffffffffffff16146111d857600080fd5b60016011819055506001600e819055506001600a819055506001600d81905550565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123b6114fa565b73ffffffffffffffffffffffffffffffffffffffff161461125b57600080fd5b8060088190555050565b600d5481565b6112736114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f79061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611366906138bf565b60405180910390fd5b6113788161233e565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bc6114fa565b73ffffffffffffffffffffffffffffffffffffffff16146113dc57600080fd5b600047905060008111156113f4576113f381612402565b5b50565b6402540be40081101561143f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114369061392b565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114806114fa565b73ffffffffffffffffffffffffffffffffffffffff16146114a057600080fd5b8060078190555050565b601a5481565b60006114f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124fd565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611568906139bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d790613a4f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116be9190613504565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613ae1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090613b73565b60405180910390fd5b600081116117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390613c05565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118905750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61189957600080fd5b6000600190506118a7611031565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191557506118e5611031565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611adf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611b8a57600654611b0383611af586610e95565b61256090919063ffffffff16565b1115611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613c97565b60405180910390fd5b600754821115611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613d29565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8b5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ce15750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0b57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611db65750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e625750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8c57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611ef75750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f9b576000611f0730610e95565b9050600854811115611f1d57611f1c816125be565b5b6000479050602160159054906101000a900460ff16158015611f3f5750600081115b15611f5257611f4d47612402565b611f98565b602160159054906101000a900460ff168015611f6f575060095481115b15611f97576000611f8a6002836114b090919063ffffffff16565b9050611f95816126e7565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061203d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561204757600090505b612053848484846126fd565b61205b612cc7565b50505050565b60008383111582906120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a09190613397565b60405180910390fd5b50600083856120b89190613d78565b9050809150509392505050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120fd576120fc613dac565b5b60405190808252806020026020018201604052801561212b5781602001602082028036833780820191505090505b509050308160008151811061214357612142613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220e9190613e1f565b8160018151811061222257612221613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061228930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122ed959493929190613f45565b600060405180830381600087803b15801561230757600080fd5b505af115801561231b573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124526002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561247d573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124ce6002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124f9573d6000803e3d6000fd5b5050565b60008083118290612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b9190613397565b60405180910390fd5b50600083856125539190613fce565b9050809150509392505050565b600080828461256f9190613fff565b9050838110156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab906140a1565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff021916908315150217905550600061264061261d60165461260f60195461260160185460175461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b61263284601654612ced90919063ffffffff16565b6114b090919063ffffffff16565b905060006126586002836114b090919063ffffffff16565b9050600061266f8285612d6790919063ffffffff16565b9050600047905061267f826120c5565b60006126b8836126aa8661269c8647612d6790919063ffffffff16565b612ced90919063ffffffff16565b6114b090919063ffffffff16565b90506126c48482612db1565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156126fa576126f981612eb1565b5b50565b8061270b5761270a61310a565b5b6127136132cf565b61273b606461272d60175486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81602001818152505061276c606461275e60165486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81600001818152505061279d606461278f60185486612ced90919063ffffffff16565b6114b090919063ffffffff16565b8160400181815250506127ce60646127c060195486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81606001818152505061283081600001516128228360200151612814856060015161280687604001518a612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b8160800181815250506000612852826020015185612d6790919063ffffffff16565b9050612862868360200151613185565b6128b481600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294d8260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a286129ae8360000151846020015161256090919063ffffffff16565b612a1a8460600151612a0c8660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff168015612ad55750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b0d57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b675750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612c185750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612c175750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612c4e57612c4d602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360200151613185565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612caf9190613504565b60405180910390a3612cbf612cc7565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b6000808303612cff5760009050612d61565b60008284612d0d91906140c1565b9050828482612d1c9190613fce565b14612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061418d565b60405180910390fd5b809150505b92915050565b6000612da983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612061565b905092915050565b612dde30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e67969594939291906141ce565b60606040518083038185885af1158015612e85573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eaa9190614244565b5050505050565b6000600267ffffffffffffffff811115612ece57612ecd613dac565b5b604051908082528060200260200182016040528015612efc5781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613e1f565b81600081518110612fa457612fa3613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061301557613014613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016130d49493929190614297565b6000604051808303818588803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b50505050505050565b600060175414801561311e57506000601654145b801561312c57506000601854145b801561313a57506000601954145b6131835760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b61318e82610e95565b81111561319a57600080fd5b6131ec81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324481600554612d6790919063ffffffff16565b60058190555061325f81601a5461256090919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132c39190613504565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561333857808201518184015260208101905061331d565b83811115613347576000848401525b50505050565b6000601f19601f8301169050919050565b6000613369826132fe565b6133738185613309565b935061338381856020860161331a565b61338c8161334d565b840191505092915050565b600060208201905081810360008301526133b1818461335e565b905092915050565b600080fd5b6000819050919050565b6133d1816133be565b81146133dc57600080fd5b50565b6000813590506133ee816133c8565b92915050565b60006020828403121561340a576134096133b9565b5b6000613418848285016133df565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344c82613421565b9050919050565b61345c81613441565b811461346757600080fd5b50565b60008135905061347981613453565b92915050565b60008060408385031215613496576134956133b9565b5b60006134a48582860161346a565b92505060206134b5858286016133df565b9150509250929050565b60008115159050919050565b6134d4816134bf565b82525050565b60006020820190506134ef60008301846134cb565b92915050565b6134fe816133be565b82525050565b600060208201905061351960008301846134f5565b92915050565b6000819050919050565b600061354461353f61353a84613421565b61351f565b613421565b9050919050565b600061355682613529565b9050919050565b60006135688261354b565b9050919050565b6135788161355d565b82525050565b6000602082019050613593600083018461356f565b92915050565b60006135a482613421565b9050919050565b6135b481613599565b81146135bf57600080fd5b50565b6000813590506135d1816135ab565b92915050565b6000602082840312156135ed576135ec6133b9565b5b60006135fb848285016135c2565b91505092915050565b60008060006060848603121561361d5761361c6133b9565b5b600061362b8682870161346a565b935050602061363c8682870161346a565b925050604061364d868287016133df565b9150509250925092565b600060ff82169050919050565b61366d81613657565b82525050565b60006020820190506136886000830184613664565b92915050565b61369781613599565b82525050565b60006020820190506136b2600083018461368e565b92915050565b6136c181613441565b82525050565b60006020820190506136dc60008301846136b8565b92915050565b6000602082840312156136f8576136f76133b9565b5b60006137068482850161346a565b91505092915050565b60008060408385031215613726576137256133b9565b5b60006137348582860161346a565b92505060206137458582860161346a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613785602083613309565b91506137908261374f565b602082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b6000613817602a83613309565b9150613822826137bb565b604082019050919050565b600060208201905081810360008301526138468161380a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138a9602683613309565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613915601483613309565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139a7602483613309565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a39602283613309565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613acb602583613309565b9150613ad682613a6f565b604082019050919050565b60006020820190508181036000830152613afa81613abe565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b5d602383613309565b9150613b6882613b01565b604082019050919050565b60006020820190508181036000830152613b8c81613b50565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bef602983613309565b9150613bfa82613b93565b604082019050919050565b60006020820190508181036000830152613c1e81613be2565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613c81602b83613309565b9150613c8c82613c25565b604082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613d13602c83613309565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d83826133be565b9150613d8e836133be565b925082821015613da157613da0613d49565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613e1981613453565b92915050565b600060208284031215613e3557613e346133b9565b5b6000613e4384828501613e0a565b91505092915050565b6000819050919050565b6000613e71613e6c613e6784613e4c565b61351f565b6133be565b9050919050565b613e8181613e56565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ebc81613441565b82525050565b6000613ece8383613eb3565b60208301905092915050565b6000602082019050919050565b6000613ef282613e87565b613efc8185613e92565b9350613f0783613ea3565b8060005b83811015613f38578151613f1f8882613ec2565b9750613f2a83613eda565b925050600181019050613f0b565b5085935050505092915050565b600060a082019050613f5a60008301886134f5565b613f676020830187613e78565b8181036040830152613f798186613ee7565b9050613f8860608301856136b8565b613f9560808301846134f5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd9826133be565b9150613fe4836133be565b925082613ff457613ff3613f9f565b5b828204905092915050565b600061400a826133be565b9150614015836133be565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404a57614049613d49565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408b601b83613309565b915061409682614055565b602082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b60006140cc826133be565b91506140d7836133be565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141105761410f613d49565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614177602183613309565b91506141828261411b565b604082019050919050565b600060208201905081810360008301526141a68161416a565b9050919050565b60006141b88261354b565b9050919050565b6141c8816141ad565b82525050565b600060c0820190506141e360008301896136b8565b6141f060208301886134f5565b6141fd6040830187613e78565b61420a6060830186613e78565b61421760808301856141bf565b61422460a08301846134f5565b979650505050505050565b60008151905061423e816133c8565b92915050565b60008060006060848603121561425d5761425c6133b9565b5b600061426b8682870161422f565b935050602061427c8682870161422f565b925050604061428d8682870161422f565b9150509250925092565b60006080820190506142ac6000830187613e78565b81810360208301526142be8186613ee7565b90506142cd60408301856141bf565b6142da60608301846134f5565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075a330ea243f28c0b5ad3d3d91ee02defb3c13dc0265523b2eba406aba34582964736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806370a082311161012e578063d9f7e4df116100ab578063ec6d9b2d1161006f578063ec6d9b2d1461081a578063f2fde38b14610845578063f42938901461086e578063fc588c0414610885578063fd01bd4c146108ae57610246565b8063d9f7e4df14610747578063dc903ba114610772578063dd62ed3e1461079d578063de7d40ac146107da578063e632313c146107f157610246565b806395d89b41116100f257806395d89b411461065e578063a55d702214610689578063a9059cbb146106b4578063af465a27146106f1578063d89135cd1461071c57610246565b806370a0823114610589578063715018a6146105c65780638da5cb5b146105dd5780638ea78153146106085780639226fa961461063357610246565b806323b872dd116101bc57806336cf7c871161018057806336cf7c87146104da57806349bd5a5e1461050557806351bc3c85146105305780635dbc2fe1146105475780636c0a24eb1461055e57610246565b806323b872dd146103f357806323bbf9e71461043057806327a14fc21461045b5780632e8fa82114610484578063313ce567146104af57610246565b80631694505e116102035780631694505e1461031e57806318160ddd146103495780631cabcc4f146103745780631f53ac021461039f578063233296f0146103c857610246565b806306fdde031461024b578063072c8c1214610276578063080219e21461029f578063095ea7b3146102b65780630cdf2187146102f357610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606108d9565b60405161026d9190613397565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906133f4565b610916565b005b3480156102ab57600080fd5b506102b4610981565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061347f565b610a24565b6040516102ea91906134da565b60405180910390f35b3480156102ff57600080fd5b50610308610a42565b6040516103159190613504565b60405180910390f35b34801561032a57600080fd5b50610333610a48565b604051610340919061357e565b60405180910390f35b34801561035557600080fd5b5061035e610a6e565b60405161036b9190613504565b60405180910390f35b34801561038057600080fd5b50610389610a78565b6040516103969190613504565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906135d7565b610a7e565b005b3480156103d457600080fd5b506103dd610b57565b6040516103ea9190613504565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613604565b610b5d565b60405161042791906134da565b60405180910390f35b34801561043c57600080fd5b50610445610c36565b6040516104529190613504565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906133f4565b610c3c565b005b34801561049057600080fd5b50610499610cfe565b6040516104a69190613504565b60405180910390f35b3480156104bb57600080fd5b506104c4610d04565b6040516104d19190613673565b60405180910390f35b3480156104e657600080fd5b506104ef610d0d565b6040516104fc919061369d565b60405180910390f35b34801561051157600080fd5b5061051a610d33565b60405161052791906136c7565b60405180910390f35b34801561053c57600080fd5b50610545610d59565b005b34801561055357600080fd5b5061055c610ddd565b005b34801561056a57600080fd5b50610573610e8f565b6040516105809190613504565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab91906136e2565b610e95565b6040516105bd9190613504565b60405180910390f35b3480156105d257600080fd5b506105db610ede565b005b3480156105e957600080fd5b506105f2611031565b6040516105ff91906136c7565b60405180910390f35b34801561061457600080fd5b5061061d61105a565b60405161062a91906134da565b60405180910390f35b34801561063f57600080fd5b5061064861106d565b6040516106559190613504565b60405180910390f35b34801561066a57600080fd5b50610673611073565b6040516106809190613397565b60405180910390f35b34801561069557600080fd5b5061069e6110b0565b6040516106ab9190613504565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061347f565b6110b6565b6040516106e891906134da565b60405180910390f35b3480156106fd57600080fd5b506107066110d4565b6040516107139190613504565b60405180910390f35b34801561072857600080fd5b506107316110da565b60405161073e9190613504565b60405180910390f35b34801561075357600080fd5b5061075c6110e4565b6040516107699190613504565b60405180910390f35b34801561077e57600080fd5b506107876110ea565b6040516107949190613504565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf919061370f565b6110f0565b6040516107d19190613504565b60405180910390f35b3480156107e657600080fd5b506107ef611177565b005b3480156107fd57600080fd5b50610818600480360381019061081391906133f4565b6111fa565b005b34801561082657600080fd5b5061082f611265565b60405161083c9190613504565b60405180910390f35b34801561085157600080fd5b5061086c600480360381019061086791906136e2565b61126b565b005b34801561087a57600080fd5b5061088361137b565b005b34801561089157600080fd5b506108ac60048036038101906108a791906133f4565b6113f7565b005b3480156108ba57600080fd5b506108c36114aa565b6040516108d09190613504565b60405180910390f35b60606040518060400160405280601181526020017f5361746f73686920466c6f6b6f6d6f746f000000000000000000000000000000815250905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109576114fa565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b8060098190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c26114fa565b73ffffffffffffffffffffffffffffffffffffffff16146109e257600080fd5b6001600a819055506001600b819055506001600c819055506004600d819055506001600e819055506001600f8190555060016010819055506004601181905550565b6000610a38610a316114fa565b8484611502565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b610a866114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a9061379b565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6000610b6a8484846116cb565b610c2b84610b766114fa565b610c26856040518060600160405280602881526020016142e460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120619092919063ffffffff16565b611502565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b610cb360c86005546114b090919063ffffffff16565b8111610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb9061382d565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9a6114fa565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57600080fd5b6000610dc530610e95565b90506000811115610dda57610dd9816120c5565b5b50565b610de56114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e699061379b565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee66114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a9061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60105481565b60606040518060400160405280600981526020017f464c4f4b494d4f544f0000000000000000000000000000000000000000000000815250905090565b600c5481565b60006110ca6110c36114fa565b84846116cb565b6001905092915050565b60055481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86114fa565b73ffffffffffffffffffffffffffffffffffffffff16146111d857600080fd5b60016011819055506001600e819055506001600a819055506001600d81905550565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123b6114fa565b73ffffffffffffffffffffffffffffffffffffffff161461125b57600080fd5b8060088190555050565b600d5481565b6112736114fa565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f79061379b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611366906138bf565b60405180910390fd5b6113788161233e565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bc6114fa565b73ffffffffffffffffffffffffffffffffffffffff16146113dc57600080fd5b600047905060008111156113f4576113f381612402565b5b50565b6402540be40081101561143f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114369061392b565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114806114fa565b73ffffffffffffffffffffffffffffffffffffffff16146114a057600080fd5b8060078190555050565b601a5481565b60006114f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124fd565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611568906139bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d790613a4f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116be9190613504565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613ae1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090613b73565b60405180910390fd5b600081116117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390613c05565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118905750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61189957600080fd5b6000600190506118a7611031565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191557506118e5611031565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f9c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611adf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611b8a57600654611b0383611af586610e95565b61256090919063ffffffff16565b1115611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613c97565b60405180910390fd5b600754821115611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613d29565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c355750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8b5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ce15750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0b57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611db65750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e625750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8c57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611ef75750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f9b576000611f0730610e95565b9050600854811115611f1d57611f1c816125be565b5b6000479050602160159054906101000a900460ff16158015611f3f5750600081115b15611f5257611f4d47612402565b611f98565b602160159054906101000a900460ff168015611f6f575060095481115b15611f97576000611f8a6002836114b090919063ffffffff16565b9050611f95816126e7565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061203d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561204757600090505b612053848484846126fd565b61205b612cc7565b50505050565b60008383111582906120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a09190613397565b60405180910390fd5b50600083856120b89190613d78565b9050809150509392505050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120fd576120fc613dac565b5b60405190808252806020026020018201604052801561212b5781602001602082028036833780820191505090505b509050308160008151811061214357612142613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220e9190613e1f565b8160018151811061222257612221613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061228930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122ed959493929190613f45565b600060405180830381600087803b15801561230757600080fd5b505af115801561231b573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124526002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561247d573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124ce6002846114b090919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124f9573d6000803e3d6000fd5b5050565b60008083118290612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b9190613397565b60405180910390fd5b50600083856125539190613fce565b9050809150509392505050565b600080828461256f9190613fff565b9050838110156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab906140a1565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff021916908315150217905550600061264061261d60165461260f60195461260160185460175461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b61263284601654612ced90919063ffffffff16565b6114b090919063ffffffff16565b905060006126586002836114b090919063ffffffff16565b9050600061266f8285612d6790919063ffffffff16565b9050600047905061267f826120c5565b60006126b8836126aa8661269c8647612d6790919063ffffffff16565b612ced90919063ffffffff16565b6114b090919063ffffffff16565b90506126c48482612db1565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156126fa576126f981612eb1565b5b50565b8061270b5761270a61310a565b5b6127136132cf565b61273b606461272d60175486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81602001818152505061276c606461275e60165486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81600001818152505061279d606461278f60185486612ced90919063ffffffff16565b6114b090919063ffffffff16565b8160400181815250506127ce60646127c060195486612ced90919063ffffffff16565b6114b090919063ffffffff16565b81606001818152505061283081600001516128228360200151612814856060015161280687604001518a612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b612d6790919063ffffffff16565b8160800181815250506000612852826020015185612d6790919063ffffffff16565b9050612862868360200151613185565b6128b481600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294d8260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a286129ae8360000151846020015161256090919063ffffffff16565b612a1a8460600151612a0c8660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256090919063ffffffff16565b61256090919063ffffffff16565b61256090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff168015612ad55750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b0d57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b675750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612c185750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612c175750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612c4e57612c4d602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360200151613185565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612caf9190613504565b60405180910390a3612cbf612cc7565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b6000808303612cff5760009050612d61565b60008284612d0d91906140c1565b9050828482612d1c9190613fce565b14612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061418d565b60405180910390fd5b809150505b92915050565b6000612da983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612061565b905092915050565b612dde30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611502565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e67969594939291906141ce565b60606040518083038185885af1158015612e85573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eaa9190614244565b5050505050565b6000600267ffffffffffffffff811115612ece57612ecd613dac565b5b604051908082528060200260200182016040528015612efc5781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613e1f565b81600081518110612fa457612fa3613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061301557613014613ddb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016130d49493929190614297565b6000604051808303818588803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b50505050505050565b600060175414801561311e57506000601654145b801561312c57506000601854145b801561313a57506000601954145b6131835760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b61318e82610e95565b81111561319a57600080fd5b6131ec81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324481600554612d6790919063ffffffff16565b60058190555061325f81601a5461256090919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132c39190613504565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561333857808201518184015260208101905061331d565b83811115613347576000848401525b50505050565b6000601f19601f8301169050919050565b6000613369826132fe565b6133738185613309565b935061338381856020860161331a565b61338c8161334d565b840191505092915050565b600060208201905081810360008301526133b1818461335e565b905092915050565b600080fd5b6000819050919050565b6133d1816133be565b81146133dc57600080fd5b50565b6000813590506133ee816133c8565b92915050565b60006020828403121561340a576134096133b9565b5b6000613418848285016133df565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061344c82613421565b9050919050565b61345c81613441565b811461346757600080fd5b50565b60008135905061347981613453565b92915050565b60008060408385031215613496576134956133b9565b5b60006134a48582860161346a565b92505060206134b5858286016133df565b9150509250929050565b60008115159050919050565b6134d4816134bf565b82525050565b60006020820190506134ef60008301846134cb565b92915050565b6134fe816133be565b82525050565b600060208201905061351960008301846134f5565b92915050565b6000819050919050565b600061354461353f61353a84613421565b61351f565b613421565b9050919050565b600061355682613529565b9050919050565b60006135688261354b565b9050919050565b6135788161355d565b82525050565b6000602082019050613593600083018461356f565b92915050565b60006135a482613421565b9050919050565b6135b481613599565b81146135bf57600080fd5b50565b6000813590506135d1816135ab565b92915050565b6000602082840312156135ed576135ec6133b9565b5b60006135fb848285016135c2565b91505092915050565b60008060006060848603121561361d5761361c6133b9565b5b600061362b8682870161346a565b935050602061363c8682870161346a565b925050604061364d868287016133df565b9150509250925092565b600060ff82169050919050565b61366d81613657565b82525050565b60006020820190506136886000830184613664565b92915050565b61369781613599565b82525050565b60006020820190506136b2600083018461368e565b92915050565b6136c181613441565b82525050565b60006020820190506136dc60008301846136b8565b92915050565b6000602082840312156136f8576136f76133b9565b5b60006137068482850161346a565b91505092915050565b60008060408385031215613726576137256133b9565b5b60006137348582860161346a565b92505060206137458582860161346a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613785602083613309565b91506137908261374f565b602082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b6000613817602a83613309565b9150613822826137bb565b604082019050919050565b600060208201905081810360008301526138468161380a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138a9602683613309565b91506138b48261384d565b604082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613915601483613309565b9150613920826138df565b602082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139a7602483613309565b91506139b28261394b565b604082019050919050565b600060208201905081810360008301526139d68161399a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a39602283613309565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613acb602583613309565b9150613ad682613a6f565b604082019050919050565b60006020820190508181036000830152613afa81613abe565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b5d602383613309565b9150613b6882613b01565b604082019050919050565b60006020820190508181036000830152613b8c81613b50565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bef602983613309565b9150613bfa82613b93565b604082019050919050565b60006020820190508181036000830152613c1e81613be2565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613c81602b83613309565b9150613c8c82613c25565b604082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613d13602c83613309565b9150613d1e82613cb7565b604082019050919050565b60006020820190508181036000830152613d4281613d06565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d83826133be565b9150613d8e836133be565b925082821015613da157613da0613d49565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613e1981613453565b92915050565b600060208284031215613e3557613e346133b9565b5b6000613e4384828501613e0a565b91505092915050565b6000819050919050565b6000613e71613e6c613e6784613e4c565b61351f565b6133be565b9050919050565b613e8181613e56565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ebc81613441565b82525050565b6000613ece8383613eb3565b60208301905092915050565b6000602082019050919050565b6000613ef282613e87565b613efc8185613e92565b9350613f0783613ea3565b8060005b83811015613f38578151613f1f8882613ec2565b9750613f2a83613eda565b925050600181019050613f0b565b5085935050505092915050565b600060a082019050613f5a60008301886134f5565b613f676020830187613e78565b8181036040830152613f798186613ee7565b9050613f8860608301856136b8565b613f9560808301846134f5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd9826133be565b9150613fe4836133be565b925082613ff457613ff3613f9f565b5b828204905092915050565b600061400a826133be565b9150614015836133be565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404a57614049613d49565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061408b601b83613309565b915061409682614055565b602082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b60006140cc826133be565b91506140d7836133be565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141105761410f613d49565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614177602183613309565b91506141828261411b565b604082019050919050565b600060208201905081810360008301526141a68161416a565b9050919050565b60006141b88261354b565b9050919050565b6141c8816141ad565b82525050565b600060c0820190506141e360008301896136b8565b6141f060208301886134f5565b6141fd6040830187613e78565b61420a6060830186613e78565b61421760808301856141bf565b61422460a08301846134f5565b979650505050505050565b60008151905061423e816133c8565b92915050565b60008060006060848603121561425d5761425c6133b9565b5b600061426b8682870161422f565b935050602061427c8682870161422f565b925050604061428d8682870161422f565b9150509250925092565b60006080820190506142ac6000830187613e78565b81810360208301526142be8186613ee7565b90506142cd60408301856141bf565b6142da60608301846134f5565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075a330ea243f28c0b5ad3d3d91ee02defb3c13dc0265523b2eba406aba34582964736f6c634300080f0033
Deployed Bytecode Sourcemap
11350:13668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14383:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24746:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16152:284;;;;;;;;;;;;;:::i;:::-;;15224:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12262:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13327:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14660:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12369:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24907:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11939:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15395:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12121:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24109:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11991:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14569:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13174:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13375:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22312:246;;;;;;;;;;;;;:::i;:::-;;24538:76;;;;;;;;;;;;;:::i;:::-;;11879:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14763:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5400:148;;;;;;;;;;;;;:::i;:::-;;5186:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13448:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12334;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14474:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12191:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14894:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11817:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15715:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12298:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12156:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15071:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17036:188;;;;;;;;;;;;;:::i;:::-;;24383:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12225:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5560:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22566:248;;;;;;;;;;;;;:::i;:::-;;19966:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12743:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14383:83;14420:13;14453:5;;;;;;;;;;;;;;;;;14446:12;;14383:83;:::o;24746:153::-;24834:15;;;;;;;;;;;24818:31;;:12;:10;:12::i;:::-;:31;;;24810:40;;;;;;24880:11;24861:16;:30;;;;24746:153;:::o;16152:284::-;16220:15;;;;;;;;;;;16204:31;;:12;:10;:12::i;:::-;:31;;;16196:40;;;;;;16258:1;16247:8;:12;;;;16282:1;16270:9;:13;;;;16305:1;16294:8;:12;;;;16328:1;16317:8;:12;;;;16354:1;16342:9;:13;;;;16379:1;16366:10;:14;;;;16403:1;16391:9;:13;;;;16427:1;16415:9;:13;;;;16152:284::o;15224:163::-;15301:4;15318:39;15327:12;:10;:12::i;:::-;15341:7;15350:6;15318:8;:39::i;:::-;15375:4;15368:11;;15224:163;;;;:::o;12262:28::-;;;;:::o;13327:41::-;;;;;;;;;;;;;:::o;14660:95::-;14713:7;14740;;14733:14;;14660:95;:::o;12369:29::-;;;;:::o;24907:106::-;5323:12;:10;:12::i;:::-;5313:22;;:6;;;;;;;;;;:22;;;5305:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24997:8:::1;24985:9;;:20;;;;;;;;;;;;;;;;;;24907:106:::0;:::o;11939:40::-;;;;:::o;15395:312::-;15495:4;15512:36;15522:6;15530:9;15541:6;15512:9;:36::i;:::-;15559:118;15568:6;15575:12;:10;:12::i;:::-;15588:88;15626:6;15588:88;;;;;;;;;;;;;;;;;:11;:19;15600:6;15588:19;;;;;;;;;;;;;;;:33;15608:12;:10;:12::i;:::-;15588:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;15559:8;:118::i;:::-;15695:4;15688:11;;15395:312;;;;;:::o;12121:27::-;;;;:::o;24109:266::-;24206:15;;;;;;;;;;;24190:31;;:12;:10;:12::i;:::-;:31;;;24182:40;;;;;;24259:16;24271:3;24259:7;;:11;;:16;;;;:::i;:::-;24241:15;:34;24233:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;24352:15;24333:16;:34;;;;24109:266;:::o;11991:41::-;;;;:::o;14569:83::-;14610:5;11623:1;14628:16;;14569:83;:::o;13174:81::-;;;;;;;;;;;;;:::o;13375:28::-;;;;;;;;;;;;;:::o;22312:246::-;22378:15;;;;;;;;;;;22362:31;;:12;:10;:12::i;:::-;:31;;;22354:40;;;;;;22405:23;22431:24;22449:4;22431:9;:24::i;:::-;22405:50;;22488:1;22470:15;:19;22466:85;;;22506:33;22523:15;22506:16;:33::i;:::-;22466:85;22343:215;22312:246::o;24538:76::-;5323:12;:10;:12::i;:::-;5313:22;;:6;;;;;;;;;;:22;;;5305:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24602:4:::1;24591:8;;:15;;;;;;;;;;;;;;;;;;24538:76::o:0;11879:48::-;;;;:::o;14763:119::-;14829:7;14856:9;:18;14866:7;14856:18;;;;;;;;;;;;;;;;14849:25;;14763:119;;;:::o;5400:148::-;5323:12;:10;:12::i;:::-;5313:22;;:6;;;;;;;;;;:22;;;5305:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5507:1:::1;5470:40;;5491:6;::::0;::::1;;;;;;;;5470:40;;;;;;;;;;;;5538:1;5521:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5400:148::o:0;5186:79::-;5224:7;5251:6;;;;;;;;;;;5244:13;;5186:79;:::o;13448:28::-;;;;;;;;;;;;;:::o;12334:::-;;;;:::o;14474:87::-;14513:13;14546:7;;;;;;;;;;;;;;;;;14539:14;;14474:87;:::o;12191:27::-;;;;:::o;14894:169::-;14974:4;14991:42;15001:12;:10;:12::i;:::-;15015:9;15026:6;14991:9;:42::i;:::-;15051:4;15044:11;;14894:169;;;;:::o;11817:41::-;;;;:::o;15715:91::-;15759:7;15786:12;;15779:19;;15715:91;:::o;12298:29::-;;;;:::o;12156:28::-;;;;:::o;15071:145::-;15154:7;15181:11;:18;15193:5;15181:18;;;;;;;;;;;;;;;:27;15200:7;15181:27;;;;;;;;;;;;;;;;15174:34;;15071:145;;;;:::o;17036:188::-;17104:15;;;;;;;;;;;17088:31;;:12;:10;:12::i;:::-;:31;;;17080:40;;;;;;17143:1;17131:9;:13;;;;17167:1;17155:9;:13;;;;17190:1;17179:8;:12;;;;17213:1;17202:8;:12;;;;17036:188::o;24383:147::-;24471:15;;;;;;;;;;;24455:31;;:12;:10;:12::i;:::-;:31;;;24447:40;;;;;;24511:11;24498:10;:24;;;;24383:147;:::o;12225:28::-;;;;:::o;5560:201::-;5323:12;:10;:12::i;:::-;5313:22;;:6;;;;;;;;;;:22;;;5305:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5669:1:::1;5649:22;;:8;:22;;::::0;5641:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5725:28;5744:8;5725:18;:28::i;:::-;5560:201:::0;:::o;22566:248::-;22632:15;;;;;;;;;;;22616:31;;:12;:10;:12::i;:::-;:31;;;22608:40;;;;;;22659:26;22688:21;22659:50;;22745:1;22724:18;:22;22720:87;;;22763:32;22776:18;22763:12;:32::i;:::-;22720:87;22597:217;22566:248::o;19966:222::-;20055:14;20037;:32;;20029:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20128:15;;;;;;;;;;;20112:31;;:12;:10;:12::i;:::-;:31;;;20104:40;;;;;;20166:14;20155:8;:25;;;;19966:222;:::o;12743:27::-;;;;:::o;1877:132::-;1935:7;1962:39;1966:1;1969;1962:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1955:46;;1877:132;;;;:::o;288:98::-;341:7;368:10;361:17;;288:98;:::o;17232:335::-;17342:1;17325:19;;:5;:19;;;17317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17423:1;17404:21;;:7;:21;;;17396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17505:6;17475:11;:18;17487:5;17475:18;;;;;;;;;;;;;;;:27;17494:7;17475:27;;;;;;;;;;;;;;;:36;;;;17543:7;17527:32;;17536:5;17527:32;;;17552:6;17527:32;;;;;;:::i;:::-;;;;;;;;17232:335;;;:::o;17579:2379::-;17683:1;17667:18;;:4;:18;;;17659:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17760:1;17746:16;;:2;:16;;;17738:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17830:1;17821:6;:10;17813:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17897:4;:10;17902:4;17897:10;;;;;;;;;;;;;;;;;;;;;;;;;17896:11;:24;;;;;17912:4;:8;17917:2;17912:8;;;;;;;;;;;;;;;;;;;;;;;;;17911:9;17896:24;17888:33;;;;;;17934:12;17949:4;17934:19;;17978:7;:5;:7::i;:::-;17970:15;;:4;:15;;;;:32;;;;;17995:7;:5;:7::i;:::-;17989:13;;:2;:13;;;;17970:32;:57;;;;;18022:4;18006:21;;:4;:21;;;;17970:57;:80;;;;;18045:4;18031:19;;:2;:19;;;;17970:80;17966:1787;;;18081:13;;;;;;;;;;;18073:21;;:4;:21;;;:55;;;;;18112:15;;;;;;;;;;;18098:30;;:2;:30;;;;18073:55;:115;;;;;18135:18;:24;18154:4;18135:24;;;;;;;;;;;;;;;;;;;;;;;;;18134:25;:52;;;;18164:18;:22;18183:2;18164:22;;;;;;;;;;;;;;;;;;;;;;;;;18163:23;18134:52;18073:115;18069:351;;;18246:16;;18217:25;18235:6;18217:13;18227:2;18217:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:45;;18209:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;18347:8;;18337:6;:18;;18329:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18069:351;18462:13;;;;;;;;;;;18454:21;;:4;:21;;;:55;;;;;18493:15;;;;;;;;;;;18479:30;;:2;:30;;;;18454:55;:68;;;;;18514:4;:8;18519:2;18514:8;;;;;;;;;;;;;;;;;;;;;;;;;18513:9;18454:68;:83;;;;;18527:4;:10;18532:4;18527:10;;;;;;;;;;;;;;;;;;;;;;;;;18526:11;18454:83;18450:259;;;18569:8;;18558;:19;;;;18608:9;;18596;:21;;;;18647:8;;18636;:19;;;;18685:8;;18674;:19;;;;18450:259;18751:13;;;;;;;;;;;18745:19;;:2;:19;;;:55;;;;;18784:15;;;;;;;;;;;18768:32;;:4;:32;;;;18745:55;:68;;;;;18805:4;:8;18810:2;18805:8;;;;;;;;;;;;;;;;;;;;;;;;;18804:9;18745:68;:83;;;;;18818:4;:10;18823:4;18818:10;;;;;;;;;;;;;;;;;;;;;;;;;18817:11;18745:83;18741:263;;;18860:9;;18849:8;:20;;;;18900:10;;18888:9;:22;;;;18940:9;;18929:8;:20;;;;18979:9;;18968:8;:20;;;;18741:263;19036:8;;;;;;;;;;;19035:9;:34;;;;;19056:13;;;;;;;;;;;19048:21;;:4;:21;;;;19035:34;19031:711;;;19092:28;19123:24;19141:4;19123:9;:24::i;:::-;19092:55;;19195:10;;19172:20;:33;19168:118;;;19230:36;19245:20;19230:14;:36::i;:::-;19168:118;19306:26;19335:21;19306:50;;19394:8;;;;;;;;;;;19393:9;:37;;;;;19428:1;19407:18;:22;19393:37;19389:318;;;19455:35;19468:21;19455:12;:35::i;:::-;19389:318;;;19520:8;;;;;;;;;;;:51;;;;;19554:16;;19533:18;:37;19520:51;19516:191;;;19600:17;19621:25;19644:1;19621:18;:22;;:25;;;;:::i;:::-;19600:47;;19670:17;19677:9;19670:6;:17::i;:::-;19573:134;19516:191;19389:318;19071:671;;19031:711;17966:1787;19769:18;:24;19788:4;19769:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19797:18;:22;19816:2;19797:22;;;;;;;;;;;;;;;;;;;;;;;;;19769:50;19765:98;;;19846:5;19836:15;;19765:98;19883:41;19898:4;19904:2;19908:6;19916:7;19883:14;:41::i;:::-;19935:15;:13;:15::i;:::-;17648:2310;17579:2379;;;:::o;1425:190::-;1511:7;1544:1;1539;:6;;1547:12;1531:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1571:9;1587:1;1583;:5;;;;:::i;:::-;1571:17;;1606:1;1599:8;;;1425:190;;;;;:::o;20196:404::-;13525:4;13514:8;;:15;;;;;;;;;;;;;;;;;;20271:21:::1;20309:1;20295:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20271:40;;20340:4;20322;20327:1;20322:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;20366:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20356:4;20361:1;20356:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;20399:62;20416:4;20431:15;;;;;;;;;;;20449:11;20399:8;:62::i;:::-;20472:15;;;;;;;;;;;:66;;;20539:11;20552:1;20555:4;20569;20576:15;20472:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20260:340;13563:5:::0;13552:8;;:16;;;;;;;;;;;;;;;;;;20196:404;:::o;5769:191::-;5843:16;5862:6;;;;;;;;;;;5843:25;;5888:8;5879:6;;:17;;;;;;;;;;;;;;;;;;5943:8;5912:40;;5933:8;5912:40;;;;;;;;;;;;5832:128;5769:191;:::o;22152:152::-;22209:15;;;;;;;;;;;:24;;:41;22234:15;22247:1;22235:6;22234:12;;:15;;;;:::i;:::-;22209:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22261:9;;;;;;;;;;;:18;;:35;22280:15;22293:1;22281:6;22280:12;;:15;;;;:::i;:::-;22261:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22152:152;:::o;2017:189::-;2103:7;2135:1;2131;:5;2138:12;2123:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2162:9;2178:1;2174;:5;;;;:::i;:::-;2162:17;;2197:1;2190:8;;;2017:189;;;;;:::o;1094:179::-;1152:7;1172:9;1188:1;1184;:5;;;;:::i;:::-;1172:17;;1213:1;1208;:6;;1200:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1264:1;1257:8;;;1094:179;;;;:::o;21595:549::-;13525:4;13514:8;;:15;;;;;;;;;;;;;;;;;;21677:20:::1;21700:91;21739:51;21781:8;;21739:37;21767:8;;21739:23;21753:8;;21739:9;;:13;;:23;;;;:::i;:::-;:27;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;21700:34;21713:20;21700:8;;:12;;:34;;;;:::i;:::-;:38;;:91;;;;:::i;:::-;21677:114;;21802:12;21818:19;21835:1;21818:12;:16;;:19;;;;:::i;:::-;21802:35;;21848:17;21868:30;21893:4;21868:20;:24;;:30;;;;:::i;:::-;21848:50;;21909:22;21934:21;21909:46;;21966:27;21983:9;21966:16;:27::i;:::-;22004:18;22025:70;22085:9;22026:53;22074:4;22027:41;22053:14;22027:21;:25;;:41;;;;:::i;:::-;22026:47;;:53;;;;:::i;:::-;22025:59;;:70;;;;:::i;:::-;22004:91;;22106:30;22119:4;22125:10;22106:12;:30::i;:::-;21666:478;;;;;13563:5:::0;13552:8;;:16;;;;;;;;;;;;;;;;;;21595:549;:::o;24622:116::-;24683:1;24674:6;:10;24670:61;;;24698:24;24715:6;24698:16;:24::i;:::-;24670:61;24622:116;:::o;22822:1238::-;22935:7;22930:60;;22964:14;:12;:14::i;:::-;22930:60;23010:24;;:::i;:::-;23058:30;23084:3;23058:21;23069:9;;23058:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;23045:4;:10;;:43;;;;;23111:29;23136:3;23111:20;23122:8;;23111:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;23099:4;:9;;:41;;;;;23163:29;23188:3;23163:20;23174:8;;23163:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;23151:4;:9;;:41;;;;;23215:29;23240:3;23215:20;23226:8;;23215:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;23203:4;:9;;:41;;;;;23280:67;23337:4;:9;;;23280:52;23321:4;:10;;;23280:36;23306:4;:9;;;23280:21;23291:4;:9;;;23280:6;:10;;:21;;;;:::i;:::-;:25;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;:56;;:67;;;;:::i;:::-;23265:4;:12;;:82;;;;;23360:21;23384:22;23395:4;:10;;;23384:6;:10;;:22;;;;:::i;:::-;23360:46;;23417:27;23425:6;23433:4;:10;;;23417:7;:27::i;:::-;23477:36;23499:13;23477:9;:17;23487:6;23477:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;23457:9;:17;23467:6;23457:17;;;;;;;;;;;;;;;:56;;;;23547:38;23572:4;:12;;;23547:9;:20;23557:9;23547:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;23524:9;:20;23534:9;23524:20;;;;;;;;;;;;;;;:61;;;;23623:85;23682:25;23697:4;:9;;;23682:4;:10;;;:14;;:25;;;;:::i;:::-;23623:54;23667:4;:9;;;23623:39;23652:4;:9;;;23623;:24;23641:4;23623:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;:43;;:54;;;;:::i;:::-;:58;;:85;;;;:::i;:::-;23596:9;:24;23614:4;23596:24;;;;;;;;;;;;;;;:112;;;;23732:8;;;;;;;;;;;:35;;;;;23754:13;;;;;;;;;;;23744:23;;:6;:23;;;;23732:35;:62;;;;;23789:4;23771:23;;:6;:23;;;;23732:62;:100;;;;;23816:15;;;;;;;;;;;23798:34;;:6;:34;;;;23732:100;:173;;;;;23858:15;;;;;;;;;;;23837:37;;:9;:37;;;:67;;;;23891:13;;;;;;;;;;;23878:26;;:9;:26;;;23837:67;23732:173;23729:239;;;23922:34;23930:13;;;;;;;;;;;23945:4;:10;;;23922:7;:34::i;:::-;23729:239;24002:9;23985:41;;23994:6;23985:41;;;24013:4;:12;;;23985:41;;;;;;:::i;:::-;;;;;;;;24037:15;:13;:15::i;:::-;22919:1141;;22822:1238;;;;:::o;16833:195::-;16888:16;;16877:8;:27;;;;16927:17;;16915:9;:29;;;;16966:16;;16955:8;:27;;;;17004:16;;16993:8;:27;;;;16833:195::o;1623:246::-;1681:7;1710:1;1705;:6;1701:47;;1735:1;1728:8;;;;1701:47;1758:9;1774:1;1770;:5;;;;:::i;:::-;1758:17;;1803:1;1798;1794;:5;;;;:::i;:::-;:10;1786:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1860:1;1853:8;;;1623:246;;;;;:::o;1281:136::-;1339:7;1366:43;1370:1;1373;1366:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1359:50;;1281:136;;;;:::o;21129:456::-;21210:62;21227:4;21242:15;;;;;;;;;;;21260:11;21210:8;:62::i;:::-;21315:15;;;;;;;;;;;:31;;;21354:9;21387:4;21407:11;21433:1;21476;21519:15;;;;;;;;;;;21549;21315:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21129:456;;:::o;20608:513::-;20729:21;20767:1;20753:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20729:40;;20790:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20780:4;20785:1;20780:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20841:3;;;;;;;;;;;20823:4;20828:1;20823:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;20882:15;;;;;;;;;;;:66;;;20956:6;20978:1;21025:4;21044;;;;;;;;;;;21079:15;20882:223;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20658:463;20608:513;:::o;16444:377::-;16504:1;16491:9;;:14;:31;;;;;16521:1;16509:8;;:13;16491:31;:48;;;;;16538:1;16526:8;;:13;16491:48;:65;;;;;16555:1;16543:8;;:13;16491:65;16558:7;16487:78;16595:9;;16575:17;:29;;;;16634:8;;16615:16;:27;;;;16672:8;;16653:16;:27;;;;16710:8;;16691:16;:27;;;;16743:1;16731:9;:13;;;;16766:1;16755:8;:12;;;;16789:1;16778:8;:12;;;;16812:1;16801:8;:12;;;;16444:377;:::o;15814:330::-;15904:19;15914:8;15904:9;:19::i;:::-;15893:7;:30;;15884:40;;;;;;15957:32;15981:7;15957:9;:19;15967:8;15957:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;15935:9;:19;15945:8;15935:19;;;;;;;;;;;;;;;:54;;;;16010:20;16022:7;16010;;:11;;:20;;;;:::i;:::-;16000:7;:30;;;;16056:25;16073:7;16056:12;;:16;;:25;;;;:::i;:::-;16041:12;:40;;;;16124:1;16097:39;;16106:8;16097:39;;;16128:7;16097:39;;;;;;:::i;:::-;;;;;;;;15814:330;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:77;1761:7;1790:5;1779:16;;1724:77;;;:::o;1807:122::-;1880:24;1898:5;1880:24;:::i;:::-;1873:5;1870:35;1860:63;;1919:1;1916;1909:12;1860:63;1807:122;:::o;1935:139::-;1981:5;2019:6;2006:20;1997:29;;2035:33;2062:5;2035:33;:::i;:::-;1935:139;;;;:::o;2080:329::-;2139:6;2188:2;2176:9;2167:7;2163:23;2159:32;2156:119;;;2194:79;;:::i;:::-;2156:119;2314:1;2339:53;2384:7;2375:6;2364:9;2360:22;2339:53;:::i;:::-;2329:63;;2285:117;2080:329;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:152::-;4603:9;4636:37;4667:5;4636:37;:::i;:::-;4623:50;;4527:152;;;:::o;4685:183::-;4798:63;4855:5;4798:63;:::i;:::-;4793:3;4786:76;4685:183;;:::o;4874:274::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:97;5138:1;5127:9;5123:17;5114:6;5044:97;:::i;:::-;4874:274;;;;:::o;5154:104::-;5199:7;5228:24;5246:5;5228:24;:::i;:::-;5217:35;;5154:104;;;:::o;5264:138::-;5345:32;5371:5;5345:32;:::i;:::-;5338:5;5335:43;5325:71;;5392:1;5389;5382:12;5325:71;5264:138;:::o;5408:155::-;5462:5;5500:6;5487:20;5478:29;;5516:41;5551:5;5516:41;:::i;:::-;5408:155;;;;:::o;5569:345::-;5636:6;5685:2;5673:9;5664:7;5660:23;5656:32;5653:119;;;5691:79;;:::i;:::-;5653:119;5811:1;5836:61;5889:7;5880:6;5869:9;5865:22;5836:61;:::i;:::-;5826:71;;5782:125;5569:345;;;;:::o;5920:619::-;5997:6;6005;6013;6062:2;6050:9;6041:7;6037:23;6033:32;6030:119;;;6068:79;;:::i;:::-;6030:119;6188:1;6213:53;6258:7;6249:6;6238:9;6234:22;6213:53;:::i;:::-;6203:63;;6159:117;6315:2;6341:53;6386:7;6377:6;6366:9;6362:22;6341:53;:::i;:::-;6331:63;;6286:118;6443:2;6469:53;6514:7;6505:6;6494:9;6490:22;6469:53;:::i;:::-;6459:63;;6414:118;5920:619;;;;;:::o;6545:86::-;6580:7;6620:4;6613:5;6609:16;6598:27;;6545:86;;;:::o;6637:112::-;6720:22;6736:5;6720:22;:::i;:::-;6715:3;6708:35;6637:112;;:::o;6755:214::-;6844:4;6882:2;6871:9;6867:18;6859:26;;6895:67;6959:1;6948:9;6944:17;6935:6;6895:67;:::i;:::-;6755:214;;;;:::o;6975:142::-;7078:32;7104:5;7078:32;:::i;:::-;7073:3;7066:45;6975:142;;:::o;7123:254::-;7232:4;7270:2;7259:9;7255:18;7247:26;;7283:87;7367:1;7356:9;7352:17;7343:6;7283:87;:::i;:::-;7123:254;;;;:::o;7383:118::-;7470:24;7488:5;7470:24;:::i;:::-;7465:3;7458:37;7383:118;;:::o;7507:222::-;7600:4;7638:2;7627:9;7623:18;7615:26;;7651:71;7719:1;7708:9;7704:17;7695:6;7651:71;:::i;:::-;7507:222;;;;:::o;7735:329::-;7794:6;7843:2;7831:9;7822:7;7818:23;7814:32;7811:119;;;7849:79;;:::i;:::-;7811:119;7969:1;7994:53;8039:7;8030:6;8019:9;8015:22;7994:53;:::i;:::-;7984:63;;7940:117;7735:329;;;;:::o;8070:474::-;8138:6;8146;8195:2;8183:9;8174:7;8170:23;8166:32;8163:119;;;8201:79;;:::i;:::-;8163:119;8321:1;8346:53;8391:7;8382:6;8371:9;8367:22;8346:53;:::i;:::-;8336:63;;8292:117;8448:2;8474:53;8519:7;8510:6;8499:9;8495:22;8474:53;:::i;:::-;8464:63;;8419:118;8070:474;;;;;:::o;8550:182::-;8690:34;8686:1;8678:6;8674:14;8667:58;8550:182;:::o;8738:366::-;8880:3;8901:67;8965:2;8960:3;8901:67;:::i;:::-;8894:74;;8977:93;9066:3;8977:93;:::i;:::-;9095:2;9090:3;9086:12;9079:19;;8738:366;;;:::o;9110:419::-;9276:4;9314:2;9303:9;9299:18;9291:26;;9363:9;9357:4;9353:20;9349:1;9338:9;9334:17;9327:47;9391:131;9517:4;9391:131;:::i;:::-;9383:139;;9110:419;;;:::o;9535:229::-;9675:34;9671:1;9663:6;9659:14;9652:58;9744:12;9739:2;9731:6;9727:15;9720:37;9535:229;:::o;9770:366::-;9912:3;9933:67;9997:2;9992:3;9933:67;:::i;:::-;9926:74;;10009:93;10098:3;10009:93;:::i;:::-;10127:2;10122:3;10118:12;10111:19;;9770:366;;;:::o;10142:419::-;10308:4;10346:2;10335:9;10331:18;10323:26;;10395:9;10389:4;10385:20;10381:1;10370:9;10366:17;10359:47;10423:131;10549:4;10423:131;:::i;:::-;10415:139;;10142:419;;;:::o;10567:225::-;10707:34;10703:1;10695:6;10691:14;10684:58;10776:8;10771:2;10763:6;10759:15;10752:33;10567:225;:::o;10798:366::-;10940:3;10961:67;11025:2;11020:3;10961:67;:::i;:::-;10954:74;;11037:93;11126:3;11037:93;:::i;:::-;11155:2;11150:3;11146:12;11139:19;;10798:366;;;:::o;11170:419::-;11336:4;11374:2;11363:9;11359:18;11351:26;;11423:9;11417:4;11413:20;11409:1;11398:9;11394:17;11387:47;11451:131;11577:4;11451:131;:::i;:::-;11443:139;;11170:419;;;:::o;11595:170::-;11735:22;11731:1;11723:6;11719:14;11712:46;11595:170;:::o;11771:366::-;11913:3;11934:67;11998:2;11993:3;11934:67;:::i;:::-;11927:74;;12010:93;12099:3;12010:93;:::i;:::-;12128:2;12123:3;12119:12;12112:19;;11771:366;;;:::o;12143:419::-;12309:4;12347:2;12336:9;12332:18;12324:26;;12396:9;12390:4;12386:20;12382:1;12371:9;12367:17;12360:47;12424:131;12550:4;12424:131;:::i;:::-;12416:139;;12143:419;;;:::o;12568:223::-;12708:34;12704:1;12696:6;12692:14;12685:58;12777:6;12772:2;12764:6;12760:15;12753:31;12568:223;:::o;12797:366::-;12939:3;12960:67;13024:2;13019:3;12960:67;:::i;:::-;12953:74;;13036:93;13125:3;13036:93;:::i;:::-;13154:2;13149:3;13145:12;13138:19;;12797:366;;;:::o;13169:419::-;13335:4;13373:2;13362:9;13358:18;13350:26;;13422:9;13416:4;13412:20;13408:1;13397:9;13393:17;13386:47;13450:131;13576:4;13450:131;:::i;:::-;13442:139;;13169:419;;;:::o;13594:221::-;13734:34;13730:1;13722:6;13718:14;13711:58;13803:4;13798:2;13790:6;13786:15;13779:29;13594:221;:::o;13821:366::-;13963:3;13984:67;14048:2;14043:3;13984:67;:::i;:::-;13977:74;;14060:93;14149:3;14060:93;:::i;:::-;14178:2;14173:3;14169:12;14162:19;;13821:366;;;:::o;14193:419::-;14359:4;14397:2;14386:9;14382:18;14374:26;;14446:9;14440:4;14436:20;14432:1;14421:9;14417:17;14410:47;14474:131;14600:4;14474:131;:::i;:::-;14466:139;;14193:419;;;:::o;14618:224::-;14758:34;14754:1;14746:6;14742:14;14735:58;14827:7;14822:2;14814:6;14810:15;14803:32;14618:224;:::o;14848:366::-;14990:3;15011:67;15075:2;15070:3;15011:67;:::i;:::-;15004:74;;15087:93;15176:3;15087:93;:::i;:::-;15205:2;15200:3;15196:12;15189:19;;14848:366;;;:::o;15220:419::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15473:9;15467:4;15463:20;15459:1;15448:9;15444:17;15437:47;15501:131;15627:4;15501:131;:::i;:::-;15493:139;;15220:419;;;:::o;15645:222::-;15785:34;15781:1;15773:6;15769:14;15762:58;15854:5;15849:2;15841:6;15837:15;15830:30;15645:222;:::o;15873:366::-;16015:3;16036:67;16100:2;16095:3;16036:67;:::i;:::-;16029:74;;16112:93;16201:3;16112:93;:::i;:::-;16230:2;16225:3;16221:12;16214:19;;15873:366;;;:::o;16245:419::-;16411:4;16449:2;16438:9;16434:18;16426:26;;16498:9;16492:4;16488:20;16484:1;16473:9;16469:17;16462:47;16526:131;16652:4;16526:131;:::i;:::-;16518:139;;16245:419;;;:::o;16670:228::-;16810:34;16806:1;16798:6;16794:14;16787:58;16879:11;16874:2;16866:6;16862:15;16855:36;16670:228;:::o;16904:366::-;17046:3;17067:67;17131:2;17126:3;17067:67;:::i;:::-;17060:74;;17143:93;17232:3;17143:93;:::i;:::-;17261:2;17256:3;17252:12;17245:19;;16904:366;;;:::o;17276:419::-;17442:4;17480:2;17469:9;17465:18;17457:26;;17529:9;17523:4;17519:20;17515:1;17504:9;17500:17;17493:47;17557:131;17683:4;17557:131;:::i;:::-;17549:139;;17276:419;;;:::o;17701:230::-;17841:34;17837:1;17829:6;17825:14;17818:58;17910:13;17905:2;17897:6;17893:15;17886:38;17701:230;:::o;17937:366::-;18079:3;18100:67;18164:2;18159:3;18100:67;:::i;:::-;18093:74;;18176:93;18265:3;18176:93;:::i;:::-;18294:2;18289:3;18285:12;18278:19;;17937:366;;;:::o;18309:419::-;18475:4;18513:2;18502:9;18498:18;18490:26;;18562:9;18556:4;18552:20;18548:1;18537:9;18533:17;18526:47;18590:131;18716:4;18590:131;:::i;:::-;18582:139;;18309:419;;;:::o;18734:231::-;18874:34;18870:1;18862:6;18858:14;18851:58;18943:14;18938:2;18930:6;18926:15;18919:39;18734:231;:::o;18971:366::-;19113:3;19134:67;19198:2;19193:3;19134:67;:::i;:::-;19127:74;;19210:93;19299:3;19210:93;:::i;:::-;19328:2;19323:3;19319:12;19312:19;;18971:366;;;:::o;19343:419::-;19509:4;19547:2;19536:9;19532:18;19524:26;;19596:9;19590:4;19586:20;19582:1;19571:9;19567:17;19560:47;19624:131;19750:4;19624:131;:::i;:::-;19616:139;;19343:419;;;:::o;19768:180::-;19816:77;19813:1;19806:88;19913:4;19910:1;19903:15;19937:4;19934:1;19927:15;19954:191;19994:4;20014:20;20032:1;20014:20;:::i;:::-;20009:25;;20048:20;20066:1;20048:20;:::i;:::-;20043:25;;20087:1;20084;20081:8;20078:34;;;20092:18;;:::i;:::-;20078:34;20137:1;20134;20130:9;20122:17;;19954:191;;;;:::o;20151:180::-;20199:77;20196:1;20189:88;20296:4;20293:1;20286:15;20320:4;20317:1;20310:15;20337:180;20385:77;20382:1;20375:88;20482:4;20479:1;20472:15;20506:4;20503:1;20496:15;20523:143;20580:5;20611:6;20605:13;20596:22;;20627:33;20654:5;20627:33;:::i;:::-;20523:143;;;;:::o;20672:351::-;20742:6;20791:2;20779:9;20770:7;20766:23;20762:32;20759:119;;;20797:79;;:::i;:::-;20759:119;20917:1;20942:64;20998:7;20989:6;20978:9;20974:22;20942:64;:::i;:::-;20932:74;;20888:128;20672:351;;;;:::o;21029:85::-;21074:7;21103:5;21092:16;;21029:85;;;:::o;21120:158::-;21178:9;21211:61;21229:42;21238:32;21264:5;21238:32;:::i;:::-;21229:42;:::i;:::-;21211:61;:::i;:::-;21198:74;;21120:158;;;:::o;21284:147::-;21379:45;21418:5;21379:45;:::i;:::-;21374:3;21367:58;21284:147;;:::o;21437:114::-;21504:6;21538:5;21532:12;21522:22;;21437:114;;;:::o;21557:184::-;21656:11;21690:6;21685:3;21678:19;21730:4;21725:3;21721:14;21706:29;;21557:184;;;;:::o;21747:132::-;21814:4;21837:3;21829:11;;21867:4;21862:3;21858:14;21850:22;;21747:132;;;:::o;21885:108::-;21962:24;21980:5;21962:24;:::i;:::-;21957:3;21950:37;21885:108;;:::o;21999:179::-;22068:10;22089:46;22131:3;22123:6;22089:46;:::i;:::-;22167:4;22162:3;22158:14;22144:28;;21999:179;;;;:::o;22184:113::-;22254:4;22286;22281:3;22277:14;22269:22;;22184:113;;;:::o;22333:732::-;22452:3;22481:54;22529:5;22481:54;:::i;:::-;22551:86;22630:6;22625:3;22551:86;:::i;:::-;22544:93;;22661:56;22711:5;22661:56;:::i;:::-;22740:7;22771:1;22756:284;22781:6;22778:1;22775:13;22756:284;;;22857:6;22851:13;22884:63;22943:3;22928:13;22884:63;:::i;:::-;22877:70;;22970:60;23023:6;22970:60;:::i;:::-;22960:70;;22816:224;22803:1;22800;22796:9;22791:14;;22756:284;;;22760:14;23056:3;23049:10;;22457:608;;;22333:732;;;;:::o;23071:831::-;23334:4;23372:3;23361:9;23357:19;23349:27;;23386:71;23454:1;23443:9;23439:17;23430:6;23386:71;:::i;:::-;23467:80;23543:2;23532:9;23528:18;23519:6;23467:80;:::i;:::-;23594:9;23588:4;23584:20;23579:2;23568:9;23564:18;23557:48;23622:108;23725:4;23716:6;23622:108;:::i;:::-;23614:116;;23740:72;23808:2;23797:9;23793:18;23784:6;23740:72;:::i;:::-;23822:73;23890:3;23879:9;23875:19;23866:6;23822:73;:::i;:::-;23071:831;;;;;;;;:::o;23908:180::-;23956:77;23953:1;23946:88;24053:4;24050:1;24043:15;24077:4;24074:1;24067:15;24094:185;24134:1;24151:20;24169:1;24151:20;:::i;:::-;24146:25;;24185:20;24203:1;24185:20;:::i;:::-;24180:25;;24224:1;24214:35;;24229:18;;:::i;:::-;24214:35;24271:1;24268;24264:9;24259:14;;24094:185;;;;:::o;24285:305::-;24325:3;24344:20;24362:1;24344:20;:::i;:::-;24339:25;;24378:20;24396:1;24378:20;:::i;:::-;24373:25;;24532:1;24464:66;24460:74;24457:1;24454:81;24451:107;;;24538:18;;:::i;:::-;24451:107;24582:1;24579;24575:9;24568:16;;24285:305;;;;:::o;24596:177::-;24736:29;24732:1;24724:6;24720:14;24713:53;24596:177;:::o;24779:366::-;24921:3;24942:67;25006:2;25001:3;24942:67;:::i;:::-;24935:74;;25018:93;25107:3;25018:93;:::i;:::-;25136:2;25131:3;25127:12;25120:19;;24779:366;;;:::o;25151:419::-;25317:4;25355:2;25344:9;25340:18;25332:26;;25404:9;25398:4;25394:20;25390:1;25379:9;25375:17;25368:47;25432:131;25558:4;25432:131;:::i;:::-;25424:139;;25151:419;;;:::o;25576:348::-;25616:7;25639:20;25657:1;25639:20;:::i;:::-;25634:25;;25673:20;25691:1;25673:20;:::i;:::-;25668:25;;25861:1;25793:66;25789:74;25786:1;25783:81;25778:1;25771:9;25764:17;25760:105;25757:131;;;25868:18;;:::i;:::-;25757:131;25916:1;25913;25909:9;25898:20;;25576:348;;;;:::o;25930:220::-;26070:34;26066:1;26058:6;26054:14;26047:58;26139:3;26134:2;26126:6;26122:15;26115:28;25930:220;:::o;26156:366::-;26298:3;26319:67;26383:2;26378:3;26319:67;:::i;:::-;26312:74;;26395:93;26484:3;26395:93;:::i;:::-;26513:2;26508:3;26504:12;26497:19;;26156:366;;;:::o;26528:419::-;26694:4;26732:2;26721:9;26717:18;26709:26;;26781:9;26775:4;26771:20;26767:1;26756:9;26752:17;26745:47;26809:131;26935:4;26809:131;:::i;:::-;26801:139;;26528:419;;;:::o;26953:134::-;27011:9;27044:37;27075:5;27044:37;:::i;:::-;27031:50;;26953:134;;;:::o;27093:147::-;27188:45;27227:5;27188:45;:::i;:::-;27183:3;27176:58;27093:147;;:::o;27246:823::-;27503:4;27541:3;27530:9;27526:19;27518:27;;27555:71;27623:1;27612:9;27608:17;27599:6;27555:71;:::i;:::-;27636:72;27704:2;27693:9;27689:18;27680:6;27636:72;:::i;:::-;27718:80;27794:2;27783:9;27779:18;27770:6;27718:80;:::i;:::-;27808;27884:2;27873:9;27869:18;27860:6;27808:80;:::i;:::-;27898:81;27974:3;27963:9;27959:19;27950:6;27898:81;:::i;:::-;27989:73;28057:3;28046:9;28042:19;28033:6;27989:73;:::i;:::-;27246:823;;;;;;;;;:::o;28075:143::-;28132:5;28163:6;28157:13;28148:22;;28179:33;28206:5;28179:33;:::i;:::-;28075:143;;;;:::o;28224:663::-;28312:6;28320;28328;28377:2;28365:9;28356:7;28352:23;28348:32;28345:119;;;28383:79;;:::i;:::-;28345:119;28503:1;28528:64;28584:7;28575:6;28564:9;28560:22;28528:64;:::i;:::-;28518:74;;28474:128;28641:2;28667:64;28723:7;28714:6;28703:9;28699:22;28667:64;:::i;:::-;28657:74;;28612:129;28780:2;28806:64;28862:7;28853:6;28842:9;28838:22;28806:64;:::i;:::-;28796:74;;28751:129;28224:663;;;;;:::o;28893:736::-;29136:4;29174:3;29163:9;29159:19;29151:27;;29188:79;29264:1;29253:9;29249:17;29240:6;29188:79;:::i;:::-;29314:9;29308:4;29304:20;29299:2;29288:9;29284:18;29277:48;29342:108;29445:4;29436:6;29342:108;:::i;:::-;29334:116;;29460:80;29536:2;29525:9;29521:18;29512:6;29460:80;:::i;:::-;29550:72;29618:2;29607:9;29603:18;29594:6;29550:72;:::i;:::-;28893:736;;;;;;;:::o
Swarm Source
ipfs://75a330ea243f28c0b5ad3d3d91ee02defb3c13dc0265523b2eba406aba345829
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.