ERC-20
Overview
Max Total Supply
100,000 OC
Holders
36
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.831708273164314678 OCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OnlyCommunity
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-04 */ /** ___ ___ ___ ___ /\ \ /\__\ /\__\ /\__\ /::\ \ /:| _|_ /:/ / |::L__L /:/\:\__\ /::|/\__\ /:/__/ |:::\__\ \:\/:/ / \/|::/ / \:\ \ /:;;/__/ \::/ / |:/ / \:\__\ \/__/ \/__/ \/__/ \/__/ ___ ___ ___ ___ ___ ___ ___ ___ ___ /\ \ /\ \ /\__\ /\__\ /\__\ /\__\ /\ \ /\ \ /\__\ /::\ \ /::\ \ /::L_L_ /::L_L_ /:/ _/_ /:| _|_ _\:\ \ \:\ \ |::L__L /:/\:\__\ /:/\:\__\ /:/L:\__\ /:/L:\__\ /:/_/\__\ /::|/\__\ /\/::\__\ /::\__\ |:::\__\ \:\ \/__/ \:\/:/ / \/_/:/ / \/_/:/ / \:\/:/ / \/|::/ / \::/\/__/ /:/\/__/ /:;;/__/ \:\__\ \::/ / /:/ / /:/ / \::/ / |:/ / \:\__\ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender,address recipient,uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract OnlyCommunity is Context,IERC20, Ownable{ using Address for address; string private _name = "OnlyCommunity"; string private _symbol = "OC"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 maxWalletTreshold = 3; uint256 maxTxTreshold = 2; uint256 private swapTreshold =2; bool public limitsInEffect = true; uint256 private currentThreshold = 20; uint256 private _totalSupply = 100_000 * 10**_decimals; uint256 public requiredTokensToSwap = _totalSupply * swapTreshold /1000; mapping (address => uint256) private _balances; mapping (address => bool) private _excludedFromFees; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) _isExcludedMaxTransactionAmount; mapping (address => bool) public automatedMarketMakerPairs; address _owner; address payable public marketingAddress = payable(0x494C3156e97E986AA1aae776eB7B1dc0b37C2377); uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; uint256 maxTxAmount = _totalSupply*maxTxTreshold/100; mapping (address => bool) botWallets; bool botTradeEnabled = false; bool checkWalletSize = true; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private presaleAddresses; uint256 private buyliqFee = 1; uint256 private buyprevLiqFee = 1; uint256 private buymktFee = 2; uint256 private buyPrevmktFee = 2; bool private tradeEnabled = false; uint256 private sellliqFee = 1; uint256 private sellprevLiqFee = 1; uint256 private sellmktFee = 14; uint256 private sellPrevmktFee = 14; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private mktTokens = 0; uint256 private liqTokens = 0; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event tokensSwappedDuringTokenomics(uint256 amount); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); IUniswapV2Router02 _router; address public uniswapV2Pair; //Balances tracker modifier lockTheSwap{ inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(){ _balances[_msgSender()] = _totalSupply; IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true; _router = _uniRouter; _liquidityHolders[address(_router)] = true; _liquidityHolders[owner()] = true; _liquidityHolders[address(this)] = true; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); emit Transfer(address(0),_msgSender(),_totalSupply); } receive() external payable{} //general token data and tracking of balances to be swapped. function getOwner()external view returns(address){ return owner(); } function currentmktTokens() external view returns (uint256){ return mktTokens; } function currentLiqTokens() external view returns (uint256){ return liqTokens; } function totalSupply() external view override returns (uint256){ return _totalSupply; } 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 removeLimits() public onlyOwner{ limitsInEffect = false; } function decimals()external view returns(uint256){ return _decimals; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory){ return _symbol; } function updateMaxTxTreshold(uint256 newVal) public onlyOwner{ maxTxTreshold = newVal; maxTxAmount = _totalSupply*maxTxTreshold/100;// 1% } function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{ maxWalletTreshold = newVal; maxWalletAmount = _totalSupply*maxWalletTreshold/100; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool){ require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{ botWallets[detectedBot] = isBot; } function currentbuyliqFee() public view returns (uint256){ return buyliqFee; } function currentbuymktfee() public view returns (uint256){ return buymktFee; } function currentsellLiqFee() public view returns (uint256){ return sellliqFee; } function currentsellmktfee() public view returns (uint256){ return sellmktFee; } function currentThresholdInt()public view returns (uint256){ return currentThreshold; } function isExcluded(address toCheck)public view returns (bool){ return _excludedFromFees[toCheck]; } function _transfer(address from, address to, uint256 amount) internal{ require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0,"ERC20: transfered amount must be greater than zero"); uint256 senderBalance = _balances[from]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); if(tradeEnabled == false){ require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled"); } if(limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ){ //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTxAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWalletAmount, "Unable to exceed Max Wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Unable to exceed Max Wallet"); } } } uint256 inContractBalance = balanceOf(address(this)); if(inContractBalance >=requiredTokensToSwap && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled){ if(inContractBalance >= requiredTokensToSwap ){ inContractBalance = requiredTokensToSwap; swapForTokenomics(inContractBalance); } } bool takeFees = true; if(_excludedFromFees[from] || _excludedFromFees[to]) { totalFeeFortx = 0; takeFees = false; } uint256 mktAmount = 0; uint256 liqAmount = 0; // Amount to be added to liquidity. if(takeFees){ //bot fees if(botWallets[from] == true||botWallets[to]==true){ revert("No bots allowed to trade"); } //Selling fees if (automatedMarketMakerPairs[to] && to != address(_router) ){ totalFeeFortx = 0; mktAmount = amount * sellmktFee/100; liqAmount = amount * sellliqFee/100; totalFeeFortx = mktAmount + liqAmount ; } //Buy Fees else if(automatedMarketMakerPairs[from] && from != address(_router)) { totalFeeFortx = 0; mktAmount = amount * buymktFee/100; liqAmount = amount * buyliqFee/100; totalFeeFortx = mktAmount + liqAmount ; } } _balances[from] = senderBalance - amount; _balances[to] += amount - mktAmount - liqAmount; if(liqAmount != 0) { _balances[address(this)] += totalFeeFortx; //tLiqTotal += liqAmount; liqTokens += liqAmount; mktTokens += mktAmount; emit Transfer(from, address(this), totalFeeFortx); } emit Transfer(from, to,amount-totalFeeFortx); } function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{ swapAndLiquify(liqTokens); swapTokensForETHmkt(mktTokens); emit tokensSwappedDuringTokenomics(balanceToswap); mktTokens = 0; liqTokens = 0; } function addLimitExempt(address newAddress)external onlyOwner{ _liquidityHolders[newAddress] = true; } function swapTokensForETHmkt(uint256 amount)private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // Accept any amount of ETH. path, marketingAddress, block.timestamp ); } function unstuckTokens (IERC20 tokenToClear, address payable destination, uint256 amount) public onlyOwner{ //uint256 contractBalance = tokenToClear.balanceOf(address(this)); tokenToClear.transfer(destination, amount); } function unstuckETH(address payable destination) public onlyOwner{ uint256 ethBalance = address(this).balance; payable(destination).transfer(ethBalance); } function tradeStatus(bool status) public onlyOwner{ tradeEnabled = status; } function swapAndLiquify(uint256 liqTokensPassed) private { uint256 half = liqTokensPassed / 2; uint256 otherHalf = liqTokensPassed - half; uint256 initialBalance = address(this).balance; swapTokensForETH(half); uint256 newBalance = address(this).balance - (initialBalance); addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half,newBalance,otherHalf); } function swapTokensForETH(uint256 tokenAmount) private{ address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH. path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{ _approve(address(this), address(_router), tokenAmount); _router.addLiquidityETH{value:ethAmount}( address(this), tokenAmount, 0, 0, deadAddress,// tr block.timestamp ); } function _approve(address owner,address spender, uint256 amount) internal{ 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); } //Fees related functions function addToExcluded(address toExclude) public onlyOwner{ _excludedFromFees[toExclude] = true; } function removeFromExcluded(address toRemove) public onlyOwner{ _excludedFromFees[toRemove] = false; } function excludePresaleAddresses(address router, address presale) external onlyOwner { _liquidityHolders[address(router)] = true; _liquidityHolders[presale] = true; presaleAddresses[address(router)] = true; presaleAddresses[presale] = true; } function updateThreshold(uint newThreshold) public onlyOwner{ currentThreshold = newThreshold; } function setSwapAndLiquify(bool _enabled) public onlyOwner{ swapAndLiquifyEnabled = _enabled; } //Marketing related function setMktAddress(address newAddress) external onlyOwner{ marketingAddress = payable(newAddress); } function transferAssetsETH(address payable to, uint256 amount) internal{ to.transfer(amount); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updatecurrentbuyliqFee(uint256 newAmount) public onlyOwner{ buyliqFee = newAmount; } function updatecurrentbuymktfee(uint256 newAmount) public onlyOwner{ buymktFee= newAmount; } function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{ sellliqFee= newAmount; } function updatecurrentsellmktfee(uint256 newAmount)public onlyOwner{ sellmktFee= newAmount; } function currentMaxWallet() public view returns(uint256){ return maxWalletAmount; } function currentMaxTx() public view returns(uint256){ return maxTxAmount; } function updateSwapTreshold(uint256 newVal) public onlyOwner{ swapTreshold = newVal; requiredTokensToSwap = _totalSupply*swapTreshold/1000; } function currentTradeStatus() public view returns (bool){ return tradeEnabled; } function currentSwapTreshold() public view returns(uint256){ return swapTreshold; } function currentTokensToSwap() public view returns(uint256){ return requiredTokensToSwap; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
Contract 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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenToClear","type":"address"},{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyliqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuymktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellLiqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellmktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600d81526020017f4f6e6c79436f6d6d756e69747900000000000000000000000000000000000000815250600190805190602001906200005192919062000978565b506040518060400160405280600281526020017f4f43000000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000978565b506012600360006101000a81548160ff021916908360ff16021790555060006004556003600555600260065560026007556001600860006101000a81548160ff0219169083151502179055506014600955600360009054906101000a900460ff16600a6200010e919062000bc2565b620186a06200011e919062000c13565b600a556103e8600754600a5462000136919062000c13565b62000142919062000ca3565b600b5573494c3156e97e986aa1aae776eb7b1dc0b37c2377601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600554600a54620001ae919062000c13565b620001ba919062000ca3565b6013556064600654600a54620001d1919062000c13565b620001dd919062000ca3565b6014556000601660006101000a81548160ff0219169083151502179055506001601660016101000a81548160ff02191690831515021790555060016019556001601a556002601b556002601c556000601d60006101000a81548160ff0219169083151502179055506001601e556001601f55600e602055600e6021556001602260016101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525060006023556000602455348015620002c057600080fd5b50620002e1620002d5620007e260201b60201c565b620007ea60201b60201c565b600a54600c6000620002f8620007e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000d45565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000d45565b6040518363ffffffff1660e01b81526004016200046e92919062000d88565b6020604051808303816000875af11580156200048e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b4919062000d45565b602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006200050a620008ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600062000684620008ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000762602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008d760201b60201c565b62000772620007e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620007d3919062000dc6565b60405180910390a35062000e48565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b828054620009869062000e12565b90600052602060002090601f016020900481019282620009aa5760008555620009f6565b82601f10620009c557805160ff1916838001178555620009f6565b82800160010185558215620009f6579182015b82811115620009f5578251825591602001919060010190620009d8565b5b50905062000a05919062000a09565b5090565b5b8082111562000a2457600081600090555060010162000a0a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ab65780860481111562000a8e5762000a8d62000a28565b5b600185161562000a9e5780820291505b808102905062000aae8562000a57565b945062000a6e565b94509492505050565b60008262000ad1576001905062000ba4565b8162000ae1576000905062000ba4565b816001811462000afa576002811462000b055762000b3b565b600191505062000ba4565b60ff84111562000b1a5762000b1962000a28565b5b8360020a91508482111562000b345762000b3362000a28565b5b5062000ba4565b5060208310610133831016604e8410600b841016171562000b755782820a90508381111562000b6f5762000b6e62000a28565b5b62000ba4565b62000b84848484600162000a64565b9250905081840481111562000b9e5762000b9d62000a28565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000bcf8262000bab565b915062000bdc8362000bb5565b925062000c0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000abf565b905092915050565b600062000c208262000bab565b915062000c2d8362000bab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c695762000c6862000a28565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cb08262000bab565b915062000cbd8362000bab565b92508262000cd05762000ccf62000c74565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d0d8262000ce0565b9050919050565b62000d1f8162000d00565b811462000d2b57600080fd5b50565b60008151905062000d3f8162000d14565b92915050565b60006020828403121562000d5e5762000d5d62000cdb565b5b600062000d6e8482850162000d2e565b91505092915050565b62000d828162000d00565b82525050565b600060408201905062000d9f600083018562000d77565b62000dae602083018462000d77565b9392505050565b62000dc08162000bab565b82525050565b600060208201905062000ddd600083018462000db5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e2b57607f821691505b6020821081141562000e425762000e4162000de3565b5b50919050565b608051614d5462000e6b6000396000818161114201526139a80152614d546000f3fe6080604052600436106103395760003560e01c8063893d20e8116101ab578063b62496f5116100f7578063d7d7442f11610095578063e1370dd31161006f578063e1370dd314610bdf578063edcf19b214610c0a578063f2fde38b14610c33578063f7da678514610c5c57610340565b8063d7d7442f14610b4e578063dd62ed3e14610b77578063ddcf9b9814610bb457610340565b8063cb664534116100d1578063cb66453414610a94578063cba0e99614610abd578063d1294d4c14610afa578063d15bcf0f14610b2357610340565b8063b62496f514610a03578063bf9b015914610a40578063bf9eb54014610a6b57610340565b80639b136da411610164578063a6c38f591161013e578063a6c38f591461094b578063a7a0745214610974578063a9059cbb1461099d578063b4d95a93146109da57610340565b80639b136da4146108ca578063a04bdc81146108f5578063a5ece9411461092057610340565b8063893d20e8146107cc5780638cd0260c146107f75780638da5cb5b1461082057806390f502831461084b57806395d89b41146108765780639a7a23d6146108a157610340565b80634a0e963c116102855780636573c4df11610223578063715018a6116101fd578063715018a61461074c578063751039fc14610763578063801527ce1461077a5780638628c23f146107a357610340565b80636573c4df146106bb5780636df3333a146106e457806370a082311461070f57610340565b80634bd7ace51161025f5780634bd7ace5146106115780635297defd1461063c5780635be76f111461066757806364c161631461069057610340565b80634a0e963c146105925780634a62bb65146105bb5780634a74bb02146105e657610340565b806322788f86116102f25780632d03420b116102cc5780632d03420b146104e8578063313ce56714610511578063487a69051461053c57806349bd5a5e1461056757610340565b806322788f861461045557806323b872dd1461048057806327c8f835146104bd57610340565b806306fdde03146103455780630882a86314610370578063095ea7b31461039957806313b4a7f4146103d657806318160ddd146103ff578063220f66961461042a57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610c85565b6040516103679190613acc565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613b29565b610d17565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190613bb4565b610d9d565b6040516103cd9190613c0f565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190613c2a565b610dbb565b005b34801561040b57600080fd5b50610414610f9b565b6040516104219190613c79565b60405180910390f35b34801561043657600080fd5b5061043f610fa5565b60405161044c9190613c0f565b60405180910390f35b34801561046157600080fd5b5061046a610fb8565b6040516104779190613c79565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613c94565b610fc2565b6040516104b49190613c0f565b60405180910390f35b3480156104c957600080fd5b506104d2611140565b6040516104df9190613cf6565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613d3d565b611164565b005b34801561051d57600080fd5b506105266111fd565b6040516105339190613c79565b60405180910390f35b34801561054857600080fd5b50610551611217565b60405161055e9190613c79565b60405180910390f35b34801561057357600080fd5b5061057c611221565b6040516105899190613cf6565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613d6a565b611247565b005b3480156105c757600080fd5b506105d061131e565b6040516105dd9190613c0f565b60405180910390f35b3480156105f257600080fd5b506105fb611331565b6040516106089190613c0f565b60405180910390f35b34801561061d57600080fd5b50610626611344565b6040516106339190613c79565b60405180910390f35b34801561064857600080fd5b5061065161134e565b60405161065e9190613c79565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190613dd5565b611358565b005b34801561069c57600080fd5b506106a5611424565b6040516106b29190613c79565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190613b29565b61142e565b005b3480156106f057600080fd5b506106f96114d6565b6040516107069190613c79565b60405180910390f35b34801561071b57600080fd5b5061073660048036038101906107319190613d6a565b6114e0565b6040516107439190613c79565b60405180910390f35b34801561075857600080fd5b50610761611529565b005b34801561076f57600080fd5b506107786115b1565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613d3d565b61164a565b005b3480156107af57600080fd5b506107ca60048036038101906107c59190613b29565b6116e3565b005b3480156107d857600080fd5b506107e1611769565b6040516107ee9190613cf6565b60405180910390f35b34801561080357600080fd5b5061081e60048036038101906108199190613b29565b611778565b005b34801561082c57600080fd5b506108356117fe565b6040516108429190613cf6565b60405180910390f35b34801561085757600080fd5b50610860611827565b60405161086d9190613c79565b60405180910390f35b34801561088257600080fd5b5061088b611831565b6040516108989190613acc565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613e02565b6118c3565b005b3480156108d657600080fd5b506108df6119de565b6040516108ec9190613c79565b60405180910390f35b34801561090157600080fd5b5061090a6119e8565b6040516109179190613c79565b60405180910390f35b34801561092c57600080fd5b506109356119ee565b6040516109429190613e51565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613e6c565b611a14565b005b34801561098057600080fd5b5061099b60048036038101906109969190613b29565b611aeb565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613bb4565b611b93565b6040516109d19190613c0f565b60405180910390f35b3480156109e657600080fd5b50610a0160048036038101906109fc9190613d6a565b611bb1565b005b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613d6a565b611c88565b604051610a379190613c0f565b60405180910390f35b348015610a4c57600080fd5b50610a55611ca8565b604051610a629190613c79565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d9190613d6a565b611cb2565b005b348015610aa057600080fd5b50610abb6004803603810190610ab69190613d6a565b611d72565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613d6a565b611e49565b604051610af19190613c0f565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613b29565b611e9f565b005b348015610b2f57600080fd5b50610b38611f48565b604051610b459190613c0f565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190613b29565b611f5f565b005b348015610b8357600080fd5b50610b9e6004803603810190610b999190613c2a565b611fe5565b604051610bab9190613c79565b60405180910390f35b348015610bc057600080fd5b50610bc961206c565b604051610bd69190613c79565b60405180910390f35b348015610beb57600080fd5b50610bf4612076565b604051610c019190613c79565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190613b29565b612080565b005b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d6a565b612106565b005b348015610c6857600080fd5b50610c836004803603810190610c7e9190613eea565b6121fe565b005b606060018054610c9490613f6c565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090613f6c565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b5050505050905090565b610d1f6122fe565b73ffffffffffffffffffffffffffffffffffffffff16610d3d6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90613fea565b60405180910390fd5b8060198190555050565b6000610db1610daa6122fe565b8484612306565b6001905092915050565b610dc36122fe565b73ffffffffffffffffffffffffffffffffffffffff16610de16117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90613fea565b60405180910390fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a54905090565b602260009054906101000a900460ff1681565b6000600954905090565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061100d6122fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561108a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110819061407c565b60405180910390fd5b6110958484846124d1565b611135846110a16122fe565b84600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb6122fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113091906140cb565b612306565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61116c6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661118a6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790613fea565b60405180910390fd5b80601d60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600b54905090565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61124f6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661126d6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613fea565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600860009054906101000a900460ff1681565b602260019054906101000a900460ff1681565b6000601954905090565b6000602054905090565b6113606122fe565b73ffffffffffffffffffffffffffffffffffffffff1661137e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90613fea565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561141f573d6000803e3d6000fd5b505050565b6000602454905090565b6114366122fe565b73ffffffffffffffffffffffffffffffffffffffff166114546117fe565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a190613fea565b60405180910390fd5b806005819055506064600554600a546114c391906140ff565b6114cd9190614188565b60138190555050565b6000600754905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115316122fe565b73ffffffffffffffffffffffffffffffffffffffff1661154f6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90613fea565b60405180910390fd5b6115af6000613207565b565b6115b96122fe565b73ffffffffffffffffffffffffffffffffffffffff166115d76117fe565b73ffffffffffffffffffffffffffffffffffffffff161461162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490613fea565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b6116526122fe565b73ffffffffffffffffffffffffffffffffffffffff166116706117fe565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90613fea565b60405180910390fd5b80602260016101000a81548160ff02191690831515021790555050565b6116eb6122fe565b73ffffffffffffffffffffffffffffffffffffffff166117096117fe565b73ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690613fea565b60405180910390fd5b8060208190555050565b60006117736117fe565b905090565b6117806122fe565b73ffffffffffffffffffffffffffffffffffffffff1661179e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146117f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117eb90613fea565b60405180910390fd5b80601e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601e54905090565b60606002805461184090613f6c565b80601f016020809104026020016040519081016040528092919081815260200182805461186c90613f6c565b80156118b95780601f1061188e576101008083540402835291602001916118b9565b820191906000526020600020905b81548152906001019060200180831161189c57829003601f168201915b5050505050905090565b6118cb6122fe565b73ffffffffffffffffffffffffffffffffffffffff166118e96117fe565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613fea565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c79061422b565b60405180910390fd5b6119da82826132cb565b5050565b6000601b54905090565b600b5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611a3a6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613fea565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611af36122fe565b73ffffffffffffffffffffffffffffffffffffffff16611b116117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613fea565b60405180910390fd5b806006819055506064600654600a54611b8091906140ff565b611b8a9190614188565b60148190555050565b6000611ba7611ba06122fe565b84846124d1565b6001905092915050565b611bb96122fe565b73ffffffffffffffffffffffffffffffffffffffff16611bd76117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613fea565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000601454905090565b611cba6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611cd86117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613fea565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d7a6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611d986117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613fea565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ea76122fe565b73ffffffffffffffffffffffffffffffffffffffff16611ec56117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613fea565b60405180910390fd5b806007819055506103e8600754600a54611f3591906140ff565b611f3f9190614188565b600b8190555050565b6000601d60009054906101000a900460ff16905090565b611f676122fe565b73ffffffffffffffffffffffffffffffffffffffff16611f856117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290613fea565b60405180910390fd5b8060098190555050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602354905090565b6000601354905090565b6120886122fe565b73ffffffffffffffffffffffffffffffffffffffff166120a66117fe565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613fea565b60405180910390fd5b80601b8190555050565b61210e6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661212c6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613fea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e9906142bd565b60405180910390fd5b6121fb81613207565b50565b6122066122fe565b73ffffffffffffffffffffffffffffffffffffffff166122246117fe565b73ffffffffffffffffffffffffffffffffffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190613fea565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016122b592919061433c565b6020604051808303816000875af11580156122d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f8919061437a565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dd906144ab565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124c49190613c79565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125389061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906145cf565b60405180910390fd5b600081116125f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125eb90614661565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561267b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612672906146f3565b60405180910390fd5b60001515601d60009054906101000a900460ff161515141561277857601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127385750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276e9061475f565b60405180910390fd5b5b600860009054906101000a900460ff1615612b65576127956117fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561280357506127d36117fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561283c5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612876575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b6457601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561291e5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c557601454821115612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f906147f1565b60405180910390fd5b601354612974846114e0565b8361297f9190614811565b11156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b7906148b3565b60405180910390fd5b612b63565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a685750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ab757601454821115612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614945565b60405180910390fd5b612b62565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b6157601354612b14846114e0565b83612b1f9190614811565b1115612b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b57906148b3565b60405180910390fd5b5b5b5b5b5b6000612b70306114e0565b9050600b548110158015612b915750602260009054906101000a900460ff16155b8015612beb5750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612c035750602260019054906101000a900460ff165b15612c2157600b548110612c2057600b549050612c1f8161336c565b5b5b600060019050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cc85750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cda576000600481905550600090505b6000808215612fd65760011515601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480612d92575060011515601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc9906149b1565b60405180910390fd5b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e795750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612ed5576000600481905550606460205487612e9691906140ff565b612ea09190614188565b91506064601e5487612eb291906140ff565b612ebc9190614188565b90508082612eca9190614811565b600481905550612fd5565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f7c5750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612fd45760006004819055506064601b5487612f9991906140ff565b612fa39190614188565b9150606460195487612fb591906140ff565b612fbf9190614188565b90508082612fcd9190614811565b6004819055505b5b5b8585612fe291906140cb565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080828761303291906140cb565b61303c91906140cb565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461308a9190614811565b925050819055506000811461318b57600454600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130ea9190614811565b9250508190555080602460008282546131039190614811565b92505081905550816023600082825461311c9190614811565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516131829190613c79565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896131e891906140cb565b6040516131f59190613c79565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602260006101000a81548160ff021916908315150217905550613392602454613402565b61339d60235461348d565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f01904816040516133cc9190613c79565b60405180910390a1600060238190555060006024819055506000602260006101000a81548160ff02191690831515021790555050565b60006002826134119190614188565b90506000818361342191906140cb565b90506000479050613431836136f2565b6000814761343f91906140cb565b905061344b8382613935565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161347e939291906149d1565b60405180910390a15050505050565b6000600267ffffffffffffffff8111156134aa576134a9614a08565b5b6040519080825280602002602001820160405280156134d85781602001602082028036833780820191505090505b50905030816000815181106134f0576134ef614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bb9190614a7b565b816001815181106135cf576135ce614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061363630602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016136bc959493929190614ba1565b600060405180830381600087803b1580156136d657600080fd5b505af11580156136ea573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff81111561370f5761370e614a08565b5b60405190808252806020026020018201604052801561373d5781602001602082028036833780820191505090505b509050308160008151811061375557613754614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138209190614a7b565b8160018151811061383457613833614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061389b30602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138ff959493929190614bfb565b600060405180830381600087803b15801561391957600080fd5b505af115801561392d573d6000803e3d6000fd5b505050505050565b61396230602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b81526004016139e996959493929190614c55565b60606040518083038185885af1158015613a07573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a2c9190614ccb565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a6d578082015181840152602081019050613a52565b83811115613a7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a9e82613a33565b613aa88185613a3e565b9350613ab8818560208601613a4f565b613ac181613a82565b840191505092915050565b60006020820190508181036000830152613ae68184613a93565b905092915050565b600080fd5b6000819050919050565b613b0681613af3565b8114613b1157600080fd5b50565b600081359050613b2381613afd565b92915050565b600060208284031215613b3f57613b3e613aee565b5b6000613b4d84828501613b14565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b8182613b56565b9050919050565b613b9181613b76565b8114613b9c57600080fd5b50565b600081359050613bae81613b88565b92915050565b60008060408385031215613bcb57613bca613aee565b5b6000613bd985828601613b9f565b9250506020613bea85828601613b14565b9150509250929050565b60008115159050919050565b613c0981613bf4565b82525050565b6000602082019050613c246000830184613c00565b92915050565b60008060408385031215613c4157613c40613aee565b5b6000613c4f85828601613b9f565b9250506020613c6085828601613b9f565b9150509250929050565b613c7381613af3565b82525050565b6000602082019050613c8e6000830184613c6a565b92915050565b600080600060608486031215613cad57613cac613aee565b5b6000613cbb86828701613b9f565b9350506020613ccc86828701613b9f565b9250506040613cdd86828701613b14565b9150509250925092565b613cf081613b76565b82525050565b6000602082019050613d0b6000830184613ce7565b92915050565b613d1a81613bf4565b8114613d2557600080fd5b50565b600081359050613d3781613d11565b92915050565b600060208284031215613d5357613d52613aee565b5b6000613d6184828501613d28565b91505092915050565b600060208284031215613d8057613d7f613aee565b5b6000613d8e84828501613b9f565b91505092915050565b6000613da282613b56565b9050919050565b613db281613d97565b8114613dbd57600080fd5b50565b600081359050613dcf81613da9565b92915050565b600060208284031215613deb57613dea613aee565b5b6000613df984828501613dc0565b91505092915050565b60008060408385031215613e1957613e18613aee565b5b6000613e2785828601613b9f565b9250506020613e3885828601613d28565b9150509250929050565b613e4b81613d97565b82525050565b6000602082019050613e666000830184613e42565b92915050565b60008060408385031215613e8357613e82613aee565b5b6000613e9185828601613dc0565b9250506020613ea285828601613d28565b9150509250929050565b6000613eb782613b76565b9050919050565b613ec781613eac565b8114613ed257600080fd5b50565b600081359050613ee481613ebe565b92915050565b600080600060608486031215613f0357613f02613aee565b5b6000613f1186828701613ed5565b9350506020613f2286828701613dc0565b9250506040613f3386828701613b14565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f8457607f821691505b60208210811415613f9857613f97613f3d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fd4602083613a3e565b9150613fdf82613f9e565b602082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614066602883613a3e565b91506140718261400a565b604082019050919050565b6000602082019050818103600083015261409581614059565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140d682613af3565b91506140e183613af3565b9250828210156140f4576140f361409c565b5b828203905092915050565b600061410a82613af3565b915061411583613af3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561414e5761414d61409c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061419382613af3565b915061419e83613af3565b9250826141ae576141ad614159565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614215603983613a3e565b9150614220826141b9565b604082019050919050565b6000602082019050818103600083015261424481614208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142a7602683613a3e565b91506142b28261424b565b604082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b6000819050919050565b60006143026142fd6142f884613b56565b6142dd565b613b56565b9050919050565b6000614314826142e7565b9050919050565b600061432682614309565b9050919050565b6143368161431b565b82525050565b6000604082019050614351600083018561432d565b61435e6020830184613c6a565b9392505050565b60008151905061437481613d11565b92915050565b6000602082840312156143905761438f613aee565b5b600061439e84828501614365565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614403602483613a3e565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614495602283613a3e565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614527602583613a3e565b9150614532826144cb565b604082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b9602383613a3e565b91506145c48261455d565b604082019050919050565b600060208201905081810360008301526145e8816145ac565b9050919050565b7f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b600061464b603283613a3e565b9150614656826145ef565b604082019050919050565b6000602082019050818103600083015261467a8161463e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146dd602683613a3e565b91506146e882614681565b604082019050919050565b6000602082019050818103600083015261470c816146d0565b9050919050565b7f43616e742074726164652c2074726164652069732064697361626c6564000000600082015250565b6000614749601d83613a3e565b915061475482614713565b602082019050919050565b600060208201905081810360008301526147788161473c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006147db603583613a3e565b91506147e68261477f565b604082019050919050565b6000602082019050818103600083015261480a816147ce565b9050919050565b600061481c82613af3565b915061482783613af3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561485c5761485b61409c565b5b828201905092915050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b600061489d601b83613a3e565b91506148a882614867565b602082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061492f603683613a3e565b915061493a826148d3565b604082019050919050565b6000602082019050818103600083015261495e81614922565b9050919050565b7f4e6f20626f747320616c6c6f77656420746f2074726164650000000000000000600082015250565b600061499b601883613a3e565b91506149a682614965565b602082019050919050565b600060208201905081810360008301526149ca8161498e565b9050919050565b60006060820190506149e66000830186613c6a565b6149f36020830185613c6a565b614a006040830184613c6a565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614a7581613b88565b92915050565b600060208284031215614a9157614a90613aee565b5b6000614a9f84828501614a66565b91505092915050565b6000819050919050565b6000614acd614ac8614ac384614aa8565b6142dd565b613af3565b9050919050565b614add81614ab2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b1881613b76565b82525050565b6000614b2a8383614b0f565b60208301905092915050565b6000602082019050919050565b6000614b4e82614ae3565b614b588185614aee565b9350614b6383614aff565b8060005b83811015614b94578151614b7b8882614b1e565b9750614b8683614b36565b925050600181019050614b67565b5085935050505092915050565b600060a082019050614bb66000830188613c6a565b614bc36020830187614ad4565b8181036040830152614bd58186614b43565b9050614be4606083018561432d565b614bf16080830184613c6a565b9695505050505050565b600060a082019050614c106000830188613c6a565b614c1d6020830187614ad4565b8181036040830152614c2f8186614b43565b9050614c3e6060830185613ce7565b614c4b6080830184613c6a565b9695505050505050565b600060c082019050614c6a6000830189613ce7565b614c776020830188613c6a565b614c846040830187614ad4565b614c916060830186614ad4565b614c9e6080830185613ce7565b614cab60a0830184613c6a565b979650505050505050565b600081519050614cc581613afd565b92915050565b600080600060608486031215614ce457614ce3613aee565b5b6000614cf286828701614cb6565b9350506020614d0386828701614cb6565b9250506040614d1486828701614cb6565b915050925092509256fea26469706673582212200d1524955b3e920dee17e65493a21947a70efaf9418db5172bac1c68817c021664736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106103395760003560e01c8063893d20e8116101ab578063b62496f5116100f7578063d7d7442f11610095578063e1370dd31161006f578063e1370dd314610bdf578063edcf19b214610c0a578063f2fde38b14610c33578063f7da678514610c5c57610340565b8063d7d7442f14610b4e578063dd62ed3e14610b77578063ddcf9b9814610bb457610340565b8063cb664534116100d1578063cb66453414610a94578063cba0e99614610abd578063d1294d4c14610afa578063d15bcf0f14610b2357610340565b8063b62496f514610a03578063bf9b015914610a40578063bf9eb54014610a6b57610340565b80639b136da411610164578063a6c38f591161013e578063a6c38f591461094b578063a7a0745214610974578063a9059cbb1461099d578063b4d95a93146109da57610340565b80639b136da4146108ca578063a04bdc81146108f5578063a5ece9411461092057610340565b8063893d20e8146107cc5780638cd0260c146107f75780638da5cb5b1461082057806390f502831461084b57806395d89b41146108765780639a7a23d6146108a157610340565b80634a0e963c116102855780636573c4df11610223578063715018a6116101fd578063715018a61461074c578063751039fc14610763578063801527ce1461077a5780638628c23f146107a357610340565b80636573c4df146106bb5780636df3333a146106e457806370a082311461070f57610340565b80634bd7ace51161025f5780634bd7ace5146106115780635297defd1461063c5780635be76f111461066757806364c161631461069057610340565b80634a0e963c146105925780634a62bb65146105bb5780634a74bb02146105e657610340565b806322788f86116102f25780632d03420b116102cc5780632d03420b146104e8578063313ce56714610511578063487a69051461053c57806349bd5a5e1461056757610340565b806322788f861461045557806323b872dd1461048057806327c8f835146104bd57610340565b806306fdde03146103455780630882a86314610370578063095ea7b31461039957806313b4a7f4146103d657806318160ddd146103ff578063220f66961461042a57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610c85565b6040516103679190613acc565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613b29565b610d17565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190613bb4565b610d9d565b6040516103cd9190613c0f565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190613c2a565b610dbb565b005b34801561040b57600080fd5b50610414610f9b565b6040516104219190613c79565b60405180910390f35b34801561043657600080fd5b5061043f610fa5565b60405161044c9190613c0f565b60405180910390f35b34801561046157600080fd5b5061046a610fb8565b6040516104779190613c79565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613c94565b610fc2565b6040516104b49190613c0f565b60405180910390f35b3480156104c957600080fd5b506104d2611140565b6040516104df9190613cf6565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613d3d565b611164565b005b34801561051d57600080fd5b506105266111fd565b6040516105339190613c79565b60405180910390f35b34801561054857600080fd5b50610551611217565b60405161055e9190613c79565b60405180910390f35b34801561057357600080fd5b5061057c611221565b6040516105899190613cf6565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613d6a565b611247565b005b3480156105c757600080fd5b506105d061131e565b6040516105dd9190613c0f565b60405180910390f35b3480156105f257600080fd5b506105fb611331565b6040516106089190613c0f565b60405180910390f35b34801561061d57600080fd5b50610626611344565b6040516106339190613c79565b60405180910390f35b34801561064857600080fd5b5061065161134e565b60405161065e9190613c79565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190613dd5565b611358565b005b34801561069c57600080fd5b506106a5611424565b6040516106b29190613c79565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190613b29565b61142e565b005b3480156106f057600080fd5b506106f96114d6565b6040516107069190613c79565b60405180910390f35b34801561071b57600080fd5b5061073660048036038101906107319190613d6a565b6114e0565b6040516107439190613c79565b60405180910390f35b34801561075857600080fd5b50610761611529565b005b34801561076f57600080fd5b506107786115b1565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613d3d565b61164a565b005b3480156107af57600080fd5b506107ca60048036038101906107c59190613b29565b6116e3565b005b3480156107d857600080fd5b506107e1611769565b6040516107ee9190613cf6565b60405180910390f35b34801561080357600080fd5b5061081e60048036038101906108199190613b29565b611778565b005b34801561082c57600080fd5b506108356117fe565b6040516108429190613cf6565b60405180910390f35b34801561085757600080fd5b50610860611827565b60405161086d9190613c79565b60405180910390f35b34801561088257600080fd5b5061088b611831565b6040516108989190613acc565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613e02565b6118c3565b005b3480156108d657600080fd5b506108df6119de565b6040516108ec9190613c79565b60405180910390f35b34801561090157600080fd5b5061090a6119e8565b6040516109179190613c79565b60405180910390f35b34801561092c57600080fd5b506109356119ee565b6040516109429190613e51565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613e6c565b611a14565b005b34801561098057600080fd5b5061099b60048036038101906109969190613b29565b611aeb565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613bb4565b611b93565b6040516109d19190613c0f565b60405180910390f35b3480156109e657600080fd5b50610a0160048036038101906109fc9190613d6a565b611bb1565b005b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613d6a565b611c88565b604051610a379190613c0f565b60405180910390f35b348015610a4c57600080fd5b50610a55611ca8565b604051610a629190613c79565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d9190613d6a565b611cb2565b005b348015610aa057600080fd5b50610abb6004803603810190610ab69190613d6a565b611d72565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613d6a565b611e49565b604051610af19190613c0f565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613b29565b611e9f565b005b348015610b2f57600080fd5b50610b38611f48565b604051610b459190613c0f565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190613b29565b611f5f565b005b348015610b8357600080fd5b50610b9e6004803603810190610b999190613c2a565b611fe5565b604051610bab9190613c79565b60405180910390f35b348015610bc057600080fd5b50610bc961206c565b604051610bd69190613c79565b60405180910390f35b348015610beb57600080fd5b50610bf4612076565b604051610c019190613c79565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190613b29565b612080565b005b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613d6a565b612106565b005b348015610c6857600080fd5b50610c836004803603810190610c7e9190613eea565b6121fe565b005b606060018054610c9490613f6c565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090613f6c565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b5050505050905090565b610d1f6122fe565b73ffffffffffffffffffffffffffffffffffffffff16610d3d6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90613fea565b60405180910390fd5b8060198190555050565b6000610db1610daa6122fe565b8484612306565b6001905092915050565b610dc36122fe565b73ffffffffffffffffffffffffffffffffffffffff16610de16117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90613fea565b60405180910390fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a54905090565b602260009054906101000a900460ff1681565b6000600954905090565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061100d6122fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561108a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110819061407c565b60405180910390fd5b6110958484846124d1565b611135846110a16122fe565b84600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb6122fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113091906140cb565b612306565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b61116c6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661118a6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790613fea565b60405180910390fd5b80601d60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600b54905090565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61124f6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661126d6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613fea565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600860009054906101000a900460ff1681565b602260019054906101000a900460ff1681565b6000601954905090565b6000602054905090565b6113606122fe565b73ffffffffffffffffffffffffffffffffffffffff1661137e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90613fea565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561141f573d6000803e3d6000fd5b505050565b6000602454905090565b6114366122fe565b73ffffffffffffffffffffffffffffffffffffffff166114546117fe565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a190613fea565b60405180910390fd5b806005819055506064600554600a546114c391906140ff565b6114cd9190614188565b60138190555050565b6000600754905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115316122fe565b73ffffffffffffffffffffffffffffffffffffffff1661154f6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90613fea565b60405180910390fd5b6115af6000613207565b565b6115b96122fe565b73ffffffffffffffffffffffffffffffffffffffff166115d76117fe565b73ffffffffffffffffffffffffffffffffffffffff161461162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490613fea565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b6116526122fe565b73ffffffffffffffffffffffffffffffffffffffff166116706117fe565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90613fea565b60405180910390fd5b80602260016101000a81548160ff02191690831515021790555050565b6116eb6122fe565b73ffffffffffffffffffffffffffffffffffffffff166117096117fe565b73ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690613fea565b60405180910390fd5b8060208190555050565b60006117736117fe565b905090565b6117806122fe565b73ffffffffffffffffffffffffffffffffffffffff1661179e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146117f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117eb90613fea565b60405180910390fd5b80601e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601e54905090565b60606002805461184090613f6c565b80601f016020809104026020016040519081016040528092919081815260200182805461186c90613f6c565b80156118b95780601f1061188e576101008083540402835291602001916118b9565b820191906000526020600020905b81548152906001019060200180831161189c57829003601f168201915b5050505050905090565b6118cb6122fe565b73ffffffffffffffffffffffffffffffffffffffff166118e96117fe565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613fea565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c79061422b565b60405180910390fd5b6119da82826132cb565b5050565b6000601b54905090565b600b5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611a3a6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613fea565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611af36122fe565b73ffffffffffffffffffffffffffffffffffffffff16611b116117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613fea565b60405180910390fd5b806006819055506064600654600a54611b8091906140ff565b611b8a9190614188565b60148190555050565b6000611ba7611ba06122fe565b84846124d1565b6001905092915050565b611bb96122fe565b73ffffffffffffffffffffffffffffffffffffffff16611bd76117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613fea565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000601454905090565b611cba6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611cd86117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613fea565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d7a6122fe565b73ffffffffffffffffffffffffffffffffffffffff16611d986117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613fea565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ea76122fe565b73ffffffffffffffffffffffffffffffffffffffff16611ec56117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613fea565b60405180910390fd5b806007819055506103e8600754600a54611f3591906140ff565b611f3f9190614188565b600b8190555050565b6000601d60009054906101000a900460ff16905090565b611f676122fe565b73ffffffffffffffffffffffffffffffffffffffff16611f856117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290613fea565b60405180910390fd5b8060098190555050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602354905090565b6000601354905090565b6120886122fe565b73ffffffffffffffffffffffffffffffffffffffff166120a66117fe565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613fea565b60405180910390fd5b80601b8190555050565b61210e6122fe565b73ffffffffffffffffffffffffffffffffffffffff1661212c6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613fea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e9906142bd565b60405180910390fd5b6121fb81613207565b50565b6122066122fe565b73ffffffffffffffffffffffffffffffffffffffff166122246117fe565b73ffffffffffffffffffffffffffffffffffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190613fea565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016122b592919061433c565b6020604051808303816000875af11580156122d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f8919061437a565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dd906144ab565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124c49190613c79565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125389061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906145cf565b60405180910390fd5b600081116125f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125eb90614661565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561267b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612672906146f3565b60405180910390fd5b60001515601d60009054906101000a900460ff161515141561277857601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127385750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276e9061475f565b60405180910390fd5b5b600860009054906101000a900460ff1615612b65576127956117fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561280357506127d36117fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561283c5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612876575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b6457601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561291e5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c557601454821115612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f906147f1565b60405180910390fd5b601354612974846114e0565b8361297f9190614811565b11156129c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b7906148b3565b60405180910390fd5b612b63565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a685750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ab757601454821115612ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa990614945565b60405180910390fd5b612b62565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b6157601354612b14846114e0565b83612b1f9190614811565b1115612b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b57906148b3565b60405180910390fd5b5b5b5b5b5b6000612b70306114e0565b9050600b548110158015612b915750602260009054906101000a900460ff16155b8015612beb5750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612c035750602260019054906101000a900460ff165b15612c2157600b548110612c2057600b549050612c1f8161336c565b5b5b600060019050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cc85750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cda576000600481905550600090505b6000808215612fd65760011515601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480612d92575060011515601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc9906149b1565b60405180910390fd5b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e795750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612ed5576000600481905550606460205487612e9691906140ff565b612ea09190614188565b91506064601e5487612eb291906140ff565b612ebc9190614188565b90508082612eca9190614811565b600481905550612fd5565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f7c5750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612fd45760006004819055506064601b5487612f9991906140ff565b612fa39190614188565b9150606460195487612fb591906140ff565b612fbf9190614188565b90508082612fcd9190614811565b6004819055505b5b5b8585612fe291906140cb565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080828761303291906140cb565b61303c91906140cb565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461308a9190614811565b925050819055506000811461318b57600454600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130ea9190614811565b9250508190555080602460008282546131039190614811565b92505081905550816023600082825461311c9190614811565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516131829190613c79565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896131e891906140cb565b6040516131f59190613c79565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602260006101000a81548160ff021916908315150217905550613392602454613402565b61339d60235461348d565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f01904816040516133cc9190613c79565b60405180910390a1600060238190555060006024819055506000602260006101000a81548160ff02191690831515021790555050565b60006002826134119190614188565b90506000818361342191906140cb565b90506000479050613431836136f2565b6000814761343f91906140cb565b905061344b8382613935565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161347e939291906149d1565b60405180910390a15050505050565b6000600267ffffffffffffffff8111156134aa576134a9614a08565b5b6040519080825280602002602001820160405280156134d85781602001602082028036833780820191505090505b50905030816000815181106134f0576134ef614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bb9190614a7b565b816001815181106135cf576135ce614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061363630602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016136bc959493929190614ba1565b600060405180830381600087803b1580156136d657600080fd5b505af11580156136ea573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff81111561370f5761370e614a08565b5b60405190808252806020026020018201604052801561373d5781602001602082028036833780820191505090505b509050308160008151811061375557613754614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138209190614a7b565b8160018151811061383457613833614a37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061389b30602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138ff959493929190614bfb565b600060405180830381600087803b15801561391957600080fd5b505af115801561392d573d6000803e3d6000fd5b505050505050565b61396230602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612306565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f000000000000000000000000000000000000000000000000000000000000dead426040518863ffffffff1660e01b81526004016139e996959493929190614c55565b60606040518083038185885af1158015613a07573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a2c9190614ccb565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a6d578082015181840152602081019050613a52565b83811115613a7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a9e82613a33565b613aa88185613a3e565b9350613ab8818560208601613a4f565b613ac181613a82565b840191505092915050565b60006020820190508181036000830152613ae68184613a93565b905092915050565b600080fd5b6000819050919050565b613b0681613af3565b8114613b1157600080fd5b50565b600081359050613b2381613afd565b92915050565b600060208284031215613b3f57613b3e613aee565b5b6000613b4d84828501613b14565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b8182613b56565b9050919050565b613b9181613b76565b8114613b9c57600080fd5b50565b600081359050613bae81613b88565b92915050565b60008060408385031215613bcb57613bca613aee565b5b6000613bd985828601613b9f565b9250506020613bea85828601613b14565b9150509250929050565b60008115159050919050565b613c0981613bf4565b82525050565b6000602082019050613c246000830184613c00565b92915050565b60008060408385031215613c4157613c40613aee565b5b6000613c4f85828601613b9f565b9250506020613c6085828601613b9f565b9150509250929050565b613c7381613af3565b82525050565b6000602082019050613c8e6000830184613c6a565b92915050565b600080600060608486031215613cad57613cac613aee565b5b6000613cbb86828701613b9f565b9350506020613ccc86828701613b9f565b9250506040613cdd86828701613b14565b9150509250925092565b613cf081613b76565b82525050565b6000602082019050613d0b6000830184613ce7565b92915050565b613d1a81613bf4565b8114613d2557600080fd5b50565b600081359050613d3781613d11565b92915050565b600060208284031215613d5357613d52613aee565b5b6000613d6184828501613d28565b91505092915050565b600060208284031215613d8057613d7f613aee565b5b6000613d8e84828501613b9f565b91505092915050565b6000613da282613b56565b9050919050565b613db281613d97565b8114613dbd57600080fd5b50565b600081359050613dcf81613da9565b92915050565b600060208284031215613deb57613dea613aee565b5b6000613df984828501613dc0565b91505092915050565b60008060408385031215613e1957613e18613aee565b5b6000613e2785828601613b9f565b9250506020613e3885828601613d28565b9150509250929050565b613e4b81613d97565b82525050565b6000602082019050613e666000830184613e42565b92915050565b60008060408385031215613e8357613e82613aee565b5b6000613e9185828601613dc0565b9250506020613ea285828601613d28565b9150509250929050565b6000613eb782613b76565b9050919050565b613ec781613eac565b8114613ed257600080fd5b50565b600081359050613ee481613ebe565b92915050565b600080600060608486031215613f0357613f02613aee565b5b6000613f1186828701613ed5565b9350506020613f2286828701613dc0565b9250506040613f3386828701613b14565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f8457607f821691505b60208210811415613f9857613f97613f3d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fd4602083613a3e565b9150613fdf82613f9e565b602082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000614066602883613a3e565b91506140718261400a565b604082019050919050565b6000602082019050818103600083015261409581614059565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140d682613af3565b91506140e183613af3565b9250828210156140f4576140f361409c565b5b828203905092915050565b600061410a82613af3565b915061411583613af3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561414e5761414d61409c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061419382613af3565b915061419e83613af3565b9250826141ae576141ad614159565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614215603983613a3e565b9150614220826141b9565b604082019050919050565b6000602082019050818103600083015261424481614208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142a7602683613a3e565b91506142b28261424b565b604082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b6000819050919050565b60006143026142fd6142f884613b56565b6142dd565b613b56565b9050919050565b6000614314826142e7565b9050919050565b600061432682614309565b9050919050565b6143368161431b565b82525050565b6000604082019050614351600083018561432d565b61435e6020830184613c6a565b9392505050565b60008151905061437481613d11565b92915050565b6000602082840312156143905761438f613aee565b5b600061439e84828501614365565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614403602483613a3e565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614495602283613a3e565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614527602583613a3e565b9150614532826144cb565b604082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b9602383613a3e565b91506145c48261455d565b604082019050919050565b600060208201905081810360008301526145e8816145ac565b9050919050565b7f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b600061464b603283613a3e565b9150614656826145ef565b604082019050919050565b6000602082019050818103600083015261467a8161463e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006146dd602683613a3e565b91506146e882614681565b604082019050919050565b6000602082019050818103600083015261470c816146d0565b9050919050565b7f43616e742074726164652c2074726164652069732064697361626c6564000000600082015250565b6000614749601d83613a3e565b915061475482614713565b602082019050919050565b600060208201905081810360008301526147788161473c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006147db603583613a3e565b91506147e68261477f565b604082019050919050565b6000602082019050818103600083015261480a816147ce565b9050919050565b600061481c82613af3565b915061482783613af3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561485c5761485b61409c565b5b828201905092915050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b600061489d601b83613a3e565b91506148a882614867565b602082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061492f603683613a3e565b915061493a826148d3565b604082019050919050565b6000602082019050818103600083015261495e81614922565b9050919050565b7f4e6f20626f747320616c6c6f77656420746f2074726164650000000000000000600082015250565b600061499b601883613a3e565b91506149a682614965565b602082019050919050565b600060208201905081810360008301526149ca8161498e565b9050919050565b60006060820190506149e66000830186613c6a565b6149f36020830185613c6a565b614a006040830184613c6a565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614a7581613b88565b92915050565b600060208284031215614a9157614a90613aee565b5b6000614a9f84828501614a66565b91505092915050565b6000819050919050565b6000614acd614ac8614ac384614aa8565b6142dd565b613af3565b9050919050565b614add81614ab2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b1881613b76565b82525050565b6000614b2a8383614b0f565b60208301905092915050565b6000602082019050919050565b6000614b4e82614ae3565b614b588185614aee565b9350614b6383614aff565b8060005b83811015614b94578151614b7b8882614b1e565b9750614b8683614b36565b925050600181019050614b67565b5085935050505092915050565b600060a082019050614bb66000830188613c6a565b614bc36020830187614ad4565b8181036040830152614bd58186614b43565b9050614be4606083018561432d565b614bf16080830184613c6a565b9695505050505050565b600060a082019050614c106000830188613c6a565b614c1d6020830187614ad4565b8181036040830152614c2f8186614b43565b9050614c3e6060830185613ce7565b614c4b6080830184613c6a565b9695505050505050565b600060c082019050614c6a6000830189613ce7565b614c776020830188613c6a565b614c846040830187614ad4565b614c916060830186614ad4565b614c9e6080830185613ce7565b614cab60a0830184613c6a565b979650505050505050565b600081519050614cc581613afd565b92915050565b600080600060608486031215614ce457614ce3613aee565b5b6000614cf286828701614cb6565b9350506020614d0386828701614cb6565b9250506040614d1486828701614cb6565b915050925092509256fea26469706673582212200d1524955b3e920dee17e65493a21947a70efaf9418db5172bac1c68817c021664736f6c634300080b0033
Deployed Bytecode Sourcemap
6725:15824:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11290:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21367:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10937:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20085:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10347:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8468:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12789:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11830:388;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8550:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18283:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11200:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22441:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9016:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19839:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7069:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8503:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12362:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12679:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18097:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10239:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11641:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22338:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10464:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6090:94;;;;;;;;;;;;;:::i;:::-;;11111:81;;;;;;;;;;;;;:::i;:::-;;20519:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21729:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10036:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21610:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5439:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12575:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11372:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20923:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12464:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7218:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7633:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12226:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11470:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10593:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19961:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7547:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21960:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20670:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17304:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12896:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22055:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22235:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20399:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10780:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10128:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21857:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21484:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6339:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17846:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11290:76;11329:13;11356:5;11349:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11290:76;:::o;21367:111::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21461:9:::1;21449;:21;;;;21367:111:::0;:::o;10937:168::-;11014:4;11034:37;11043:12;:10;:12::i;:::-;11056:7;11064:6;11034:8;:37::i;:::-;11093:4;11086:11;;10937:168;;;;:::o;20085:302::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20228:4:::1;20191:17;:34;20217:6;20191:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20272:4;20243:17;:26;20261:7;20243:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20323:4;20287:16;:33;20312:6;20287:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;20366:4;20338:16;:25;20355:7;20338:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20085:302:::0;;:::o;10347:106::-;10402:7;10432:12;;10425:19;;10347:106;:::o;8468:28::-;;;;;;;;;;;;;:::o;12789:101::-;12840:7;12866:16;;12859:23;;12789:101;:::o;11830:388::-;11962:4;11996:11;:19;12008:6;11996:19;;;;;;;;;;;;;;;:33;12016:12;:10;:12::i;:::-;11996:33;;;;;;;;;;;;;;;;11986:6;:43;;11978:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;12079:36;12089:6;12097:9;12108:6;12079:9;:36::i;:::-;12120:74;12129:6;12137:12;:10;:12::i;:::-;12187:6;12151:11;:19;12163:6;12151:19;;;;;;;;;;;;;;;:33;12171:12;:10;:12::i;:::-;12151:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;12120:8;:74::i;:::-;12206:4;12199:11;;11830:388;;;;;:::o;8550:81::-;;;:::o;18283:90::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18359:6:::1;18344:12;;:21;;;;;;;;;;;;;;;;;;18283:90:::0;:::o;11200:84::-;11241:7;11267:9;;;;;;;;;;;11260:16;;;;11200:84;:::o;22441:105::-;22492:7;22518:20;;22511:27;;22441:105;:::o;9016:28::-;;;;;;;;;;;;;:::o;19839:114::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19941:4:::1;19910:17;:28;19928:9;19910:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19839:114:::0;:::o;7069:33::-;;;;;;;;;;;;;:::o;8503:40::-;;;;;;;;;;;;;:::o;12362:96::-;12411:7;12441:9;;12434:16;;12362:96;:::o;12679:98::-;12729:7;12759:10;;12752:17;;12679:98;:::o;18097:178::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18173:18:::1;18194:21;18173:42;;18234:11;18226:29;;:41;18256:10;18226:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18162:113;18097:178:::0;:::o;10239:99::-;10290:7;10320:9;;10313:16;;10239:99;:::o;11641:175::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11737:6:::1;11717:17;:26;;;;11803:3;11785:17;;11772:12;;:30;;;;:::i;:::-;:34;;;;:::i;:::-;11754:15;:52;;;;11641:175:::0;:::o;22338:97::-;22389:7;22415:12;;22408:19;;22338:97;:::o;10464:118::-;10530:7;10556:9;:18;10566:7;10556:18;;;;;;;;;;;;;;;;10549:25;;10464:118;;;:::o;6090:94::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6155:21:::1;6173:1;6155:9;:21::i;:::-;6090:94::o:0;11111:81::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11179:5:::1;11162:14;;:22;;;;;;;;;;;;;;;;;;11111:81::o:0;20519:113::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20616:8:::1;20592:21;;:32;;;;;;;;;;;;;;;;;;20519:113:::0;:::o;21729:112::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21824:9:::1;21812:10;:21;;;;21729:112:::0;:::o;10036:86::-;10077:7;10107;:5;:7::i;:::-;10100:14;;10036:86;:::o;21610:113::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21706:9:::1;21694:10;:21;;;;21610:113:::0;:::o;5439:87::-;5485:7;5512:6;;;;;;;;;;;5505:13;;5439:87;:::o;12575:98::-;12625:7;12655:10;;12648:17;;12575:98;:::o;11372:88::-;11413:13;11445:7;11438:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11372:88;:::o;20923:242::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21030:13:::1;;;;;;;;;;;21022:21;;:4;:21;;;;21014:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;21116:41;21145:4;21151:5;21116:28;:41::i;:::-;20923:242:::0;;:::o;12464:96::-;12513:7;12543:9;;12536:16;;12464:96;:::o;7218:71::-;;;;:::o;7633:93::-;;;;;;;;;;;;;:::o;12226:130::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12343:5:::1;12317:10;:23;12328:11;12317:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12226:130:::0;;:::o;11470:164::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11558:6:::1;11542:13;:22;;;;11616:3;11602:13;;11589:12;;:26;;;;:::i;:::-;:30;;;;:::i;:::-;11575:11;:44;;;;11470:164:::0;:::o;10593:176::-;10673:4;10693:40;10703:12;:10;:12::i;:::-;10716:9;10726:6;10693:9;:40::i;:::-;10755:4;10748:11;;10593:176;;;;:::o;19961:116::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20064:5:::1;20034:17;:27;20052:8;20034:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19961:116:::0;:::o;7547:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21960:89::-;22004:7;22030:11;;22023:18;;21960:89;:::o;20670:118::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20769:10:::1;20742:16;;:38;;;;;;;;;;;;;;;;;;20670:118:::0;:::o;17304:123::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17408:4:::1;17376:17;:29;17394:10;17376:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17304:123:::0;:::o;12896:118::-;12953:4;12980:17;:26;12998:7;12980:26;;;;;;;;;;;;;;;;;;;;;;;;;12973:33;;12896:118;;;:::o;22055:174::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22141:6:::1;22126:12;:21;;;;22207:4;22194:12;;22181;;:25;;;;:::i;:::-;:30;;;;:::i;:::-;22158:20;:53;;;;22055:174:::0;:::o;22235:97::-;22286:4;22309:12;;;;;;;;;;;22302:19;;22235:97;:::o;20399:112::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20489:12:::1;20470:16;:31;;;;20399:112:::0;:::o;10780:148::-;10863:7;10893:11;:18;10905:5;10893:18;;;;;;;;;;;;;;;:27;10912:7;10893:27;;;;;;;;;;;;;;;;10886:34;;10780:148;;;;:::o;10128:99::-;10179:7;10209:9;;10202:16;;10128:99;:::o;21857:97::-;21905:7;21931:15;;21924:22;;21857:97;:::o;21484:111::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21578:9:::1;21567;:20;;;;21484:111:::0;:::o;6339:192::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6448:1:::1;6428:22;;:8;:22;;;;6420:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6504:19;6514:8;6504:9;:19::i;:::-;6339:192:::0;:::o;17846:243::-;5670:12;:10;:12::i;:::-;5659:23;;:7;:5;:7::i;:::-;:23;;;5651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18039:12:::1;:21;;;18061:11;18074:6;18039:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17846:243:::0;;;:::o;1399:98::-;1452:7;1479:10;1472:17;;1399:98;:::o;19471:322::-;19580:1;19563:19;;:5;:19;;;;19555:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19655:1;19636:21;;:7;:21;;;;19628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19733:6;19703:11;:18;19715:5;19703:18;;;;;;;;;;;;;;;:27;19722:7;19703:27;;;;;;;;;;;;;;;:36;;;;19765:7;19749:32;;19758:5;19749:32;;;19774:6;19749:32;;;;;;:::i;:::-;;;;;;;;19471:322;;;:::o;13022:4007::-;13136:1;13120:18;;:4;:18;;;;13112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13207:1;13193:16;;:2;:16;;;;13185:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13277:1;13268:6;:10;13260:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13343:21;13367:9;:15;13377:4;13367:15;;;;;;;;;;;;;;;;13343:39;;13418:6;13401:13;:23;;13393:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13497:5;13481:21;;:12;;;;;;;;;;;:21;;;13478:141;;;13526:17;:21;13544:2;13526:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13551:17;:23;13569:4;13551:23;;;;;;;;;;;;;;;;;;;;;;;;;13526:48;13518:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13478:141;13664:14;;;;;;;;;;;13661:1075;;;13724:7;:5;:7::i;:::-;13716:15;;:4;:15;;;;:49;;;;;13758:7;:5;:7::i;:::-;13752:13;;:2;:13;;;;13716:49;:86;;;;;13800:1;13786:16;;:2;:16;;;;13716:86;:128;;;;;13837:6;13823:21;;:2;:21;;;;13716:128;13694:1031;;;13930:25;:31;13956:4;13930:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13966:31;:35;13998:2;13966:35;;;;;;;;;;;;;;;;;;;;;;;;;13965:36;13930:71;13926:784;;;14044:11;;14034:6;:21;;14026:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;14170:15;;14153:13;14163:2;14153:9;:13::i;:::-;14144:6;:22;;;;:::i;:::-;:41;;14136:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13926:784;;;14318:25;:29;14344:2;14318:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14352:31;:37;14384:4;14352:37;;;;;;;;;;;;;;;;;;;;;;;;;14351:38;14318:71;14314:396;;;14432:11;;14422:6;:21;;14414:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;14314:396;;;14549:31;:35;14581:2;14549:35;;;;;;;;;;;;;;;;;;;;;;;;;14545:165;;14643:15;;14626:13;14636:2;14626:9;:13::i;:::-;14617:6;:22;;;;:::i;:::-;:41;;14609:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:165;14314:396;13926:784;13694:1031;13661:1075;14747:25;14775:24;14793:4;14775:9;:24::i;:::-;14747:52;;14835:20;;14815:17;:40;;:66;;;;;14865:16;;;;;;;;;;;14864:17;14815:66;:96;;;;;14898:13;;;;;;;;;;;14890:21;;:4;:21;;;;14815:96;:126;;;;;14920:21;;;;;;;;;;;14815:126;14812:352;;;14985:20;;14964:17;:41;14961:188;;15050:20;;15030:40;;15093:36;15111:17;15093;:36::i;:::-;14961:188;14812:352;15180:13;15196:4;15180:20;;15246:17;:23;15264:4;15246:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;15273:17;:21;15291:2;15273:21;;;;;;;;;;;;;;;;;;;;;;;;;15246:48;15243:159;;;15331:1;15315:13;:17;;;;15362:5;15351:16;;15243:159;15416:17;15459;15537:8;15534:1023;;;15634:4;15614:24;;:10;:16;15625:4;15614:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;:46;;;;15656:4;15640:20;;:10;:14;15651:2;15640:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;15614:46;15611:127;;;15684:34;;;;;;;;;;:::i;:::-;;;;;;;;15611:127;15792:25;:29;15818:2;15792:29;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;15839:7;;;;;;;;;;;15825:22;;:2;:22;;;;15792:55;15788:734;;;15892:1;15876:13;:17;;;;15952:3;15941:10;;15932:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;15920:35;;16014:3;16003:10;;15994:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;15982:35;;16098:9;16086;:21;;;;:::i;:::-;16070:13;:37;;;;15788:734;;;16182:25;:31;16208:4;16182:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;16233:7;;;;;;;;;;;16217:24;;:4;:24;;;;16182:59;16179:343;;;16304:1;16288:13;:17;;;;16359:3;16349:9;;16340:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;16328:34;;16416:3;16406:9;;16397:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;16385:34;;16492:9;16480;:21;;;;:::i;:::-;16464:13;:37;;;;16179:343;15788:734;15534:1023;16607:6;16591:13;:22;;;;:::i;:::-;16573:9;:15;16583:4;16573:15;;;;;;;;;;;;;;;:40;;;;16666:9;16654;16645:6;:18;;;;:::i;:::-;:30;;;;:::i;:::-;16628:9;:13;16638:2;16628:13;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;16706:1;16693:9;:14;16690:249;;16743:13;;16715:9;:24;16733:4;16715:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;16814:9;16801;;:22;;;;;;;:::i;:::-;;;;;;;;16851:9;16838;;:22;;;;;;;:::i;:::-;;;;;;;;16894:4;16871:44;;16880:4;16871:44;;;16901:13;;16871:44;;;;;;:::i;:::-;;;;;;;;16690:249;16973:2;16958:39;;16967:4;16958:39;;;16983:13;;16976:6;:20;;;;:::i;:::-;16958:39;;;;;;:::i;:::-;;;;;;;;13091:3938;;;;;13022:4007;;;:::o;6539:173::-;6595:16;6614:6;;;;;;;;;;;6595:25;;6640:8;6631:6;;:17;;;;;;;;;;;;;;;;;;6695:8;6664:40;;6685:8;6664:40;;;;;;;;;;;;6584:128;6539:173;:::o;21171:188::-;21288:5;21254:25;:31;21280:4;21254:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21345:5;21311:40;;21339:4;21311:40;;;;;;;;;;;;21171:188;;:::o;17035:262::-;9123:4;9104:16;;:23;;;;;;;;;;;;;;;;;;17115:25:::1;17130:9;;17115:14;:25::i;:::-;17151:30;17171:9;;17151:19;:30::i;:::-;17197:44;17227:13;17197:44;;;;;;:::i;:::-;;;;;;;;17264:1;17252:9;:13;;;;17288:1;17276:9;:13;;;;9157:5:::0;9138:16;;:24;;;;;;;;;;;;;;;;;;17035:262;:::o;18381:388::-;18443:12;18476:1;18458:15;:19;;;;:::i;:::-;18443:34;;18482:17;18520:4;18502:15;:22;;;;:::i;:::-;18482:42;;18529:22;18554:21;18529:46;;18582:22;18599:4;18582:16;:22::i;:::-;18609:18;18655:14;18630:21;:40;;;;:::i;:::-;18609:61;;18678:35;18691:9;18702:10;18678:12;:35::i;:::-;18723:41;18738:4;18743:10;18754:9;18723:41;;;;;;;;:::i;:::-;;;;;;;;18438:331;;;;18381:388;:::o;17433:399::-;17496:21;17534:1;17520:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17496:40;;17559:4;17541;17546:1;17541:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17579:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17569:4;17574:1;17569:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;17598:49;17615:4;17630:7;;;;;;;;;;;17640:6;17598:8;:49::i;:::-;17658:7;;;;;;;;;;;:58;;;17722:6;17734:1;17770:4;17780:16;;;;;;;;;;;17802:15;17658:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17485:347;17433:399;:::o;18777:397::-;18836:21;18874:1;18860:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18836:40;;18899:4;18881;18886:1;18881:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18919:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18909:4;18914:1;18909:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;18938:54;18955:4;18970:7;;;;;;;;;;;18980:11;18938:8;:54::i;:::-;19003:7;;;;;;;;;;;:58;;;19067:11;19084:1;19120:4;19138;19149:15;19003:166;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18831:343;18777:397;:::o;19186:277::-;19259:54;19276:4;19291:7;;;;;;;;;;;19301:11;19259:8;:54::i;:::-;19320:7;;;;;;;;;;;:23;;;19350:9;19374:4;19385:11;19402:1;19409;19416:11;19438:15;19320:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19186:277;;:::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:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:118::-;5373:24;5391:5;5373:24;:::i;:::-;5368:3;5361:37;5286:118;;:::o;5410:222::-;5503:4;5541:2;5530:9;5526:18;5518:26;;5554:71;5622:1;5611:9;5607:17;5598:6;5554:71;:::i;:::-;5410:222;;;;:::o;5638:116::-;5708:21;5723:5;5708:21;:::i;:::-;5701:5;5698:32;5688:60;;5744:1;5741;5734:12;5688:60;5638:116;:::o;5760:133::-;5803:5;5841:6;5828:20;5819:29;;5857:30;5881:5;5857:30;:::i;:::-;5760:133;;;;:::o;5899:323::-;5955:6;6004:2;5992:9;5983:7;5979:23;5975:32;5972:119;;;6010:79;;:::i;:::-;5972:119;6130:1;6155:50;6197:7;6188:6;6177:9;6173:22;6155:50;:::i;:::-;6145:60;;6101:114;5899:323;;;;:::o;6228:329::-;6287:6;6336:2;6324:9;6315:7;6311:23;6307:32;6304:119;;;6342:79;;:::i;:::-;6304:119;6462:1;6487:53;6532:7;6523:6;6512:9;6508:22;6487:53;:::i;:::-;6477:63;;6433:117;6228:329;;;;:::o;6563:104::-;6608:7;6637:24;6655:5;6637:24;:::i;:::-;6626:35;;6563:104;;;:::o;6673:138::-;6754:32;6780:5;6754:32;:::i;:::-;6747:5;6744:43;6734:71;;6801:1;6798;6791:12;6734:71;6673:138;:::o;6817:155::-;6871:5;6909:6;6896:20;6887:29;;6925:41;6960:5;6925:41;:::i;:::-;6817:155;;;;:::o;6978:345::-;7045:6;7094:2;7082:9;7073:7;7069:23;7065:32;7062:119;;;7100:79;;:::i;:::-;7062:119;7220:1;7245:61;7298:7;7289:6;7278:9;7274:22;7245:61;:::i;:::-;7235:71;;7191:125;6978:345;;;;:::o;7329:468::-;7394:6;7402;7451:2;7439:9;7430:7;7426:23;7422:32;7419:119;;;7457:79;;:::i;:::-;7419:119;7577:1;7602:53;7647:7;7638:6;7627:9;7623:22;7602:53;:::i;:::-;7592:63;;7548:117;7704:2;7730:50;7772:7;7763:6;7752:9;7748:22;7730:50;:::i;:::-;7720:60;;7675:115;7329:468;;;;;:::o;7803:142::-;7906:32;7932:5;7906:32;:::i;:::-;7901:3;7894:45;7803:142;;:::o;7951:254::-;8060:4;8098:2;8087:9;8083:18;8075:26;;8111:87;8195:1;8184:9;8180:17;8171:6;8111:87;:::i;:::-;7951:254;;;;:::o;8211:484::-;8284:6;8292;8341:2;8329:9;8320:7;8316:23;8312:32;8309:119;;;8347:79;;:::i;:::-;8309:119;8467:1;8492:61;8545:7;8536:6;8525:9;8521:22;8492:61;:::i;:::-;8482:71;;8438:125;8602:2;8628:50;8670:7;8661:6;8650:9;8646:22;8628:50;:::i;:::-;8618:60;;8573:115;8211:484;;;;;:::o;8701:109::-;8751:7;8780:24;8798:5;8780:24;:::i;:::-;8769:35;;8701:109;;;:::o;8816:148::-;8902:37;8933:5;8902:37;:::i;:::-;8895:5;8892:48;8882:76;;8954:1;8951;8944:12;8882:76;8816:148;:::o;8970:165::-;9029:5;9067:6;9054:20;9045:29;;9083:46;9123:5;9083:46;:::i;:::-;8970:165;;;;:::o;9141:661::-;9239:6;9247;9255;9304:2;9292:9;9283:7;9279:23;9275:32;9272:119;;;9310:79;;:::i;:::-;9272:119;9430:1;9455:66;9513:7;9504:6;9493:9;9489:22;9455:66;:::i;:::-;9445:76;;9401:130;9570:2;9596:61;9649:7;9640:6;9629:9;9625:22;9596:61;:::i;:::-;9586:71;;9541:126;9706:2;9732:53;9777:7;9768:6;9757:9;9753:22;9732:53;:::i;:::-;9722:63;;9677:118;9141:661;;;;;:::o;9808:180::-;9856:77;9853:1;9846:88;9953:4;9950:1;9943:15;9977:4;9974:1;9967:15;9994:320;10038:6;10075:1;10069:4;10065:12;10055:22;;10122:1;10116:4;10112:12;10143:18;10133:81;;10199:4;10191:6;10187:17;10177:27;;10133:81;10261:2;10253:6;10250:14;10230:18;10227:38;10224:84;;;10280:18;;:::i;:::-;10224:84;10045:269;9994:320;;;:::o;10320:182::-;10460:34;10456:1;10448:6;10444:14;10437:58;10320:182;:::o;10508:366::-;10650:3;10671:67;10735:2;10730:3;10671:67;:::i;:::-;10664:74;;10747:93;10836:3;10747:93;:::i;:::-;10865:2;10860:3;10856:12;10849:19;;10508:366;;;:::o;10880:419::-;11046:4;11084:2;11073:9;11069:18;11061:26;;11133:9;11127:4;11123:20;11119:1;11108:9;11104:17;11097:47;11161:131;11287:4;11161:131;:::i;:::-;11153:139;;10880:419;;;:::o;11305:227::-;11445:34;11441:1;11433:6;11429:14;11422:58;11514:10;11509:2;11501:6;11497:15;11490:35;11305:227;:::o;11538:366::-;11680:3;11701:67;11765:2;11760:3;11701:67;:::i;:::-;11694:74;;11777:93;11866:3;11777:93;:::i;:::-;11895:2;11890:3;11886:12;11879:19;;11538:366;;;:::o;11910:419::-;12076:4;12114:2;12103:9;12099:18;12091:26;;12163:9;12157:4;12153:20;12149:1;12138:9;12134:17;12127:47;12191:131;12317:4;12191:131;:::i;:::-;12183:139;;11910:419;;;:::o;12335:180::-;12383:77;12380:1;12373:88;12480:4;12477:1;12470:15;12504:4;12501:1;12494:15;12521:191;12561:4;12581:20;12599:1;12581:20;:::i;:::-;12576:25;;12615:20;12633:1;12615:20;:::i;:::-;12610:25;;12654:1;12651;12648:8;12645:34;;;12659:18;;:::i;:::-;12645:34;12704:1;12701;12697:9;12689:17;;12521:191;;;;:::o;12718:348::-;12758:7;12781:20;12799:1;12781:20;:::i;:::-;12776:25;;12815:20;12833:1;12815:20;:::i;:::-;12810:25;;13003:1;12935:66;12931:74;12928:1;12925:81;12920:1;12913:9;12906:17;12902:105;12899:131;;;13010:18;;:::i;:::-;12899:131;13058:1;13055;13051:9;13040:20;;12718:348;;;;:::o;13072:180::-;13120:77;13117:1;13110:88;13217:4;13214:1;13207:15;13241:4;13238:1;13231:15;13258:185;13298:1;13315:20;13333:1;13315:20;:::i;:::-;13310:25;;13349:20;13367:1;13349:20;:::i;:::-;13344:25;;13388:1;13378:35;;13393:18;;:::i;:::-;13378:35;13435:1;13432;13428:9;13423:14;;13258:185;;;;:::o;13449:244::-;13589:34;13585:1;13577:6;13573:14;13566:58;13658:27;13653:2;13645:6;13641:15;13634:52;13449:244;:::o;13699:366::-;13841:3;13862:67;13926:2;13921:3;13862:67;:::i;:::-;13855:74;;13938:93;14027:3;13938:93;:::i;:::-;14056:2;14051:3;14047:12;14040:19;;13699:366;;;:::o;14071:419::-;14237:4;14275:2;14264:9;14260:18;14252:26;;14324:9;14318:4;14314:20;14310:1;14299:9;14295:17;14288:47;14352:131;14478:4;14352:131;:::i;:::-;14344:139;;14071:419;;;:::o;14496:225::-;14636:34;14632:1;14624:6;14620:14;14613:58;14705:8;14700:2;14692:6;14688:15;14681:33;14496:225;:::o;14727:366::-;14869:3;14890:67;14954:2;14949:3;14890:67;:::i;:::-;14883:74;;14966:93;15055:3;14966:93;:::i;:::-;15084:2;15079:3;15075:12;15068:19;;14727:366;;;:::o;15099:419::-;15265:4;15303:2;15292:9;15288:18;15280:26;;15352:9;15346:4;15342:20;15338:1;15327:9;15323:17;15316:47;15380:131;15506:4;15380:131;:::i;:::-;15372:139;;15099:419;;;:::o;15524:60::-;15552:3;15573:5;15566:12;;15524:60;;;:::o;15590:142::-;15640:9;15673:53;15691:34;15700:24;15718:5;15700:24;:::i;:::-;15691:34;:::i;:::-;15673:53;:::i;:::-;15660:66;;15590:142;;;:::o;15738:126::-;15788:9;15821:37;15852:5;15821:37;:::i;:::-;15808:50;;15738:126;;;:::o;15870:134::-;15928:9;15961:37;15992:5;15961:37;:::i;:::-;15948:50;;15870:134;;;:::o;16010:147::-;16105:45;16144:5;16105:45;:::i;:::-;16100:3;16093:58;16010:147;;:::o;16163:348::-;16292:4;16330:2;16319:9;16315:18;16307:26;;16343:79;16419:1;16408:9;16404:17;16395:6;16343:79;:::i;:::-;16432:72;16500:2;16489:9;16485:18;16476:6;16432:72;:::i;:::-;16163:348;;;;;:::o;16517:137::-;16571:5;16602:6;16596:13;16587:22;;16618:30;16642:5;16618:30;:::i;:::-;16517:137;;;;:::o;16660:345::-;16727:6;16776:2;16764:9;16755:7;16751:23;16747:32;16744:119;;;16782:79;;:::i;:::-;16744:119;16902:1;16927:61;16980:7;16971:6;16960:9;16956:22;16927:61;:::i;:::-;16917:71;;16873:125;16660:345;;;;:::o;17011:223::-;17151:34;17147:1;17139:6;17135:14;17128:58;17220:6;17215:2;17207:6;17203:15;17196:31;17011:223;:::o;17240:366::-;17382:3;17403:67;17467:2;17462:3;17403:67;:::i;:::-;17396:74;;17479:93;17568:3;17479:93;:::i;:::-;17597:2;17592:3;17588:12;17581:19;;17240:366;;;:::o;17612:419::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17865:9;17859:4;17855:20;17851:1;17840:9;17836:17;17829:47;17893:131;18019:4;17893:131;:::i;:::-;17885:139;;17612:419;;;:::o;18037:221::-;18177:34;18173:1;18165:6;18161:14;18154:58;18246:4;18241:2;18233:6;18229:15;18222:29;18037:221;:::o;18264:366::-;18406:3;18427:67;18491:2;18486:3;18427:67;:::i;:::-;18420:74;;18503:93;18592:3;18503:93;:::i;:::-;18621:2;18616:3;18612:12;18605:19;;18264:366;;;:::o;18636:419::-;18802:4;18840:2;18829:9;18825:18;18817:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18917:131;19043:4;18917:131;:::i;:::-;18909:139;;18636:419;;;:::o;19061:224::-;19201:34;19197:1;19189:6;19185:14;19178:58;19270:7;19265:2;19257:6;19253:15;19246:32;19061:224;:::o;19291:366::-;19433:3;19454:67;19518:2;19513:3;19454:67;:::i;:::-;19447:74;;19530:93;19619:3;19530:93;:::i;:::-;19648:2;19643:3;19639:12;19632:19;;19291:366;;;:::o;19663:419::-;19829:4;19867:2;19856:9;19852:18;19844:26;;19916:9;19910:4;19906:20;19902:1;19891:9;19887:17;19880:47;19944:131;20070:4;19944:131;:::i;:::-;19936:139;;19663:419;;;:::o;20088:222::-;20228:34;20224:1;20216:6;20212:14;20205:58;20297:5;20292:2;20284:6;20280:15;20273:30;20088:222;:::o;20316:366::-;20458:3;20479:67;20543:2;20538:3;20479:67;:::i;:::-;20472:74;;20555:93;20644:3;20555:93;:::i;:::-;20673:2;20668:3;20664:12;20657:19;;20316:366;;;:::o;20688:419::-;20854:4;20892:2;20881:9;20877:18;20869:26;;20941:9;20935:4;20931:20;20927:1;20916:9;20912:17;20905:47;20969:131;21095:4;20969:131;:::i;:::-;20961:139;;20688:419;;;:::o;21113:237::-;21253:34;21249:1;21241:6;21237:14;21230:58;21322:20;21317:2;21309:6;21305:15;21298:45;21113:237;:::o;21356:366::-;21498:3;21519:67;21583:2;21578:3;21519:67;:::i;:::-;21512:74;;21595:93;21684:3;21595:93;:::i;:::-;21713:2;21708:3;21704:12;21697:19;;21356:366;;;:::o;21728:419::-;21894:4;21932:2;21921:9;21917:18;21909:26;;21981:9;21975:4;21971:20;21967:1;21956:9;21952:17;21945:47;22009:131;22135:4;22009:131;:::i;:::-;22001:139;;21728:419;;;:::o;22153:225::-;22293:34;22289:1;22281:6;22277:14;22270:58;22362:8;22357:2;22349:6;22345:15;22338:33;22153:225;:::o;22384:366::-;22526:3;22547:67;22611:2;22606:3;22547:67;:::i;:::-;22540:74;;22623:93;22712:3;22623:93;:::i;:::-;22741:2;22736:3;22732:12;22725:19;;22384:366;;;:::o;22756:419::-;22922:4;22960:2;22949:9;22945:18;22937:26;;23009:9;23003:4;22999:20;22995:1;22984:9;22980:17;22973:47;23037:131;23163:4;23037:131;:::i;:::-;23029:139;;22756:419;;;:::o;23181:179::-;23321:31;23317:1;23309:6;23305:14;23298:55;23181:179;:::o;23366:366::-;23508:3;23529:67;23593:2;23588:3;23529:67;:::i;:::-;23522:74;;23605:93;23694:3;23605:93;:::i;:::-;23723:2;23718:3;23714:12;23707:19;;23366:366;;;:::o;23738:419::-;23904:4;23942:2;23931:9;23927:18;23919:26;;23991:9;23985:4;23981:20;23977:1;23966:9;23962:17;23955:47;24019:131;24145:4;24019:131;:::i;:::-;24011:139;;23738:419;;;:::o;24163:240::-;24303:34;24299:1;24291:6;24287:14;24280:58;24372:23;24367:2;24359:6;24355:15;24348:48;24163:240;:::o;24409:366::-;24551:3;24572:67;24636:2;24631:3;24572:67;:::i;:::-;24565:74;;24648:93;24737:3;24648:93;:::i;:::-;24766:2;24761:3;24757:12;24750:19;;24409:366;;;:::o;24781:419::-;24947:4;24985:2;24974:9;24970:18;24962:26;;25034:9;25028:4;25024:20;25020:1;25009:9;25005:17;24998:47;25062:131;25188:4;25062:131;:::i;:::-;25054:139;;24781:419;;;:::o;25206:305::-;25246:3;25265:20;25283:1;25265:20;:::i;:::-;25260:25;;25299:20;25317:1;25299:20;:::i;:::-;25294:25;;25453:1;25385:66;25381:74;25378:1;25375:81;25372:107;;;25459:18;;:::i;:::-;25372:107;25503:1;25500;25496:9;25489:16;;25206:305;;;;:::o;25517:177::-;25657:29;25653:1;25645:6;25641:14;25634:53;25517:177;:::o;25700:366::-;25842:3;25863:67;25927:2;25922:3;25863:67;:::i;:::-;25856:74;;25939:93;26028:3;25939:93;:::i;:::-;26057:2;26052:3;26048:12;26041:19;;25700:366;;;:::o;26072:419::-;26238:4;26276:2;26265:9;26261:18;26253:26;;26325:9;26319:4;26315:20;26311:1;26300:9;26296:17;26289:47;26353:131;26479:4;26353:131;:::i;:::-;26345:139;;26072:419;;;:::o;26497:241::-;26637:34;26633:1;26625:6;26621:14;26614:58;26706:24;26701:2;26693:6;26689:15;26682:49;26497:241;:::o;26744:366::-;26886:3;26907:67;26971:2;26966:3;26907:67;:::i;:::-;26900:74;;26983:93;27072:3;26983:93;:::i;:::-;27101:2;27096:3;27092:12;27085:19;;26744:366;;;:::o;27116:419::-;27282:4;27320:2;27309:9;27305:18;27297:26;;27369:9;27363:4;27359:20;27355:1;27344:9;27340:17;27333:47;27397:131;27523:4;27397:131;:::i;:::-;27389:139;;27116:419;;;:::o;27541:174::-;27681:26;27677:1;27669:6;27665:14;27658:50;27541:174;:::o;27721:366::-;27863:3;27884:67;27948:2;27943:3;27884:67;:::i;:::-;27877:74;;27960:93;28049:3;27960:93;:::i;:::-;28078:2;28073:3;28069:12;28062:19;;27721:366;;;:::o;28093:419::-;28259:4;28297:2;28286:9;28282:18;28274:26;;28346:9;28340:4;28336:20;28332:1;28321:9;28317:17;28310:47;28374:131;28500:4;28374:131;:::i;:::-;28366:139;;28093:419;;;:::o;28518:442::-;28667:4;28705:2;28694:9;28690:18;28682:26;;28718:71;28786:1;28775:9;28771:17;28762:6;28718:71;:::i;:::-;28799:72;28867:2;28856:9;28852:18;28843:6;28799:72;:::i;:::-;28881;28949:2;28938:9;28934:18;28925:6;28881:72;:::i;:::-;28518:442;;;;;;:::o;28966:180::-;29014:77;29011:1;29004:88;29111:4;29108:1;29101:15;29135:4;29132:1;29125:15;29152:180;29200:77;29197:1;29190:88;29297:4;29294:1;29287:15;29321:4;29318:1;29311:15;29338:143;29395:5;29426:6;29420:13;29411:22;;29442:33;29469:5;29442:33;:::i;:::-;29338:143;;;;:::o;29487:351::-;29557:6;29606:2;29594:9;29585:7;29581:23;29577:32;29574:119;;;29612:79;;:::i;:::-;29574:119;29732:1;29757:64;29813:7;29804:6;29793:9;29789:22;29757:64;:::i;:::-;29747:74;;29703:128;29487:351;;;;:::o;29844:85::-;29889:7;29918:5;29907:16;;29844:85;;;:::o;29935:158::-;29993:9;30026:61;30044:42;30053:32;30079:5;30053:32;:::i;:::-;30044:42;:::i;:::-;30026:61;:::i;:::-;30013:74;;29935:158;;;:::o;30099:147::-;30194:45;30233:5;30194:45;:::i;:::-;30189:3;30182:58;30099:147;;:::o;30252:114::-;30319:6;30353:5;30347:12;30337:22;;30252:114;;;:::o;30372:184::-;30471:11;30505:6;30500:3;30493:19;30545:4;30540:3;30536:14;30521:29;;30372:184;;;;:::o;30562:132::-;30629:4;30652:3;30644:11;;30682:4;30677:3;30673:14;30665:22;;30562:132;;;:::o;30700:108::-;30777:24;30795:5;30777:24;:::i;:::-;30772:3;30765:37;30700:108;;:::o;30814:179::-;30883:10;30904:46;30946:3;30938:6;30904:46;:::i;:::-;30982:4;30977:3;30973:14;30959:28;;30814:179;;;;:::o;30999:113::-;31069:4;31101;31096:3;31092:14;31084:22;;30999:113;;;:::o;31148:732::-;31267:3;31296:54;31344:5;31296:54;:::i;:::-;31366:86;31445:6;31440:3;31366:86;:::i;:::-;31359:93;;31476:56;31526:5;31476:56;:::i;:::-;31555:7;31586:1;31571:284;31596:6;31593:1;31590:13;31571:284;;;31672:6;31666:13;31699:63;31758:3;31743:13;31699:63;:::i;:::-;31692:70;;31785:60;31838:6;31785:60;:::i;:::-;31775:70;;31631:224;31618:1;31615;31611:9;31606:14;;31571:284;;;31575:14;31871:3;31864:10;;31272:608;;;31148:732;;;;:::o;31886:847::-;32157:4;32195:3;32184:9;32180:19;32172:27;;32209:71;32277:1;32266:9;32262:17;32253:6;32209:71;:::i;:::-;32290:80;32366:2;32355:9;32351:18;32342:6;32290:80;:::i;:::-;32417:9;32411:4;32407:20;32402:2;32391:9;32387:18;32380:48;32445:108;32548:4;32539:6;32445:108;:::i;:::-;32437:116;;32563:80;32639:2;32628:9;32624:18;32615:6;32563:80;:::i;:::-;32653:73;32721:3;32710:9;32706:19;32697:6;32653:73;:::i;:::-;31886:847;;;;;;;;:::o;32739:831::-;33002:4;33040:3;33029:9;33025:19;33017:27;;33054:71;33122:1;33111:9;33107:17;33098:6;33054:71;:::i;:::-;33135:80;33211:2;33200:9;33196:18;33187:6;33135:80;:::i;:::-;33262:9;33256:4;33252:20;33247:2;33236:9;33232:18;33225:48;33290:108;33393:4;33384:6;33290:108;:::i;:::-;33282:116;;33408:72;33476:2;33465:9;33461:18;33452:6;33408:72;:::i;:::-;33490:73;33558:3;33547:9;33543:19;33534:6;33490:73;:::i;:::-;32739:831;;;;;;;;:::o;33576:807::-;33825:4;33863:3;33852:9;33848:19;33840:27;;33877:71;33945:1;33934:9;33930:17;33921:6;33877:71;:::i;:::-;33958:72;34026:2;34015:9;34011:18;34002:6;33958:72;:::i;:::-;34040:80;34116:2;34105:9;34101:18;34092:6;34040:80;:::i;:::-;34130;34206:2;34195:9;34191:18;34182:6;34130:80;:::i;:::-;34220:73;34288:3;34277:9;34273:19;34264:6;34220:73;:::i;:::-;34303;34371:3;34360:9;34356:19;34347:6;34303:73;:::i;:::-;33576:807;;;;;;;;;:::o;34389:143::-;34446:5;34477:6;34471:13;34462:22;;34493:33;34520:5;34493:33;:::i;:::-;34389:143;;;;:::o;34538:663::-;34626:6;34634;34642;34691:2;34679:9;34670:7;34666:23;34662:32;34659:119;;;34697:79;;:::i;:::-;34659:119;34817:1;34842:64;34898:7;34889:6;34878:9;34874:22;34842:64;:::i;:::-;34832:74;;34788:128;34955:2;34981:64;35037:7;35028:6;35017:9;35013:22;34981:64;:::i;:::-;34971:74;;34926:129;35094:2;35120:64;35176:7;35167:6;35156:9;35152:22;35120:64;:::i;:::-;35110:74;;35065:129;34538:663;;;;;:::o
Swarm Source
ipfs://0d1524955b3e920dee17e65493a21947a70efaf9418db5172bac1c68817c0216
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.