More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 127 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20784881 | 94 days ago | IN | 0 ETH | 0.00096032 | ||||
Approve | 20781339 | 95 days ago | IN | 0 ETH | 0.00069162 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 | ||||
Transfer | 20780947 | 95 days ago | IN | 0 ETH | 0.0006002 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20780119 | 95 days ago | 0.03819213 ETH | ||||
20780119 | 95 days ago | 0.03819213 ETH | ||||
20780108 | 95 days ago | 0.0154533 ETH | ||||
20780108 | 95 days ago | 0.0154533 ETH | ||||
20780099 | 95 days ago | 0.01274051 ETH | ||||
20780099 | 95 days ago | 0.01274051 ETH | ||||
20780099 | 95 days ago | 0.01419914 ETH | ||||
20780099 | 95 days ago | 0.01419914 ETH | ||||
20780099 | 95 days ago | 0.02714325 ETH | ||||
20780099 | 95 days ago | 0.02714325 ETH | ||||
20780099 | 95 days ago | 0.08384776 ETH | ||||
20780099 | 95 days ago | 0.08384776 ETH | ||||
20780098 | 95 days ago | 0.0943834 ETH | ||||
20780098 | 95 days ago | 0.0943834 ETH | ||||
20780082 | 95 days ago | 0.09706537 ETH | ||||
20780082 | 95 days ago | 0.09706537 ETH | ||||
20780075 | 95 days ago | 0.10368329 ETH | ||||
20780075 | 95 days ago | 0.10368329 ETH | ||||
20780075 | 95 days ago | 0.11099452 ETH | ||||
20780075 | 95 days ago | 0.11099452 ETH | ||||
20780062 | 95 days ago | 0.11491302 ETH | ||||
20780062 | 95 days ago | 0.11491302 ETH | ||||
20780061 | 95 days ago | 0.10833255 ETH | ||||
20780061 | 95 days ago | 0.10833255 ETH | ||||
20780054 | 95 days ago | 0.05247721 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DarkNeiroERC20
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-18 */ /* Twitter: https://x.com/DarkNeiroERC Telegram: https://t.me/DarkNeiroERC Website: https://darkneiroerc.xyz/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { require(owner() == _msgSender(), "Invalid owner"); _; } function owner() public view virtual returns (address) { return _owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "New owner is ZERO"); _transferOwnership(newOwner); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, 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); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } contract ERC20 is IERC20, Context { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: Not owner != address(0)"); require(spender != address(0), "ERC20: Not spender != address(0)"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { _transfer(from, to, amount); uint256 curAllow = _allowances[from][_msgSender()]; require(curAllow >= amount, "ERC20: Not curAllow >= amount"); unchecked { _approve(from, _msgSender(), curAllow - amount); } return true; } function transfer(address to, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), to, amount); return true; } function increaseAllowance(address spender, uint256 addValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addValue); return true; } function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) { uint256 curAllow = _allowances[_msgSender()][spender]; require(curAllow >= subValue, "ERC20: Not curAllow >= subValue"); unchecked { _approve(_msgSender(), spender, curAllow - subValue); } return true; } function _mint( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: Not account != address(0)"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: Not account != address(0)"); _beforeTokenTransfer(account, address(0), amount); uint256 kBalance = _balances[account]; require(kBalance >= amount, "ERC20: kBalance >= amount"); unchecked { _balances[account] = kBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _beforeTokenTransfer( address from, address to, uint256 amount) internal virtual { } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: Not from != address(0)"); require(to != address(0), "ERC20: Not to != address(0)"); _beforeTokenTransfer(from, to, amount); uint256 balanceFrom = _balances[from]; require(balanceFrom >= amount, "ERC20: Not balanceFrom >= amount"); unchecked { _balances[from] = balanceFrom - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _afterTokenTransfer( address from, address to, uint256 amount) internal virtual { // Nothing } } contract DarkNeiroERC20 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public swapRouter; address public swapPair; uint256 public minSwapTokenAmount; uint256 public maxTokenAmountPerWallet; uint256 public maxTokenAmountPerTxn; bool public TradingActive = false; uint256 public ActiveTradingBlock; uint256 public PreventSwapbackBlocks; bool public SwapEnabled = false; address public marketingWallet; address public devWallet; uint256 public tokenAmountForMarketing; uint256 public tokenAmountForDev; mapping(address => bool) public ExcludedMaxTokenAmountPerTxn; mapping(address => bool) public ExcludedFromTax; mapping(address => bool) public automatedMarketMakerPairs; bool public limitsInEffect = true; uint256 public sellTotalTax; uint256 public sellMarketingTax; uint256 public sellDevTax; uint256 public buyTotalTax; uint256 public buyMarketingTax; uint256 public buyDevTax; bool private Swapping; mapping(address => bool) private blackList; constructor() ERC20("Dark Neiro", "DEIRO") { devWallet = address(0xaFFFCbAFd96B6E3F3FbFcadd0834E3528BD06519); marketingWallet = address(0xaFFFCbAFd96B6E3F3FbFcadd0834E3528BD06519); swapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH()); ExcludedMaxTokenAmountPerTxn[owner()] = true; ExcludedMaxTokenAmountPerTxn[address(this)] = true; uint256 totalSupply = 420690000000 * (10 ** decimals()); minSwapTokenAmount = 841380000 * (10 ** decimals()); //0.2% min swap maxTokenAmountPerTxn = 6310350000 * (10 ** decimals()); //1.5% max tx amount maxTokenAmountPerWallet = 6310350000 * (10 ** decimals()); //1.5% max wallet amount ExcludedFromTax[address(this)] = true; ExcludedFromTax[owner()] = true; automatedMarketMakerPairs[address(swapPair)] = true; ExcludedMaxTokenAmountPerTxn[address(0xdead)] = true; ExcludedMaxTokenAmountPerTxn[address(swapRouter)] = true; ExcludedMaxTokenAmountPerTxn[address(swapPair)] = true; ExcludedFromTax[address(0xdead)] = true; sellMarketingTax = 30; sellDevTax = 0; sellTotalTax = sellMarketingTax + sellDevTax; buyMarketingTax = 30; buyDevTax = 0; buyTotalTax = buyMarketingTax + buyDevTax; PreventSwapbackBlocks=3; _mint(msg.sender, totalSupply); } function activateTrading() external onlyOwner { TradingActive = true; SwapEnabled = true; ActiveTradingBlock=block.number; } function updatePrecentSwapbackBlocks(uint256 newNum) external onlyOwner{ PreventSwapbackBlocks=newNum; } function excludeFromMaxTokenAmountPerTxn(address addr, bool value) external onlyOwner { ExcludedMaxTokenAmountPerTxn[addr] = value; } function excludeFromTax(address account, bool value) external onlyOwner { ExcludedFromTax[account] = value; } function removeLimits() external onlyOwner { limitsInEffect = false; } function updateSwapEnabled(bool enabled) external onlyOwner { SwapEnabled = enabled; } function updateMinimumSwapTokenAmount(uint256 amount) external onlyOwner { require(amount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(amount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); minSwapTokenAmount = amount; } function updateMaxTokensPerWallet(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerWallet lower than 0.5%"); maxTokenAmountPerWallet = newNum * (10 ** decimals()); } function updateMaxTokenAmountPerTxn(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerTxn lower than 0.1%"); maxTokenAmountPerTxn = newNum * (10 ** decimals()); } function setBlackList(address addr, bool enable) external onlyOwner { blackList[addr] = enable; } function setBulkBlackList(address[] memory _addr, bool enable) external onlyOwner { for (uint256 i=0; i <= _addr.length-1; i++) { blackList[_addr[i]] = enable; } } function updateBuyTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketingTax = newMarketFee; buyDevTax = newDevFee; buyTotalTax = buyMarketingTax + buyDevTax; require(buyTotalTax <= 50, "Must keep tax at 50% or less"); } function updateSellTax(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketingTax = newMarketFee; sellDevTax = newDevFee; sellTotalTax = sellMarketingTax + sellDevTax; require(sellTotalTax <= 95, "Must keep tax at 95% or less"); } function setAutomatedMarketMakerPairs(address pair, bool value) external onlyOwner { require(pair != swapPair, "The pair cannot be removed from automatedMarketMakerPairs"); automatedMarketMakerPairs[pair] = value; } function swapBack() private { bool success; uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev; uint256 tokenBalance = balanceOf(address(this)); if (tokenAmountToSwap == 0 || tokenBalance == 0) return; if (tokenBalance > minSwapTokenAmount * 5){ tokenBalance = minSwapTokenAmount * 5; } uint256 prevETHBalance = address(this).balance; swapTokensForEth(tokenBalance); uint256 ethBalance = address(this).balance.sub(prevETHBalance); uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap); (success, ) = address(devWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); tokenAmountForMarketing = 0; tokenAmountForDev = 0; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: Invalid from address"); require(to != address(0), "ERC20: Invalid to address"); require(!blackList[from], "ERC20: Sender is blacklisted"); require(!blackList[to], "ERC20: Receiver is blacklisted"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !Swapping) { if (!TradingActive) { require(ExcludedFromTax[from] || ExcludedFromTax[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !ExcludedMaxTokenAmountPerTxn[to]) { require(amount <= maxTokenAmountPerTxn, "Buy transfer amount exceeds the maxTokenAmountPerTxn."); require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !ExcludedMaxTokenAmountPerTxn[from]) { require(amount <= maxTokenAmountPerTxn, "Sell transfer amount exceeds the maxTokenAmountPerTxn."); } else if (!ExcludedMaxTokenAmountPerTxn[to]) { require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded"); } } } uint256 tokenBalance = balanceOf(address(this)); bool canSwap = tokenBalance >= minSwapTokenAmount; if (SwapEnabled && canSwap && !Swapping && !automatedMarketMakerPairs[from] && !ExcludedFromTax[from] && !ExcludedFromTax[to] && ActiveTradingBlock+PreventSwapbackBlocks <= block.number ) { Swapping = true; swapBack(); Swapping = false; } bool Tax = !Swapping; if (ExcludedFromTax[from] || ExcludedFromTax[to]) Tax = false; uint256 fees = 0; if (Tax) { if (automatedMarketMakerPairs[to] && sellTotalTax > 0) { fees = amount.mul(sellTotalTax).div(100); tokenAmountForDev += (fees * sellDevTax) / sellTotalTax; tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax; } else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) { fees = amount.mul(buyTotalTax).div(100); tokenAmountForDev += (fees * buyDevTax) / buyTotalTax; tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax; } if (fees > 0) super._transfer(from, address(this), fees); amount -= fees; } super._transfer(from, to, amount); } receive() external payable {} function swapTokensForEth(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); _approve(address(this), address(swapRouter), amount); // make the swap swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ActiveTradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedMaxTokenAmountPerTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PreventSwapbackBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activateTrading","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":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBulkBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokensPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMinimumSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatePrecentSwapbackBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f600b5f6101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff021916908315150217905550600160155f6101000a81548160ff02191690831515021790555034801561005b575f80fd5b506040518060400160405280600a81526020017f4461726b204e6569726f000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f444549524f000000000000000000000000000000000000000000000000000000815250815f90816100d69190610d1a565b5080600190816100e69190610d1a565b5050506101056100fa61087860201b60201c565b61087f60201b60201c565b73afffcbafd96b6e3f3fbfcadd0834e3528bd06519600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073afffcbafd96b6e3f3fbfcadd0834e3528bd06519600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102909190610e47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610316573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033a9190610e47565b6040518363ffffffff1660e01b8152600401610357929190610e81565b6020604051808303815f875af1158015610373573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103979190610e47565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160125f6103e961094260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f61049c61096a60201b60201c565b600a6104a89190611010565b6461f313f8806104b8919061105a565b90506104c861096a60201b60201c565b600a6104d49190611010565b63322670a06104e3919061105a565b6008819055506104f761096a60201b60201c565b600a6105039190611010565b640178204cb0610513919061105a565b600a8190555061052761096a60201b60201c565b600a6105339190611010565b640178204cb0610543919061105a565b600981905550600160135f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f6105b161094260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160145f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160135f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601e6017819055505f60188190555060185460175461082f919061109b565b601681905550601e601a819055505f601b81905550601b54601a54610854919061109b565b6019819055506003600d81905550610872338261097260201b60201c565b5061116e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d790611128565b60405180910390fd5b6109f15f8383610ad660201b60201c565b8060025f828254610a02919061109b565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a55919061109b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ab99190611155565b60405180910390a3610ad25f8383610adb60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b5b57607f821691505b602082108103610b6e57610b6d610b17565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b95565b610bda8683610b95565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c1e610c19610c1484610bf2565b610bfb565b610bf2565b9050919050565b5f819050919050565b610c3783610c04565b610c4b610c4382610c25565b848454610ba1565b825550505050565b5f90565b610c5f610c53565b610c6a818484610c2e565b505050565b5b81811015610c8d57610c825f82610c57565b600181019050610c70565b5050565b601f821115610cd257610ca381610b74565b610cac84610b86565b81016020851015610cbb578190505b610ccf610cc785610b86565b830182610c6f565b50505b505050565b5f82821c905092915050565b5f610cf25f1984600802610cd7565b1980831691505092915050565b5f610d0a8383610ce3565b9150826002028217905092915050565b610d2382610ae0565b67ffffffffffffffff811115610d3c57610d3b610aea565b5b610d468254610b44565b610d51828285610c91565b5f60209050601f831160018114610d82575f8415610d70578287015190505b610d7a8582610cff565b865550610de1565b601f198416610d9086610b74565b5f5b82811015610db757848901518255600182019150602085019450602081019050610d92565b86831015610dd45784890151610dd0601f891682610ce3565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e1682610ded565b9050919050565b610e2681610e0c565b8114610e30575f80fd5b50565b5f81519050610e4181610e1d565b92915050565b5f60208284031215610e5c57610e5b610de9565b5b5f610e6984828501610e33565b91505092915050565b610e7b81610e0c565b82525050565b5f604082019050610e945f830185610e72565b610ea16020830184610e72565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610f2a57808604811115610f0657610f05610ea8565b5b6001851615610f155780820291505b8081029050610f2385610ed5565b9450610eea565b94509492505050565b5f82610f425760019050610ffd565b81610f4f575f9050610ffd565b8160018114610f655760028114610f6f57610f9e565b6001915050610ffd565b60ff841115610f8157610f80610ea8565b5b8360020a915084821115610f9857610f97610ea8565b5b50610ffd565b5060208310610133831016604e8410600b8410161715610fd35782820a905083811115610fce57610fcd610ea8565b5b610ffd565b610fe08484846001610ee1565b92509050818404811115610ff757610ff6610ea8565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61101a82610bf2565b915061102583611004565b92506110527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f33565b905092915050565b5f61106482610bf2565b915061106f83610bf2565b925082820261107d81610bf2565b9150828204841483151761109457611093610ea8565b5b5092915050565b5f6110a582610bf2565b91506110b083610bf2565b92508282019050808211156110c8576110c7610ea8565b5b92915050565b5f82825260208201905092915050565b7f45524332303a204e6f74206163636f756e7420213d20616464726573732830295f82015250565b5f6111126020836110ce565b915061111d826110de565b602082019050919050565b5f6020820190508181035f83015261113f81611106565b9050919050565b61114f81610bf2565b82525050565b5f6020820190506111685f830184611146565b92915050565b614b208061117b5f395ff3fe6080604052600436106102e7575f3560e01c806375f0a8741161018f578063b62496f5116100db578063c42c3f8811610094578063e27a55fe1161006e578063e27a55fe14610b08578063e96db1ef14610b32578063f2fde38b14610b5c578063fc0217a414610b84576102ee565b8063c42c3f8814610a7a578063c6a3064714610aa4578063dd62ed3e14610acc576102ee565b8063b62496f51461095e578063b79c18861461099a578063be691883146109c2578063c1cb02a4146109ec578063c31c9c0714610a14578063c410a11b14610a3e576102ee565b8063924de9b711610148578063a9059cbb11610122578063a9059cbb146108a6578063af8f26e7146108e2578063b38d229a1461090c578063b38d5ef414610936576102ee565b8063924de9b71461081857806395d89b4114610840578063a457c2d71461086a576102ee565b806375f0a8741461070c5780637d6731701461073657806380da454314610760578063896c2b8a1461079c5780638da5cb5b146107c45780638ea5220f146107ee576102ee565b8063395093511161024e57806367b740e9116102075780637070678b116101e15780637070678b1461067c57806370a08231146106a4578063715018a6146106e0578063751039fc146106f6576102ee565b806367b740e91461060257806368092bd91461062a578063685fbc6b14610652576102ee565b806339509351146104f857806341c787961461053457806345167f261461055e5780634a62bb6514610586578063544d1ec9146105b05780635df6e68e146105d8576102ee565b806323b872dd116102a057806323b872dd146103ec57806326991cc8146104285780632c81355e14610452578063313ce5671461047a57806333012411146104a4578063372b44b8146104ce576102ee565b806301b12312146102f257806306fdde031461031c578063095ea7b3146103465780630bd05b691461038257806318160ddd1461039857806318c34be1146103c2576102ee565b366102ee57005b5f80fd5b3480156102fd575f80fd5b50610306610bae565b604051610313919061350f565b60405180910390f35b348015610327575f80fd5b50610330610bb4565b60405161033d9190613598565b60405180910390f35b348015610351575f80fd5b5061036c6004803603810190610367919061364d565b610c43565b60405161037991906136a5565b60405180910390f35b34801561038d575f80fd5b50610396610c60565b005b3480156103a3575f80fd5b506103ac610d19565b6040516103b9919061350f565b60405180910390f35b3480156103cd575f80fd5b506103d6610d22565b6040516103e3919061350f565b60405180910390f35b3480156103f7575f80fd5b50610412600480360381019061040d91906136be565b610d28565b60405161041f91906136a5565b60405180910390f35b348015610433575f80fd5b5061043c610e1a565b604051610449919061371d565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190613736565b610e3f565b005b348015610485575f80fd5b5061048e610f8c565b60405161049b919061377c565b60405180910390f35b3480156104af575f80fd5b506104b8610f94565b6040516104c5919061350f565b60405180910390f35b3480156104d9575f80fd5b506104e2610f9a565b6040516104ef919061350f565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061364d565b610fa0565b60405161052b91906136a5565b60405180910390f35b34801561053f575f80fd5b50610548611047565b60405161055591906136a5565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f91906137bf565b611059565b005b348015610591575f80fd5b5061059a6111bc565b6040516105a791906136a5565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613736565b6111ce565b005b3480156105e3575f80fd5b506105ec6112f3565b6040516105f9919061350f565b60405180910390f35b34801561060d575f80fd5b5061062860048036038101906106239190613736565b6112f9565b005b348015610635575f80fd5b50610650600480360381019061064b91906137bf565b61141e565b005b34801561065d575f80fd5b506106666114f2565b604051610673919061350f565b60405180910390f35b348015610687575f80fd5b506106a2600480360381019061069d91906137bf565b6114f8565b005b3480156106af575f80fd5b506106ca60048036038101906106c591906137fd565b6115cc565b6040516106d7919061350f565b60405180910390f35b3480156106eb575f80fd5b506106f4611612565b005b348015610701575f80fd5b5061070a611699565b005b348015610717575f80fd5b50610720611730565b60405161072d919061371d565b60405180910390f35b348015610741575f80fd5b5061074a611756565b604051610757919061350f565b60405180910390f35b34801561076b575f80fd5b50610786600480360381019061078191906137fd565b61175c565b60405161079391906136a5565b60405180910390f35b3480156107a7575f80fd5b506107c260048036038101906107bd9190613736565b611779565b005b3480156107cf575f80fd5b506107d86117ff565b6040516107e5919061371d565b60405180910390f35b3480156107f9575f80fd5b50610802611827565b60405161080f919061371d565b60405180910390f35b348015610823575f80fd5b5061083e60048036038101906108399190613828565b61184c565b005b34801561084b575f80fd5b506108546118e4565b6040516108619190613598565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b919061364d565b611974565b60405161089d91906136a5565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c7919061364d565b611a5a565b6040516108d991906136a5565b60405180910390f35b3480156108ed575f80fd5b506108f6611a77565b604051610903919061350f565b60405180910390f35b348015610917575f80fd5b50610920611a7d565b60405161092d919061350f565b60405180910390f35b348015610941575f80fd5b5061095c60048036038101906109579190613853565b611a83565b005b348015610969575f80fd5b50610984600480360381019061097f91906137fd565b611b6d565b60405161099191906136a5565b60405180910390f35b3480156109a5575f80fd5b506109c060048036038101906109bb9190613853565b611b8a565b005b3480156109cd575f80fd5b506109d6611c74565b6040516109e3919061350f565b60405180910390f35b3480156109f7575f80fd5b50610a126004803603810190610a0d91906139d1565b611c7a565b005b348015610a1f575f80fd5b50610a28611d92565b604051610a359190613a86565b60405180910390f35b348015610a49575f80fd5b50610a646004803603810190610a5f91906137fd565b611db7565b604051610a7191906136a5565b60405180910390f35b348015610a85575f80fd5b50610a8e611dd4565b604051610a9b919061350f565b60405180910390f35b348015610aaf575f80fd5b50610aca6004803603810190610ac591906137bf565b611dda565b005b348015610ad7575f80fd5b50610af26004803603810190610aed9190613a9f565b611eae565b604051610aff919061350f565b60405180910390f35b348015610b13575f80fd5b50610b1c611f30565b604051610b29919061350f565b60405180910390f35b348015610b3d575f80fd5b50610b46611f36565b604051610b53919061350f565b60405180910390f35b348015610b67575f80fd5b50610b826004803603810190610b7d91906137fd565b611f3c565b005b348015610b8f575f80fd5b50610b98612032565b604051610ba591906136a5565b60405180910390f35b600d5481565b60605f8054610bc290613b0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bee90613b0a565b8015610c395780601f10610c1057610100808354040283529160200191610c39565b820191905f5260205f20905b815481529060010190602001808311610c1c57829003601f168201915b5050505050905090565b5f610c56610c4f612044565b848461204b565b6001905092915050565b610c68612044565b73ffffffffffffffffffffffffffffffffffffffff16610c866117ff565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390613b84565b60405180910390fd5b6001600b5f6101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff02191690831515021790555043600c81905550565b5f600254905090565b60105481565b5f610d3484848461220e565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d7b612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190613bec565b60405180910390fd5b610e0e85610e06612044565b85840361204b565b60019150509392505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e47612044565b73ffffffffffffffffffffffffffffffffffffffff16610e656117ff565b73ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290613b84565b60405180910390fd5b620186a06001610ec9610d19565b610ed39190613c37565b610edd9190613ca5565b811015610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690613d45565b60405180910390fd5b6103e86005610f2c610d19565b610f369190613c37565b610f409190613ca5565b811115610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990613dd3565b60405180910390fd5b8060088190555050565b5f6012905090565b601a5481565b60115481565b5f61103d610fac612044565b848460045f610fb9612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110389190613df1565b61204b565b6001905092915050565b600e5f9054906101000a900460ff1681565b611061612044565b73ffffffffffffffffffffffffffffffffffffffff1661107f6117ff565b73ffffffffffffffffffffffffffffffffffffffff16146110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90613b84565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613e94565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60155f9054906101000a900460ff1681565b6111d6612044565b73ffffffffffffffffffffffffffffffffffffffff166111f46117ff565b73ffffffffffffffffffffffffffffffffffffffff161461124a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124190613b84565b60405180910390fd5b611252610f8c565b600a61125e9190613fe1565b6103e8600161126b610d19565b6112759190613c37565b61127f9190613ca5565b6112899190613ca5565b8110156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c29061409b565b60405180910390fd5b6112d3610f8c565b600a6112df9190613fe1565b816112ea9190613c37565b600a8190555050565b60195481565b611301612044565b73ffffffffffffffffffffffffffffffffffffffff1661131f6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613b84565b60405180910390fd5b61137d610f8c565b600a6113899190613fe1565b6103e86005611396610d19565b6113a09190613c37565b6113aa9190613ca5565b6113b49190613ca5565b8110156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90614129565b60405180910390fd5b6113fe610f8c565b600a61140a9190613fe1565b816114159190613c37565b60098190555050565b611426612044565b73ffffffffffffffffffffffffffffffffffffffff166114446117ff565b73ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190613b84565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095481565b611500612044565b73ffffffffffffffffffffffffffffffffffffffff1661151e6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613b84565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61161a612044565b73ffffffffffffffffffffffffffffffffffffffff166116386117ff565b73ffffffffffffffffffffffffffffffffffffffff161461168e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168590613b84565b60405180910390fd5b6116975f612d62565b565b6116a1612044565b73ffffffffffffffffffffffffffffffffffffffff166116bf6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613b84565b60405180910390fd5b5f60155f6101000a81548160ff021916908315150217905550565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6013602052805f5260405f205f915054906101000a900460ff1681565b611781612044565b73ffffffffffffffffffffffffffffffffffffffff1661179f6117ff565b73ffffffffffffffffffffffffffffffffffffffff16146117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90613b84565b60405180910390fd5b80600d8190555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611854612044565b73ffffffffffffffffffffffffffffffffffffffff166118726117ff565b73ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613b84565b60405180910390fd5b80600e5f6101000a81548160ff02191690831515021790555050565b6060600180546118f390613b0a565b80601f016020809104026020016040519081016040528092919081815260200182805461191f90613b0a565b801561196a5780601f106119415761010080835404028352916020019161196a565b820191905f5260205f20905b81548152906001019060200180831161194d57829003601f168201915b5050505050905090565b5f8060045f611981612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290614191565b60405180910390fd5b611a4f611a46612044565b8585840361204b565b600191505092915050565b5f611a6d611a66612044565b848461220e565b6001905092915050565b601b5481565b600c5481565b611a8b612044565b73ffffffffffffffffffffffffffffffffffffffff16611aa96117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613b84565b60405180910390fd5b81601a8190555080601b81905550601b54601a54611b1d9190613df1565b60198190555060326019541115611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906141f9565b60405180910390fd5b5050565b6014602052805f5260405f205f915054906101000a900460ff1681565b611b92612044565b73ffffffffffffffffffffffffffffffffffffffff16611bb06117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613b84565b60405180910390fd5b8160178190555080601881905550601854601754611c249190613df1565b601681905550605f6016541115611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790614261565b60405180910390fd5b5050565b60185481565b611c82612044565b73ffffffffffffffffffffffffffffffffffffffff16611ca06117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ced90613b84565b60405180910390fd5b5f5b60018351611d06919061427f565b8111611d8d5781601d5f858481518110611d2357611d226142b2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611d85906142df565b915050611cf8565b505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b611de2612044565b73ffffffffffffffffffffffffffffffffffffffff16611e006117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d90613b84565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60165481565b60175481565b611f44612044565b73ffffffffffffffffffffffffffffffffffffffff16611f626117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90613b84565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d90614370565b60405180910390fd5b61202f81612d62565b50565b600b5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b0906143d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90614440565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612201919061350f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361227c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612273906144a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190614510565b60405180910390fd5b601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90614578565b60405180910390fd5b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f5906145e0565b60405180910390fd5b5f81036124155761241083835f612e25565b612d5d565b60155f9054906101000a900460ff16156128f7576124316117ff565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561249f575061246f6117ff565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124d757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612511575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125295750601c5f9054906101000a900460ff16155b156128f657600b5f9054906101000a900460ff1661261c5760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125dc575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61261b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261290614648565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126b9575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561276057600a54811115612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa906146d6565b60405180910390fd5b60095461270f836115cc565b8261271a9190613df1565b111561275b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127529061473e565b60405180910390fd5b6128f5565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127fd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561284c57600a54811115612847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283e906147cc565b60405180910390fd5b6128f4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128f3576009546128a6836115cc565b826128b19190613df1565b11156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e99061473e565b60405180910390fd5b5b5b5b5b5b5f612901306115cc565b90505f6008548210159050600e5f9054906101000a900460ff1680156129245750805b801561293c5750601c5f9054906101000a900460ff16155b801561298f575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129e2575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a35575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a50575043600d54600c54612a4d9190613df1565b11155b15612a91576001601c5f6101000a81548160ff021916908315150217905550612a7761309d565b5f601c5f6101000a81548160ff0219169083151502179055505b5f601c5f9054906101000a900460ff1615905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b3f575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b48575f90505b5f8115612d4d5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ba657505f601654115b15612c3e57612bd36064612bc56016548861327890919063ffffffff16565b61328d90919063ffffffff16565b905060165460185482612be69190613c37565b612bf09190613ca5565b60115f828254612c009190613df1565b9250508190555060165460175482612c189190613c37565b612c229190613ca5565b60105f828254612c329190613df1565b92505081905550612d2a565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c9557505f601954115b15612d2957612cc26064612cb46019548861327890919063ffffffff16565b61328d90919063ffffffff16565b9050601954601b5482612cd59190613c37565b612cdf9190613ca5565b60115f828254612cef9190613df1565b92505081905550601954601a5482612d079190613c37565b612d119190613ca5565b60105f828254612d219190613df1565b925050819055505b5b5f811115612d3e57612d3d873083612e25565b5b8085612d4a919061427f565b94505b612d58878787612e25565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a90614834565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef89061489c565b60405180910390fd5b612f0c8383836132a2565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8790614904565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546130209190613df1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613084919061350f565b60405180910390a36130978484846132a7565b50505050565b5f806011546010546130af9190613df1565b90505f6130bb306115cc565b90505f8214806130ca57505f81145b156130d757505050613276565b60056008546130e69190613c37565b8111156130ff5760056008546130fc9190613c37565b90505b5f47905061310c826132ac565b5f61312082476134e290919063ffffffff16565b90505f61314a8561313c6011548561327890919063ffffffff16565b61328d90919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516131919061494f565b5f6040518083038185875af1925050503d805f81146131cb576040519150601f19603f3d011682016040523d82523d5f602084013e6131d0565b606091505b505080965050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161321c9061494f565b5f6040518083038185875af1925050503d805f8114613256576040519150601f19603f3d011682016040523d82523d5f602084013e61325b565b606091505b5050809650505f6010819055505f6011819055505050505050505b565b5f81836132859190613c37565b905092915050565b5f818361329a9190613ca5565b905092915050565b505050565b505050565b5f600267ffffffffffffffff8111156132c8576132c7613895565b5b6040519080825280602002602001820160405280156132f65781602001602082028036833780820191505090505b50905030815f8151811061330d5761330c6142b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133d59190614977565b816001815181106133e9576133e86142b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061344f3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016134b1959493929190614a92565b5f604051808303815f87803b1580156134c8575f80fd5b505af11580156134da573d5f803e3d5ffd5b505050505050565b5f81836134ef919061427f565b905092915050565b5f819050919050565b613509816134f7565b82525050565b5f6020820190506135225f830184613500565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61356a82613528565b6135748185613532565b9350613584818560208601613542565b61358d81613550565b840191505092915050565b5f6020820190508181035f8301526135b08184613560565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135f2826135c9565b9050919050565b613602816135e8565b811461360c575f80fd5b50565b5f8135905061361d816135f9565b92915050565b61362c816134f7565b8114613636575f80fd5b50565b5f8135905061364781613623565b92915050565b5f8060408385031215613663576136626135c1565b5b5f6136708582860161360f565b925050602061368185828601613639565b9150509250929050565b5f8115159050919050565b61369f8161368b565b82525050565b5f6020820190506136b85f830184613696565b92915050565b5f805f606084860312156136d5576136d46135c1565b5b5f6136e28682870161360f565b93505060206136f38682870161360f565b925050604061370486828701613639565b9150509250925092565b613717816135e8565b82525050565b5f6020820190506137305f83018461370e565b92915050565b5f6020828403121561374b5761374a6135c1565b5b5f61375884828501613639565b91505092915050565b5f60ff82169050919050565b61377681613761565b82525050565b5f60208201905061378f5f83018461376d565b92915050565b61379e8161368b565b81146137a8575f80fd5b50565b5f813590506137b981613795565b92915050565b5f80604083850312156137d5576137d46135c1565b5b5f6137e28582860161360f565b92505060206137f3858286016137ab565b9150509250929050565b5f60208284031215613812576138116135c1565b5b5f61381f8482850161360f565b91505092915050565b5f6020828403121561383d5761383c6135c1565b5b5f61384a848285016137ab565b91505092915050565b5f8060408385031215613869576138686135c1565b5b5f61387685828601613639565b925050602061388785828601613639565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6138cb82613550565b810181811067ffffffffffffffff821117156138ea576138e9613895565b5b80604052505050565b5f6138fc6135b8565b905061390882826138c2565b919050565b5f67ffffffffffffffff82111561392757613926613895565b5b602082029050602081019050919050565b5f80fd5b5f61394e6139498461390d565b6138f3565b9050808382526020820190506020840283018581111561397157613970613938565b5b835b8181101561399a5780613986888261360f565b845260208401935050602081019050613973565b5050509392505050565b5f82601f8301126139b8576139b7613891565b5b81356139c884826020860161393c565b91505092915050565b5f80604083850312156139e7576139e66135c1565b5b5f83013567ffffffffffffffff811115613a0457613a036135c5565b5b613a10858286016139a4565b9250506020613a21858286016137ab565b9150509250929050565b5f819050919050565b5f613a4e613a49613a44846135c9565b613a2b565b6135c9565b9050919050565b5f613a5f82613a34565b9050919050565b5f613a7082613a55565b9050919050565b613a8081613a66565b82525050565b5f602082019050613a995f830184613a77565b92915050565b5f8060408385031215613ab557613ab46135c1565b5b5f613ac28582860161360f565b9250506020613ad38582860161360f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613b2157607f821691505b602082108103613b3457613b33613add565b5b50919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f613b6e600d83613532565b9150613b7982613b3a565b602082019050919050565b5f6020820190508181035f830152613b9b81613b62565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000005f82015250565b5f613bd6601d83613532565b9150613be182613ba2565b602082019050919050565b5f6020820190508181035f830152613c0381613bca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613c41826134f7565b9150613c4c836134f7565b9250828202613c5a816134f7565b91508282048414831517613c7157613c70613c0a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613caf826134f7565b9150613cba836134f7565b925082613cca57613cc9613c78565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613d2f603583613532565b9150613d3a82613cd5565b604082019050919050565b5f6020820190508181035f830152613d5c81613d23565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613dbd603483613532565b9150613dc882613d63565b604082019050919050565b5f6020820190508181035f830152613dea81613db1565b9050919050565b5f613dfb826134f7565b9150613e06836134f7565b9250828201905080821115613e1e57613e1d613c0a565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e7e603983613532565b9150613e8982613e24565b604082019050919050565b5f6020820190508181035f830152613eab81613e72565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613f0757808604811115613ee357613ee2613c0a565b5b6001851615613ef25780820291505b8081029050613f0085613eb2565b9450613ec7565b94509492505050565b5f82613f1f5760019050613fda565b81613f2c575f9050613fda565b8160018114613f425760028114613f4c57613f7b565b6001915050613fda565b60ff841115613f5e57613f5d613c0a565b5b8360020a915084821115613f7557613f74613c0a565b5b50613fda565b5060208310610133831016604e8410600b8410161715613fb05782820a905083811115613fab57613faa613c0a565b5b613fda565b613fbd8484846001613ebe565b92509050818404811115613fd457613fd3613c0a565b5b81810290505b9392505050565b5f613feb826134f7565b9150613ff683613761565b92506140237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f10565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f614085602f83613532565b91506140908261402b565b604082019050919050565b5f6020820190508181035f8301526140b281614079565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c5f8201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b5f614113603283613532565b915061411e826140b9565b604082019050919050565b5f6020820190508181035f83015261414081614107565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565005f82015250565b5f61417b601f83613532565b915061418682614147565b602082019050919050565b5f6020820190508181035f8301526141a88161416f565b9050919050565b7f4d757374206b6565702074617820617420353025206f72206c657373000000005f82015250565b5f6141e3601c83613532565b91506141ee826141af565b602082019050919050565b5f6020820190508181035f830152614210816141d7565b9050919050565b7f4d757374206b6565702074617820617420393525206f72206c657373000000005f82015250565b5f61424b601c83613532565b915061425682614217565b602082019050919050565b5f6020820190508181035f8301526142788161423f565b9050919050565b5f614289826134f7565b9150614294836134f7565b92508282039050818111156142ac576142ab613c0a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6142e9826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361431b5761431a613c0a565b5b600182019050919050565b7f4e6577206f776e6572206973205a45524f0000000000000000000000000000005f82015250565b5f61435a601183613532565b915061436582614326565b602082019050919050565b5f6020820190508181035f8301526143878161434e565b9050919050565b7f45524332303a204e6f74206f776e657220213d206164647265737328302900005f82015250565b5f6143c2601e83613532565b91506143cd8261438e565b602082019050919050565b5f6020820190508181035f8301526143ef816143b6565b9050919050565b7f45524332303a204e6f74207370656e64657220213d20616464726573732830295f82015250565b5f61442a602083613532565b9150614435826143f6565b602082019050919050565b5f6020820190508181035f8301526144578161441e565b9050919050565b7f45524332303a20496e76616c69642066726f6d206164647265737300000000005f82015250565b5f614492601b83613532565b915061449d8261445e565b602082019050919050565b5f6020820190508181035f8301526144bf81614486565b9050919050565b7f45524332303a20496e76616c696420746f2061646472657373000000000000005f82015250565b5f6144fa601983613532565b9150614505826144c6565b602082019050919050565b5f6020820190508181035f830152614527816144ee565b9050919050565b7f45524332303a2053656e64657220697320626c61636b6c6973746564000000005f82015250565b5f614562601c83613532565b915061456d8261452e565b602082019050919050565b5f6020820190508181035f83015261458f81614556565b9050919050565b7f45524332303a20526563656976657220697320626c61636b6c697374656400005f82015250565b5f6145ca601e83613532565b91506145d582614596565b602082019050919050565b5f6020820190508181035f8301526145f7816145be565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614632601683613532565b915061463d826145fe565b602082019050919050565b5f6020820190508181035f83015261465f81614626565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b5f6146c0603583613532565b91506146cb82614666565b604082019050919050565b5f6020820190508181035f8301526146ed816146b4565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614728601383613532565b9150614733826146f4565b602082019050919050565b5f6020820190508181035f8301526147558161471c565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b5f6147b6603683613532565b91506147c18261475c565b604082019050919050565b5f6020820190508181035f8301526147e3816147aa565b9050919050565b7f45524332303a204e6f742066726f6d20213d20616464726573732830290000005f82015250565b5f61481e601d83613532565b9150614829826147ea565b602082019050919050565b5f6020820190508181035f83015261484b81614812565b9050919050565b7f45524332303a204e6f7420746f20213d206164647265737328302900000000005f82015250565b5f614886601b83613532565b915061489182614852565b602082019050919050565b5f6020820190508181035f8301526148b38161487a565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e745f82015250565b5f6148ee602083613532565b91506148f9826148ba565b602082019050919050565b5f6020820190508181035f83015261491b816148e2565b9050919050565b5f81905092915050565b50565b5f61493a5f83614922565b91506149458261492c565b5f82019050919050565b5f6149598261492f565b9150819050919050565b5f81519050614971816135f9565b92915050565b5f6020828403121561498c5761498b6135c1565b5b5f61499984828501614963565b91505092915050565b5f819050919050565b5f6149c56149c06149bb846149a2565b613a2b565b6134f7565b9050919050565b6149d5816149ab565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a0d816135e8565b82525050565b5f614a1e8383614a04565b60208301905092915050565b5f602082019050919050565b5f614a40826149db565b614a4a81856149e5565b9350614a55836149f5565b805f5b83811015614a85578151614a6c8882614a13565b9750614a7783614a2a565b925050600181019050614a58565b5085935050505092915050565b5f60a082019050614aa55f830188613500565b614ab260208301876149cc565b8181036040830152614ac48186614a36565b9050614ad3606083018561370e565b614ae06080830184613500565b969550505050505056fea2646970667358221220961998bd7fbd867649811da408423bd3c1233b746e54bdf928654c5a8447a63364736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106102e7575f3560e01c806375f0a8741161018f578063b62496f5116100db578063c42c3f8811610094578063e27a55fe1161006e578063e27a55fe14610b08578063e96db1ef14610b32578063f2fde38b14610b5c578063fc0217a414610b84576102ee565b8063c42c3f8814610a7a578063c6a3064714610aa4578063dd62ed3e14610acc576102ee565b8063b62496f51461095e578063b79c18861461099a578063be691883146109c2578063c1cb02a4146109ec578063c31c9c0714610a14578063c410a11b14610a3e576102ee565b8063924de9b711610148578063a9059cbb11610122578063a9059cbb146108a6578063af8f26e7146108e2578063b38d229a1461090c578063b38d5ef414610936576102ee565b8063924de9b71461081857806395d89b4114610840578063a457c2d71461086a576102ee565b806375f0a8741461070c5780637d6731701461073657806380da454314610760578063896c2b8a1461079c5780638da5cb5b146107c45780638ea5220f146107ee576102ee565b8063395093511161024e57806367b740e9116102075780637070678b116101e15780637070678b1461067c57806370a08231146106a4578063715018a6146106e0578063751039fc146106f6576102ee565b806367b740e91461060257806368092bd91461062a578063685fbc6b14610652576102ee565b806339509351146104f857806341c787961461053457806345167f261461055e5780634a62bb6514610586578063544d1ec9146105b05780635df6e68e146105d8576102ee565b806323b872dd116102a057806323b872dd146103ec57806326991cc8146104285780632c81355e14610452578063313ce5671461047a57806333012411146104a4578063372b44b8146104ce576102ee565b806301b12312146102f257806306fdde031461031c578063095ea7b3146103465780630bd05b691461038257806318160ddd1461039857806318c34be1146103c2576102ee565b366102ee57005b5f80fd5b3480156102fd575f80fd5b50610306610bae565b604051610313919061350f565b60405180910390f35b348015610327575f80fd5b50610330610bb4565b60405161033d9190613598565b60405180910390f35b348015610351575f80fd5b5061036c6004803603810190610367919061364d565b610c43565b60405161037991906136a5565b60405180910390f35b34801561038d575f80fd5b50610396610c60565b005b3480156103a3575f80fd5b506103ac610d19565b6040516103b9919061350f565b60405180910390f35b3480156103cd575f80fd5b506103d6610d22565b6040516103e3919061350f565b60405180910390f35b3480156103f7575f80fd5b50610412600480360381019061040d91906136be565b610d28565b60405161041f91906136a5565b60405180910390f35b348015610433575f80fd5b5061043c610e1a565b604051610449919061371d565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190613736565b610e3f565b005b348015610485575f80fd5b5061048e610f8c565b60405161049b919061377c565b60405180910390f35b3480156104af575f80fd5b506104b8610f94565b6040516104c5919061350f565b60405180910390f35b3480156104d9575f80fd5b506104e2610f9a565b6040516104ef919061350f565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061364d565b610fa0565b60405161052b91906136a5565b60405180910390f35b34801561053f575f80fd5b50610548611047565b60405161055591906136a5565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f91906137bf565b611059565b005b348015610591575f80fd5b5061059a6111bc565b6040516105a791906136a5565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613736565b6111ce565b005b3480156105e3575f80fd5b506105ec6112f3565b6040516105f9919061350f565b60405180910390f35b34801561060d575f80fd5b5061062860048036038101906106239190613736565b6112f9565b005b348015610635575f80fd5b50610650600480360381019061064b91906137bf565b61141e565b005b34801561065d575f80fd5b506106666114f2565b604051610673919061350f565b60405180910390f35b348015610687575f80fd5b506106a2600480360381019061069d91906137bf565b6114f8565b005b3480156106af575f80fd5b506106ca60048036038101906106c591906137fd565b6115cc565b6040516106d7919061350f565b60405180910390f35b3480156106eb575f80fd5b506106f4611612565b005b348015610701575f80fd5b5061070a611699565b005b348015610717575f80fd5b50610720611730565b60405161072d919061371d565b60405180910390f35b348015610741575f80fd5b5061074a611756565b604051610757919061350f565b60405180910390f35b34801561076b575f80fd5b50610786600480360381019061078191906137fd565b61175c565b60405161079391906136a5565b60405180910390f35b3480156107a7575f80fd5b506107c260048036038101906107bd9190613736565b611779565b005b3480156107cf575f80fd5b506107d86117ff565b6040516107e5919061371d565b60405180910390f35b3480156107f9575f80fd5b50610802611827565b60405161080f919061371d565b60405180910390f35b348015610823575f80fd5b5061083e60048036038101906108399190613828565b61184c565b005b34801561084b575f80fd5b506108546118e4565b6040516108619190613598565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b919061364d565b611974565b60405161089d91906136a5565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c7919061364d565b611a5a565b6040516108d991906136a5565b60405180910390f35b3480156108ed575f80fd5b506108f6611a77565b604051610903919061350f565b60405180910390f35b348015610917575f80fd5b50610920611a7d565b60405161092d919061350f565b60405180910390f35b348015610941575f80fd5b5061095c60048036038101906109579190613853565b611a83565b005b348015610969575f80fd5b50610984600480360381019061097f91906137fd565b611b6d565b60405161099191906136a5565b60405180910390f35b3480156109a5575f80fd5b506109c060048036038101906109bb9190613853565b611b8a565b005b3480156109cd575f80fd5b506109d6611c74565b6040516109e3919061350f565b60405180910390f35b3480156109f7575f80fd5b50610a126004803603810190610a0d91906139d1565b611c7a565b005b348015610a1f575f80fd5b50610a28611d92565b604051610a359190613a86565b60405180910390f35b348015610a49575f80fd5b50610a646004803603810190610a5f91906137fd565b611db7565b604051610a7191906136a5565b60405180910390f35b348015610a85575f80fd5b50610a8e611dd4565b604051610a9b919061350f565b60405180910390f35b348015610aaf575f80fd5b50610aca6004803603810190610ac591906137bf565b611dda565b005b348015610ad7575f80fd5b50610af26004803603810190610aed9190613a9f565b611eae565b604051610aff919061350f565b60405180910390f35b348015610b13575f80fd5b50610b1c611f30565b604051610b29919061350f565b60405180910390f35b348015610b3d575f80fd5b50610b46611f36565b604051610b53919061350f565b60405180910390f35b348015610b67575f80fd5b50610b826004803603810190610b7d91906137fd565b611f3c565b005b348015610b8f575f80fd5b50610b98612032565b604051610ba591906136a5565b60405180910390f35b600d5481565b60605f8054610bc290613b0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bee90613b0a565b8015610c395780601f10610c1057610100808354040283529160200191610c39565b820191905f5260205f20905b815481529060010190602001808311610c1c57829003601f168201915b5050505050905090565b5f610c56610c4f612044565b848461204b565b6001905092915050565b610c68612044565b73ffffffffffffffffffffffffffffffffffffffff16610c866117ff565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390613b84565b60405180910390fd5b6001600b5f6101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff02191690831515021790555043600c81905550565b5f600254905090565b60105481565b5f610d3484848461220e565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d7b612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190613bec565b60405180910390fd5b610e0e85610e06612044565b85840361204b565b60019150509392505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e47612044565b73ffffffffffffffffffffffffffffffffffffffff16610e656117ff565b73ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290613b84565b60405180910390fd5b620186a06001610ec9610d19565b610ed39190613c37565b610edd9190613ca5565b811015610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690613d45565b60405180910390fd5b6103e86005610f2c610d19565b610f369190613c37565b610f409190613ca5565b811115610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990613dd3565b60405180910390fd5b8060088190555050565b5f6012905090565b601a5481565b60115481565b5f61103d610fac612044565b848460045f610fb9612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110389190613df1565b61204b565b6001905092915050565b600e5f9054906101000a900460ff1681565b611061612044565b73ffffffffffffffffffffffffffffffffffffffff1661107f6117ff565b73ffffffffffffffffffffffffffffffffffffffff16146110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90613b84565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613e94565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60155f9054906101000a900460ff1681565b6111d6612044565b73ffffffffffffffffffffffffffffffffffffffff166111f46117ff565b73ffffffffffffffffffffffffffffffffffffffff161461124a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124190613b84565b60405180910390fd5b611252610f8c565b600a61125e9190613fe1565b6103e8600161126b610d19565b6112759190613c37565b61127f9190613ca5565b6112899190613ca5565b8110156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c29061409b565b60405180910390fd5b6112d3610f8c565b600a6112df9190613fe1565b816112ea9190613c37565b600a8190555050565b60195481565b611301612044565b73ffffffffffffffffffffffffffffffffffffffff1661131f6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613b84565b60405180910390fd5b61137d610f8c565b600a6113899190613fe1565b6103e86005611396610d19565b6113a09190613c37565b6113aa9190613ca5565b6113b49190613ca5565b8110156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90614129565b60405180910390fd5b6113fe610f8c565b600a61140a9190613fe1565b816114159190613c37565b60098190555050565b611426612044565b73ffffffffffffffffffffffffffffffffffffffff166114446117ff565b73ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190613b84565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095481565b611500612044565b73ffffffffffffffffffffffffffffffffffffffff1661151e6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613b84565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61161a612044565b73ffffffffffffffffffffffffffffffffffffffff166116386117ff565b73ffffffffffffffffffffffffffffffffffffffff161461168e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168590613b84565b60405180910390fd5b6116975f612d62565b565b6116a1612044565b73ffffffffffffffffffffffffffffffffffffffff166116bf6117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c90613b84565b60405180910390fd5b5f60155f6101000a81548160ff021916908315150217905550565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6013602052805f5260405f205f915054906101000a900460ff1681565b611781612044565b73ffffffffffffffffffffffffffffffffffffffff1661179f6117ff565b73ffffffffffffffffffffffffffffffffffffffff16146117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90613b84565b60405180910390fd5b80600d8190555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611854612044565b73ffffffffffffffffffffffffffffffffffffffff166118726117ff565b73ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613b84565b60405180910390fd5b80600e5f6101000a81548160ff02191690831515021790555050565b6060600180546118f390613b0a565b80601f016020809104026020016040519081016040528092919081815260200182805461191f90613b0a565b801561196a5780601f106119415761010080835404028352916020019161196a565b820191905f5260205f20905b81548152906001019060200180831161194d57829003601f168201915b5050505050905090565b5f8060045f611981612044565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290614191565b60405180910390fd5b611a4f611a46612044565b8585840361204b565b600191505092915050565b5f611a6d611a66612044565b848461220e565b6001905092915050565b601b5481565b600c5481565b611a8b612044565b73ffffffffffffffffffffffffffffffffffffffff16611aa96117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613b84565b60405180910390fd5b81601a8190555080601b81905550601b54601a54611b1d9190613df1565b60198190555060326019541115611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906141f9565b60405180910390fd5b5050565b6014602052805f5260405f205f915054906101000a900460ff1681565b611b92612044565b73ffffffffffffffffffffffffffffffffffffffff16611bb06117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613b84565b60405180910390fd5b8160178190555080601881905550601854601754611c249190613df1565b601681905550605f6016541115611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790614261565b60405180910390fd5b5050565b60185481565b611c82612044565b73ffffffffffffffffffffffffffffffffffffffff16611ca06117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ced90613b84565b60405180910390fd5b5f5b60018351611d06919061427f565b8111611d8d5781601d5f858481518110611d2357611d226142b2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611d85906142df565b915050611cf8565b505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b611de2612044565b73ffffffffffffffffffffffffffffffffffffffff16611e006117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d90613b84565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60165481565b60175481565b611f44612044565b73ffffffffffffffffffffffffffffffffffffffff16611f626117ff565b73ffffffffffffffffffffffffffffffffffffffff1614611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90613b84565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201d90614370565b60405180910390fd5b61202f81612d62565b50565b600b5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b0906143d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90614440565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612201919061350f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361227c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612273906144a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190614510565b60405180910390fd5b601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90614578565b60405180910390fd5b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f5906145e0565b60405180910390fd5b5f81036124155761241083835f612e25565b612d5d565b60155f9054906101000a900460ff16156128f7576124316117ff565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561249f575061246f6117ff565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124d757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612511575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125295750601c5f9054906101000a900460ff16155b156128f657600b5f9054906101000a900460ff1661261c5760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125dc575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61261b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261290614648565b60405180910390fd5b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126b9575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561276057600a54811115612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa906146d6565b60405180910390fd5b60095461270f836115cc565b8261271a9190613df1565b111561275b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127529061473e565b60405180910390fd5b6128f5565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127fd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561284c57600a54811115612847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283e906147cc565b60405180910390fd5b6128f4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128f3576009546128a6836115cc565b826128b19190613df1565b11156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e99061473e565b60405180910390fd5b5b5b5b5b5b5f612901306115cc565b90505f6008548210159050600e5f9054906101000a900460ff1680156129245750805b801561293c5750601c5f9054906101000a900460ff16155b801561298f575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129e2575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a35575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a50575043600d54600c54612a4d9190613df1565b11155b15612a91576001601c5f6101000a81548160ff021916908315150217905550612a7761309d565b5f601c5f6101000a81548160ff0219169083151502179055505b5f601c5f9054906101000a900460ff1615905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b3f575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b48575f90505b5f8115612d4d5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ba657505f601654115b15612c3e57612bd36064612bc56016548861327890919063ffffffff16565b61328d90919063ffffffff16565b905060165460185482612be69190613c37565b612bf09190613ca5565b60115f828254612c009190613df1565b9250508190555060165460175482612c189190613c37565b612c229190613ca5565b60105f828254612c329190613df1565b92505081905550612d2a565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c9557505f601954115b15612d2957612cc26064612cb46019548861327890919063ffffffff16565b61328d90919063ffffffff16565b9050601954601b5482612cd59190613c37565b612cdf9190613ca5565b60115f828254612cef9190613df1565b92505081905550601954601a5482612d079190613c37565b612d119190613ca5565b60105f828254612d219190613df1565b925050819055505b5b5f811115612d3e57612d3d873083612e25565b5b8085612d4a919061427f565b94505b612d58878787612e25565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a90614834565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef89061489c565b60405180910390fd5b612f0c8383836132a2565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8790614904565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546130209190613df1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613084919061350f565b60405180910390a36130978484846132a7565b50505050565b5f806011546010546130af9190613df1565b90505f6130bb306115cc565b90505f8214806130ca57505f81145b156130d757505050613276565b60056008546130e69190613c37565b8111156130ff5760056008546130fc9190613c37565b90505b5f47905061310c826132ac565b5f61312082476134e290919063ffffffff16565b90505f61314a8561313c6011548561327890919063ffffffff16565b61328d90919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516131919061494f565b5f6040518083038185875af1925050503d805f81146131cb576040519150601f19603f3d011682016040523d82523d5f602084013e6131d0565b606091505b505080965050600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161321c9061494f565b5f6040518083038185875af1925050503d805f8114613256576040519150601f19603f3d011682016040523d82523d5f602084013e61325b565b606091505b5050809650505f6010819055505f6011819055505050505050505b565b5f81836132859190613c37565b905092915050565b5f818361329a9190613ca5565b905092915050565b505050565b505050565b5f600267ffffffffffffffff8111156132c8576132c7613895565b5b6040519080825280602002602001820160405280156132f65781602001602082028036833780820191505090505b50905030815f8151811061330d5761330c6142b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133d59190614977565b816001815181106133e9576133e86142b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061344f3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016134b1959493929190614a92565b5f604051808303815f87803b1580156134c8575f80fd5b505af11580156134da573d5f803e3d5ffd5b505050505050565b5f81836134ef919061427f565b905092915050565b5f819050919050565b613509816134f7565b82525050565b5f6020820190506135225f830184613500565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61356a82613528565b6135748185613532565b9350613584818560208601613542565b61358d81613550565b840191505092915050565b5f6020820190508181035f8301526135b08184613560565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135f2826135c9565b9050919050565b613602816135e8565b811461360c575f80fd5b50565b5f8135905061361d816135f9565b92915050565b61362c816134f7565b8114613636575f80fd5b50565b5f8135905061364781613623565b92915050565b5f8060408385031215613663576136626135c1565b5b5f6136708582860161360f565b925050602061368185828601613639565b9150509250929050565b5f8115159050919050565b61369f8161368b565b82525050565b5f6020820190506136b85f830184613696565b92915050565b5f805f606084860312156136d5576136d46135c1565b5b5f6136e28682870161360f565b93505060206136f38682870161360f565b925050604061370486828701613639565b9150509250925092565b613717816135e8565b82525050565b5f6020820190506137305f83018461370e565b92915050565b5f6020828403121561374b5761374a6135c1565b5b5f61375884828501613639565b91505092915050565b5f60ff82169050919050565b61377681613761565b82525050565b5f60208201905061378f5f83018461376d565b92915050565b61379e8161368b565b81146137a8575f80fd5b50565b5f813590506137b981613795565b92915050565b5f80604083850312156137d5576137d46135c1565b5b5f6137e28582860161360f565b92505060206137f3858286016137ab565b9150509250929050565b5f60208284031215613812576138116135c1565b5b5f61381f8482850161360f565b91505092915050565b5f6020828403121561383d5761383c6135c1565b5b5f61384a848285016137ab565b91505092915050565b5f8060408385031215613869576138686135c1565b5b5f61387685828601613639565b925050602061388785828601613639565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6138cb82613550565b810181811067ffffffffffffffff821117156138ea576138e9613895565b5b80604052505050565b5f6138fc6135b8565b905061390882826138c2565b919050565b5f67ffffffffffffffff82111561392757613926613895565b5b602082029050602081019050919050565b5f80fd5b5f61394e6139498461390d565b6138f3565b9050808382526020820190506020840283018581111561397157613970613938565b5b835b8181101561399a5780613986888261360f565b845260208401935050602081019050613973565b5050509392505050565b5f82601f8301126139b8576139b7613891565b5b81356139c884826020860161393c565b91505092915050565b5f80604083850312156139e7576139e66135c1565b5b5f83013567ffffffffffffffff811115613a0457613a036135c5565b5b613a10858286016139a4565b9250506020613a21858286016137ab565b9150509250929050565b5f819050919050565b5f613a4e613a49613a44846135c9565b613a2b565b6135c9565b9050919050565b5f613a5f82613a34565b9050919050565b5f613a7082613a55565b9050919050565b613a8081613a66565b82525050565b5f602082019050613a995f830184613a77565b92915050565b5f8060408385031215613ab557613ab46135c1565b5b5f613ac28582860161360f565b9250506020613ad38582860161360f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613b2157607f821691505b602082108103613b3457613b33613add565b5b50919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f613b6e600d83613532565b9150613b7982613b3a565b602082019050919050565b5f6020820190508181035f830152613b9b81613b62565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e740000005f82015250565b5f613bd6601d83613532565b9150613be182613ba2565b602082019050919050565b5f6020820190508181035f830152613c0381613bca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613c41826134f7565b9150613c4c836134f7565b9250828202613c5a816134f7565b91508282048414831517613c7157613c70613c0a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613caf826134f7565b9150613cba836134f7565b925082613cca57613cc9613c78565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613d2f603583613532565b9150613d3a82613cd5565b604082019050919050565b5f6020820190508181035f830152613d5c81613d23565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613dbd603483613532565b9150613dc882613d63565b604082019050919050565b5f6020820190508181035f830152613dea81613db1565b9050919050565b5f613dfb826134f7565b9150613e06836134f7565b9250828201905080821115613e1e57613e1d613c0a565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613e7e603983613532565b9150613e8982613e24565b604082019050919050565b5f6020820190508181035f830152613eab81613e72565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613f0757808604811115613ee357613ee2613c0a565b5b6001851615613ef25780820291505b8081029050613f0085613eb2565b9450613ec7565b94509492505050565b5f82613f1f5760019050613fda565b81613f2c575f9050613fda565b8160018114613f425760028114613f4c57613f7b565b6001915050613fda565b60ff841115613f5e57613f5d613c0a565b5b8360020a915084821115613f7557613f74613c0a565b5b50613fda565b5060208310610133831016604e8410600b8410161715613fb05782820a905083811115613fab57613faa613c0a565b5b613fda565b613fbd8484846001613ebe565b92509050818404811115613fd457613fd3613c0a565b5b81810290505b9392505050565b5f613feb826134f7565b9150613ff683613761565b92506140237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f10565b905092915050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f614085602f83613532565b91506140908261402b565b604082019050919050565b5f6020820190508181035f8301526140b281614079565b9050919050565b7f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c5f8201527f6574206c6f776572207468616e20302e35250000000000000000000000000000602082015250565b5f614113603283613532565b915061411e826140b9565b604082019050919050565b5f6020820190508181035f83015261414081614107565b9050919050565b7f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c7565005f82015250565b5f61417b601f83613532565b915061418682614147565b602082019050919050565b5f6020820190508181035f8301526141a88161416f565b9050919050565b7f4d757374206b6565702074617820617420353025206f72206c657373000000005f82015250565b5f6141e3601c83613532565b91506141ee826141af565b602082019050919050565b5f6020820190508181035f830152614210816141d7565b9050919050565b7f4d757374206b6565702074617820617420393525206f72206c657373000000005f82015250565b5f61424b601c83613532565b915061425682614217565b602082019050919050565b5f6020820190508181035f8301526142788161423f565b9050919050565b5f614289826134f7565b9150614294836134f7565b92508282039050818111156142ac576142ab613c0a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6142e9826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361431b5761431a613c0a565b5b600182019050919050565b7f4e6577206f776e6572206973205a45524f0000000000000000000000000000005f82015250565b5f61435a601183613532565b915061436582614326565b602082019050919050565b5f6020820190508181035f8301526143878161434e565b9050919050565b7f45524332303a204e6f74206f776e657220213d206164647265737328302900005f82015250565b5f6143c2601e83613532565b91506143cd8261438e565b602082019050919050565b5f6020820190508181035f8301526143ef816143b6565b9050919050565b7f45524332303a204e6f74207370656e64657220213d20616464726573732830295f82015250565b5f61442a602083613532565b9150614435826143f6565b602082019050919050565b5f6020820190508181035f8301526144578161441e565b9050919050565b7f45524332303a20496e76616c69642066726f6d206164647265737300000000005f82015250565b5f614492601b83613532565b915061449d8261445e565b602082019050919050565b5f6020820190508181035f8301526144bf81614486565b9050919050565b7f45524332303a20496e76616c696420746f2061646472657373000000000000005f82015250565b5f6144fa601983613532565b9150614505826144c6565b602082019050919050565b5f6020820190508181035f830152614527816144ee565b9050919050565b7f45524332303a2053656e64657220697320626c61636b6c6973746564000000005f82015250565b5f614562601c83613532565b915061456d8261452e565b602082019050919050565b5f6020820190508181035f83015261458f81614556565b9050919050565b7f45524332303a20526563656976657220697320626c61636b6c697374656400005f82015250565b5f6145ca601e83613532565b91506145d582614596565b602082019050919050565b5f6020820190508181035f8301526145f7816145be565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614632601683613532565b915061463d826145fe565b602082019050919050565b5f6020820190508181035f83015261465f81614626565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d6178546f6b656e416d6f756e7450657254786e2e0000000000000000000000602082015250565b5f6146c0603583613532565b91506146cb82614666565b604082019050919050565b5f6020820190508181035f8301526146ed816146b4565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614728601383613532565b9150614733826146f4565b602082019050919050565b5f6020820190508181035f8301526147558161471c565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178546f6b656e416d6f756e7450657254786e2e00000000000000000000602082015250565b5f6147b6603683613532565b91506147c18261475c565b604082019050919050565b5f6020820190508181035f8301526147e3816147aa565b9050919050565b7f45524332303a204e6f742066726f6d20213d20616464726573732830290000005f82015250565b5f61481e601d83613532565b9150614829826147ea565b602082019050919050565b5f6020820190508181035f83015261484b81614812565b9050919050565b7f45524332303a204e6f7420746f20213d206164647265737328302900000000005f82015250565b5f614886601b83613532565b915061489182614852565b602082019050919050565b5f6020820190508181035f8301526148b38161487a565b9050919050565b7f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e745f82015250565b5f6148ee602083613532565b91506148f9826148ba565b602082019050919050565b5f6020820190508181035f83015261491b816148e2565b9050919050565b5f81905092915050565b50565b5f61493a5f83614922565b91506149458261492c565b5f82019050919050565b5f6149598261492f565b9150819050919050565b5f81519050614971816135f9565b92915050565b5f6020828403121561498c5761498b6135c1565b5b5f61499984828501614963565b91505092915050565b5f819050919050565b5f6149c56149c06149bb846149a2565b613a2b565b6134f7565b9050919050565b6149d5816149ab565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a0d816135e8565b82525050565b5f614a1e8383614a04565b60208301905092915050565b5f602082019050919050565b5f614a40826149db565b614a4a81856149e5565b9350614a55836149f5565b805f5b83811015614a85578151614a6c8882614a13565b9750614a7783614a2a565b925050600181019050614a58565b5085935050505092915050565b5f60a082019050614aa55f830188613500565b614ab260208301876149cc565b8181036040830152614ac48186614a36565b9050614ad3606083018561370e565b614ae06080830184613500565b969550505050505056fea2646970667358221220961998bd7fbd867649811da408423bd3c1233b746e54bdf928654c5a8447a63364736f6c634300081a0033
Deployed Bytecode Sourcemap
14083:10105:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14455:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9768:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10340:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16792:156;;;;;;;;;;;;;:::i;:::-;;10089:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14608:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11020:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14210:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17563:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9988:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15066:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14653:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11594:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14498:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19388:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14885:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18195:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15033:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17915:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18471:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14286:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17078:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10205:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1076:103;;;;;;;;;;;;;:::i;:::-;;17367:84;;;;;;;;;;;;;:::i;:::-;;14538:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14246:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14763:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16954:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;793:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14575:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17457:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9876:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11813:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11425:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15103:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14415:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18793:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14819:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19085:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14999:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18588:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14167:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14694:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14331:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17231:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10861:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14927:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14961:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;888:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14375:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14455:36;;;;:::o;9768:100::-;9822:13;9855:5;9848:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9768:100;:::o;10340:169::-;10423:4;10440:39;10449:12;:10;:12::i;:::-;10463:7;10472:6;10440:8;:39::i;:::-;10497:4;10490:11;;10340:169;;;;:::o;16792:156::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;16865:4:::1;16849:13;;:20;;;;;;;;;;;;;;;;;;16894:4;16880:11;;:18;;;;;;;;;;;;;;;;;;16928:12;16909:18;:31;;;;16792:156::o:0;10089:108::-;10150:7;10177:12;;10170:19;;10089:108;:::o;14608:38::-;;;;:::o;11020:397::-;11117:4;11134:27;11144:4;11150:2;11154:6;11134:9;:27::i;:::-;11172:16;11191:11;:17;11203:4;11191:17;;;;;;;;;;;;;;;:31;11209:12;:10;:12::i;:::-;11191:31;;;;;;;;;;;;;;;;11172:50;;11253:6;11241:8;:18;;11233:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11329:47;11338:4;11344:12;:10;:12::i;:::-;11369:6;11358:8;:17;11329:8;:47::i;:::-;11405:4;11398:11;;;11020:397;;;;;:::o;14210:23::-;;;;;;;;;;;;;:::o;17563:346::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17687:6:::1;17682:1;17666:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17665:28;;;;:::i;:::-;17655:6;:38;;17647:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;17802:4;17797:1;17781:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17780:26;;;;:::i;:::-;17770:6;:36;;17762:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17895:6;17874:18;:27;;;;17563:346:::0;:::o;9988:93::-;10046:5;10071:2;10064:9;;9988:93;:::o;15066:30::-;;;;:::o;14653:32::-;;;;:::o;11594:211::-;11680:4;11697:78;11706:12;:10;:12::i;:::-;11720:7;11766:8;11729:11;:25;11741:12;:10;:12::i;:::-;11729:25;;;;;;;;;;;;;;;:34;11755:7;11729:34;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;11697:8;:78::i;:::-;11793:4;11786:11;;11594:211;;;;:::o;14498:31::-;;;;;;;;;;;;;:::o;19388:247::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19507:8:::1;;;;;;;;;;;19499:16;;:4;:16;;::::0;19491:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19622:5;19588:25;:31;19614:4;19588:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19388:247:::0;;:::o;14885:33::-;;;;;;;;;;;;;:::o;18195:270::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18333:10:::1;:8;:10::i;:::-;18327:2;:16;;;;:::i;:::-;18318:4;18313:1;18297:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18296:26;;;;:::i;:::-;18295:49;;;;:::i;:::-;18285:6;:59;;18277:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;18446:10;:8;:10::i;:::-;18440:2;:16;;;;:::i;:::-;18430:6;:27;;;;:::i;:::-;18407:20;:50;;;;18195:270:::0;:::o;15033:26::-;;;;:::o;17915:274::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18051:10:::1;:8;:10::i;:::-;18045:2;:16;;;;:::i;:::-;18036:4;18031:1;18015:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18014:26;;;;:::i;:::-;18013:49;;;;:::i;:::-;18003:6;:59;;17995:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;18170:10;:8;:10::i;:::-;18164:2;:16;;;;:::i;:::-;18154:6;:27;;;;:::i;:::-;18128:23;:53;;;;17915:274:::0;:::o;18471:111::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18568:6:::1;18550:9;:15;18560:4;18550:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18471:111:::0;;:::o;14286:38::-;;;;:::o;17078:147::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17212:5:::1;17175:28;:34;17204:4;17175:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17078:147:::0;;:::o;10205:127::-;10279:7;10306:9;:18;10316:7;10306:18;;;;;;;;;;;;;;;;10299:25;;10205:127;;;:::o;1076:103::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1141:30:::1;1168:1;1141:18;:30::i;:::-;1076:103::o:0;17367:84::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17438:5:::1;17421:14;;:22;;;;;;;;;;;;;;;;;;17367:84::o:0;14538:30::-;;;;;;;;;;;;;:::o;14246:33::-;;;;:::o;14763:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16954:118::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17058:6:::1;17036:21;:28;;;;16954:118:::0;:::o;793:87::-;839:7;866:6;;;;;;;;;;;859:13;;793:87;:::o;14575:24::-;;;;;;;;;;;;;:::o;17457:100::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17542:7:::1;17528:11;;:21;;;;;;;;;;;;;;;;;;17457:100:::0;:::o;9876:104::-;9932:13;9965:7;9958:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9876:104;:::o;11813:360::-;11899:4;11916:16;11935:11;:25;11947:12;:10;:12::i;:::-;11935:25;;;;;;;;;;;;;;;:34;11961:7;11935:34;;;;;;;;;;;;;;;;11916:53;;12000:8;11988;:20;;11980:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12080:52;12089:12;:10;:12::i;:::-;12103:7;12123:8;12112;:19;12080:8;:52::i;:::-;12161:4;12154:11;;;11813:360;;;;:::o;11425:161::-;11504:4;11521:35;11531:12;:10;:12::i;:::-;11545:2;11549:6;11521:9;:35::i;:::-;11574:4;11567:11;;11425:161;;;;:::o;15103:24::-;;;;:::o;14415:33::-;;;;:::o;18793:284::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18904:12:::1;18886:15;:30;;;;18939:9;18927;:21;;;;18991:9;;18973:15;;:27;;;;:::i;:::-;18959:11;:41;;;;19034:2;19019:11;;:17;;19011:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;18793:284:::0;;:::o;14819:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;19085:291::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19198:12:::1;19179:16;:31;;;;19234:9;19221:10;:22;;;;19288:10;;19269:16;;:29;;;;:::i;:::-;19254:12;:44;;;;19333:2;19317:12;;:18;;19309:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19085:291:::0;;:::o;14999:25::-;;;;:::o;18588:199::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;18686:9:::1;18681:99;18717:1;18704:5;:12;:14;;;;:::i;:::-;18699:1;:19;18681:99;;18762:6;18740:9;:19;18750:5;18756:1;18750:8;;;;;;;;:::i;:::-;;;;;;;;18740:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18720:3;;;;;:::i;:::-;;;;18681:99;;;;18588:199:::0;;:::o;14167:36::-;;;;;;;;;;;;;:::o;14694:60::-;;;;;;;;;;;;;;;;;;;;;;:::o;14331:35::-;;;;:::o;17231:128::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17346:5:::1;17319:15;:24;17335:7;17319:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17231:128:::0;;:::o;10861:151::-;10950:7;10977:11;:18;10989:5;10977:18;;;;;;;;;;;;;;;:27;10996:7;10977:27;;;;;;;;;;;;;;;;10970:34;;10861:151;;;;:::o;14927:27::-;;;;:::o;14961:31::-;;;;:::o;888:180::-;735:12;:10;:12::i;:::-;724:23;;:7;:5;:7::i;:::-;:23;;;716:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;997:1:::1;977:22;;:8;:22;;::::0;969:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1032:28;1051:8;1032:18;:28::i;:::-;888:180:::0;:::o;14375:33::-;;;;;;;;;;;;;:::o;230:98::-;283:7;310:10;303:17;;230:98;:::o;10517:336::-;10636:1;10619:19;;:5;:19;;;10611:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10711:1;10692:21;;:7;:21;;;10684:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10791:6;10761:11;:18;10773:5;10761:18;;;;;;;;;;;;;;;:27;10780:7;10761:27;;;;;;;;;;;;;;;:36;;;;10829:7;10813:32;;10822:5;10813:32;;;10838:6;10813:32;;;;;;:::i;:::-;;;;;;;;10517:336;;;:::o;20541:3042::-;20689:1;20673:18;;:4;:18;;;20665:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20756:1;20742:16;;:2;:16;;;20734:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20808:9;:15;20818:4;20808:15;;;;;;;;;;;;;;;;;;;;;;;;;20807:16;20799:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20876:9;:13;20886:2;20876:13;;;;;;;;;;;;;;;;;;;;;;;;;20875:14;20867:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20951:1;20941:6;:11;20937:93;;20969:28;20985:4;20991:2;20995:1;20969:15;:28::i;:::-;21012:7;;20937:93;21046:14;;;;;;;;;;;21042:1078;;;21089:7;:5;:7::i;:::-;21081:15;;:4;:15;;;;:32;;;;;21106:7;:5;:7::i;:::-;21100:13;;:2;:13;;;;21081:32;:52;;;;;21131:1;21117:16;;:2;:16;;;;21081:52;:77;;;;;21151:6;21137:21;;:2;:21;;;;21081:77;:90;;;;;21163:8;;;;;;;;;;;21162:9;21081:90;21077:1032;;;21197:13;;;;;;;;;;;21192:142;;21243:15;:21;21259:4;21243:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;21268:15;:19;21284:2;21268:19;;;;;;;;;;;;;;;;;;;;;;;;;21243:44;21235:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21192:142;21358:25;:31;21384:4;21358:31;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;21394:28;:32;21423:2;21394:32;;;;;;;;;;;;;;;;;;;;;;;;;21393:33;21358:68;21354:740;;;21469:20;;21459:6;:30;;21451:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21604:23;;21587:13;21597:2;21587:9;:13::i;:::-;21578:6;:22;;;;:::i;:::-;:49;;21570:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;21354:740;;;21698:25;:29;21724:2;21698:29;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;21732:28;:34;21761:4;21732:34;;;;;;;;;;;;;;;;;;;;;;;;;21731:35;21698:68;21694:400;;;21809:20;;21799:6;:30;;21791:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21694:400;;;21936:28;:32;21965:2;21936:32;;;;;;;;;;;;;;;;;;;;;;;;;21931:163;;22027:23;;22010:13;22020:2;22010:9;:13::i;:::-;22001:6;:22;;;;:::i;:::-;:49;;21993:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;21931:163;21694:400;21354:740;21077:1032;21042:1078;22130:20;22153:24;22171:4;22153:9;:24::i;:::-;22130:47;;22188:12;22219:18;;22203:12;:34;;22188:49;;22252:11;;;;;;;;;;;:36;;;;;22281:7;22252:36;:63;;;;;22307:8;;;;;;;;;;;22306:9;22252:63;:113;;;;;22334:25;:31;22360:4;22334:31;;;;;;;;;;;;;;;;;;;;;;;;;22333:32;22252:113;:153;;;;;22384:15;:21;22400:4;22384:21;;;;;;;;;;;;;;;;;;;;;;;;;22383:22;22252:153;:191;;;;;22424:15;:19;22440:2;22424:19;;;;;;;;;;;;;;;;;;;;;;;;;22423:20;22252:191;:264;;;;;22504:12;22479:21;;22460:18;;:40;;;;:::i;:::-;:56;;22252:264;22248:378;;;22554:4;22543:8;;:15;;;;;;;;;;;;;;;;;;22573:10;:8;:10::i;:::-;22609:5;22598:8;;:16;;;;;;;;;;;;;;;;;;22248:378;22638:8;22650;;;;;;;;;;;22649:9;22638:20;;22673:15;:21;22689:4;22673:21;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;22698:15;:19;22714:2;22698:19;;;;;;;;;;;;;;;;;;;;;;;;;22673:44;22669:74;;;22738:5;22732:11;;22669:74;22756:12;22787:3;22783:747;;;22811:25;:29;22837:2;22811:29;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;;22859:1;22844:12;;:16;22811:49;22807:595;;;22888:33;22917:3;22888:24;22899:12;;22888:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22881:40;;22983:12;;22969:10;;22962:4;:17;;;;:::i;:::-;22961:34;;;;:::i;:::-;22940:17;;:55;;;;;;;:::i;:::-;;;;;;;;23069:12;;23049:16;;23042:4;:23;;;;:::i;:::-;23041:40;;;;:::i;:::-;23014:23;;:67;;;;;;;:::i;:::-;;;;;;;;22807:595;;;23120:25;:31;23146:4;23120:31;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23169:1;23155:11;;:15;23120:50;23116:286;;;23198:32;23226:3;23198:23;23209:11;;23198:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;23191:39;;23291:11;;23278:9;;23271:4;:16;;;;:::i;:::-;23270:32;;;;:::i;:::-;23249:17;;:53;;;;;;;:::i;:::-;;;;;;;;23375:11;;23356:15;;23349:4;:22;;;;:::i;:::-;23348:38;;;;:::i;:::-;23321:23;;:65;;;;;;;:::i;:::-;;;;;;;;23116:286;22807:595;23427:1;23420:4;:8;23416:73;;;23447:42;23463:4;23477;23484;23447:15;:42::i;:::-;23416:73;23514:4;23504:14;;;;;:::i;:::-;;;22783:747;23542:33;23558:4;23564:2;23568:6;23542:15;:33::i;:::-;20654:2929;;;;20541:3042;;;;:::o;1187:191::-;1261:16;1280:6;;;;;;;;;;;1261:25;;1306:8;1297:6;;:17;;;;;;;;;;;;;;;;;;1361:8;1330:40;;1351:8;1330:40;;;;;;;;;;;;1250:128;1187:191;:::o;13317:607::-;13430:1;13414:18;;:4;:18;;;13406:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13499:1;13485:16;;:2;:16;;;13477:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13544:38;13565:4;13571:2;13575:6;13544:20;:38::i;:::-;13593:19;13615:9;:15;13625:4;13615:15;;;;;;;;;;;;;;;;13593:37;;13664:6;13649:11;:21;;13641:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13775:6;13761:11;:20;13743:9;:15;13753:4;13743:15;;;;;;;;;;;;;;;:38;;;;13820:6;13803:9;:13;13813:2;13803:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;13857:2;13842:26;;13851:4;13842:26;;;13861:6;13842:26;;;;;;:::i;:::-;;;;;;;;13879:37;13899:4;13905:2;13909:6;13879:19;:37::i;:::-;13395:529;13317:607;;;:::o;19641:892::-;19680:12;19703:25;19757:17;;19731:23;;:43;;;;:::i;:::-;19703:71;;19785:20;19808:24;19826:4;19808:9;:24::i;:::-;19785:47;;19868:1;19847:17;:22;:43;;;;19889:1;19873:12;:17;19847:43;19843:69;;;19905:7;;;;;19843:69;19964:1;19943:18;;:22;;;;:::i;:::-;19928:12;:37;19924:106;;;20017:1;19996:18;;:22;;;;:::i;:::-;19981:37;;19924:106;20042:22;20067:21;20042:46;;20099:30;20116:12;20099:16;:30::i;:::-;20142:18;20163:41;20189:14;20163:21;:25;;:41;;;;:::i;:::-;20142:62;;20215:17;20235:56;20273:17;20235:33;20250:17;;20235:10;:14;;:33;;;;:::i;:::-;:37;;:56;;;;:::i;:::-;20215:76;;20326:9;;;;;;;;;;;20318:23;;20349:9;20318:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20304:59;;;;;20396:15;;;;;;;;;;;20388:29;;20426:21;20388:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20374:79;;;;;20492:1;20466:23;:27;;;;20524:1;20504:17;:21;;;;19669:864;;;;;;19641:892;:::o;1409:98::-;1467:7;1498:1;1494;:5;;;;:::i;:::-;1487:12;;1409:98;;;;:::o;1793:::-;1851:7;1882:1;1878;:5;;;;:::i;:::-;1871:12;;1793:98;;;;:::o;13184:125::-;;;;:::o;13932:144::-;;;;:::o;23624:559::-;23745:21;23783:1;23769:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23745:40;;23814:4;23796;23801:1;23796:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23840:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23830:4;23835:1;23830:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;23870:52;23887:4;23902:10;;;;;;;;;;;23915:6;23870:8;:52::i;:::-;23961:10;;;;;;;;;;;:61;;;24037:6;24058:1;24102:4;24129;24149:15;23961:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23674:509;23624:559;:::o;2438:98::-;2496:7;2527:1;2523;:5;;;;:::i;:::-;2516:12;;2438:98;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1677:75::-;1710:6;1743:2;1737:9;1727:19;;1677:75;:::o;1758:117::-;1867:1;1864;1857:12;1881:117;1990:1;1987;1980:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:118::-;4403:24;4421:5;4403:24;:::i;:::-;4398:3;4391:37;4316:118;;:::o;4440:222::-;4533:4;4571:2;4560:9;4556:18;4548:26;;4584:71;4652:1;4641:9;4637:17;4628:6;4584:71;:::i;:::-;4440:222;;;;:::o;4668:329::-;4727:6;4776:2;4764:9;4755:7;4751:23;4747:32;4744:119;;;4782:79;;:::i;:::-;4744:119;4902:1;4927:53;4972:7;4963:6;4952:9;4948:22;4927:53;:::i;:::-;4917:63;;4873:117;4668:329;;;;:::o;5003:86::-;5038:7;5078:4;5071:5;5067:16;5056:27;;5003:86;;;:::o;5095:112::-;5178:22;5194:5;5178:22;:::i;:::-;5173:3;5166:35;5095:112;;:::o;5213:214::-;5302:4;5340:2;5329:9;5325:18;5317:26;;5353:67;5417:1;5406:9;5402:17;5393:6;5353:67;:::i;:::-;5213:214;;;;:::o;5433:116::-;5503:21;5518:5;5503:21;:::i;:::-;5496:5;5493:32;5483:60;;5539:1;5536;5529:12;5483:60;5433:116;:::o;5555:133::-;5598:5;5636:6;5623:20;5614:29;;5652:30;5676:5;5652:30;:::i;:::-;5555:133;;;;:::o;5694:468::-;5759:6;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:119;;;5822:79;;:::i;:::-;5784:119;5942:1;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5913:117;6069:2;6095:50;6137:7;6128:6;6117:9;6113:22;6095:50;:::i;:::-;6085:60;;6040:115;5694:468;;;;;:::o;6168:329::-;6227:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6168:329;;;;:::o;6503:323::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:50;6801:7;6792:6;6781:9;6777:22;6759:50;:::i;:::-;6749:60;;6705:114;6503:323;;;;:::o;6832:474::-;6900:6;6908;6957:2;6945:9;6936:7;6932:23;6928:32;6925:119;;;6963:79;;:::i;:::-;6925:119;7083:1;7108:53;7153:7;7144:6;7133:9;7129:22;7108:53;:::i;:::-;7098:63;;7054:117;7210:2;7236:53;7281:7;7272:6;7261:9;7257:22;7236:53;:::i;:::-;7226:63;;7181:118;6832:474;;;;;:::o;7312:117::-;7421:1;7418;7411:12;7435:180;7483:77;7480:1;7473:88;7580:4;7577:1;7570:15;7604:4;7601:1;7594:15;7621:281;7704:27;7726:4;7704:27;:::i;:::-;7696:6;7692:40;7834:6;7822:10;7819:22;7798:18;7786:10;7783:34;7780:62;7777:88;;;7845:18;;:::i;:::-;7777:88;7885:10;7881:2;7874:22;7664:238;7621:281;;:::o;7908:129::-;7942:6;7969:20;;:::i;:::-;7959:30;;7998:33;8026:4;8018:6;7998:33;:::i;:::-;7908:129;;;:::o;8043:311::-;8120:4;8210:18;8202:6;8199:30;8196:56;;;8232:18;;:::i;:::-;8196:56;8282:4;8274:6;8270:17;8262:25;;8342:4;8336;8332:15;8324:23;;8043:311;;;:::o;8360:117::-;8469:1;8466;8459:12;8500:710;8596:5;8621:81;8637:64;8694:6;8637:64;:::i;:::-;8621:81;:::i;:::-;8612:90;;8722:5;8751:6;8744:5;8737:21;8785:4;8778:5;8774:16;8767:23;;8838:4;8830:6;8826:17;8818:6;8814:30;8867:3;8859:6;8856:15;8853:122;;;8886:79;;:::i;:::-;8853:122;9001:6;8984:220;9018:6;9013:3;9010:15;8984:220;;;9093:3;9122:37;9155:3;9143:10;9122:37;:::i;:::-;9117:3;9110:50;9189:4;9184:3;9180:14;9173:21;;9060:144;9044:4;9039:3;9035:14;9028:21;;8984:220;;;8988:21;8602:608;;8500:710;;;;;:::o;9233:370::-;9304:5;9353:3;9346:4;9338:6;9334:17;9330:27;9320:122;;9361:79;;:::i;:::-;9320:122;9478:6;9465:20;9503:94;9593:3;9585:6;9578:4;9570:6;9566:17;9503:94;:::i;:::-;9494:103;;9310:293;9233:370;;;;:::o;9609:678::-;9699:6;9707;9756:2;9744:9;9735:7;9731:23;9727:32;9724:119;;;9762:79;;:::i;:::-;9724:119;9910:1;9899:9;9895:17;9882:31;9940:18;9932:6;9929:30;9926:117;;;9962:79;;:::i;:::-;9926:117;10067:78;10137:7;10128:6;10117:9;10113:22;10067:78;:::i;:::-;10057:88;;9853:302;10194:2;10220:50;10262:7;10253:6;10242:9;10238:22;10220:50;:::i;:::-;10210:60;;10165:115;9609:678;;;;;:::o;10293:60::-;10321:3;10342:5;10335:12;;10293:60;;;:::o;10359:142::-;10409:9;10442:53;10460:34;10469:24;10487:5;10469:24;:::i;:::-;10460:34;:::i;:::-;10442:53;:::i;:::-;10429:66;;10359:142;;;:::o;10507:126::-;10557:9;10590:37;10621:5;10590:37;:::i;:::-;10577:50;;10507:126;;;:::o;10639:152::-;10715:9;10748:37;10779:5;10748:37;:::i;:::-;10735:50;;10639:152;;;:::o;10797:183::-;10910:63;10967:5;10910:63;:::i;:::-;10905:3;10898:76;10797:183;;:::o;10986:274::-;11105:4;11143:2;11132:9;11128:18;11120:26;;11156:97;11250:1;11239:9;11235:17;11226:6;11156:97;:::i;:::-;10986:274;;;;:::o;11266:474::-;11334:6;11342;11391:2;11379:9;11370:7;11366:23;11362:32;11359:119;;;11397:79;;:::i;:::-;11359:119;11517:1;11542:53;11587:7;11578:6;11567:9;11563:22;11542:53;:::i;:::-;11532:63;;11488:117;11644:2;11670:53;11715:7;11706:6;11695:9;11691:22;11670:53;:::i;:::-;11660:63;;11615:118;11266:474;;;;;:::o;11746:180::-;11794:77;11791:1;11784:88;11891:4;11888:1;11881:15;11915:4;11912:1;11905:15;11932:320;11976:6;12013:1;12007:4;12003:12;11993:22;;12060:1;12054:4;12050:12;12081:18;12071:81;;12137:4;12129:6;12125:17;12115:27;;12071:81;12199:2;12191:6;12188:14;12168:18;12165:38;12162:84;;12218:18;;:::i;:::-;12162:84;11983:269;11932:320;;;:::o;12258:163::-;12398:15;12394:1;12386:6;12382:14;12375:39;12258:163;:::o;12427:366::-;12569:3;12590:67;12654:2;12649:3;12590:67;:::i;:::-;12583:74;;12666:93;12755:3;12666:93;:::i;:::-;12784:2;12779:3;12775:12;12768:19;;12427:366;;;:::o;12799:419::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13052:9;13046:4;13042:20;13038:1;13027:9;13023:17;13016:47;13080:131;13206:4;13080:131;:::i;:::-;13072:139;;12799:419;;;:::o;13224:179::-;13364:31;13360:1;13352:6;13348:14;13341:55;13224:179;:::o;13409:366::-;13551:3;13572:67;13636:2;13631:3;13572:67;:::i;:::-;13565:74;;13648:93;13737:3;13648:93;:::i;:::-;13766:2;13761:3;13757:12;13750:19;;13409:366;;;:::o;13781:419::-;13947:4;13985:2;13974:9;13970:18;13962:26;;14034:9;14028:4;14024:20;14020:1;14009:9;14005:17;13998:47;14062:131;14188:4;14062:131;:::i;:::-;14054:139;;13781:419;;;:::o;14206:180::-;14254:77;14251:1;14244:88;14351:4;14348:1;14341:15;14375:4;14372:1;14365:15;14392:410;14432:7;14455:20;14473:1;14455:20;:::i;:::-;14450:25;;14489:20;14507:1;14489:20;:::i;:::-;14484:25;;14544:1;14541;14537:9;14566:30;14584:11;14566:30;:::i;:::-;14555:41;;14745:1;14736:7;14732:15;14729:1;14726:22;14706:1;14699:9;14679:83;14656:139;;14775:18;;:::i;:::-;14656:139;14440:362;14392:410;;;;:::o;14808:180::-;14856:77;14853:1;14846:88;14953:4;14950:1;14943:15;14977:4;14974:1;14967:15;14994:185;15034:1;15051:20;15069:1;15051:20;:::i;:::-;15046:25;;15085:20;15103:1;15085:20;:::i;:::-;15080:25;;15124:1;15114:35;;15129:18;;:::i;:::-;15114:35;15171:1;15168;15164:9;15159:14;;14994:185;;;;:::o;15185:240::-;15325:34;15321:1;15313:6;15309:14;15302:58;15394:23;15389:2;15381:6;15377:15;15370:48;15185:240;:::o;15431:366::-;15573:3;15594:67;15658:2;15653:3;15594:67;:::i;:::-;15587:74;;15670:93;15759:3;15670:93;:::i;:::-;15788:2;15783:3;15779:12;15772:19;;15431:366;;;:::o;15803:419::-;15969:4;16007:2;15996:9;15992:18;15984:26;;16056:9;16050:4;16046:20;16042:1;16031:9;16027:17;16020:47;16084:131;16210:4;16084:131;:::i;:::-;16076:139;;15803:419;;;:::o;16228:239::-;16368:34;16364:1;16356:6;16352:14;16345:58;16437:22;16432:2;16424:6;16420:15;16413:47;16228:239;:::o;16473:366::-;16615:3;16636:67;16700:2;16695:3;16636:67;:::i;:::-;16629:74;;16712:93;16801:3;16712:93;:::i;:::-;16830:2;16825:3;16821:12;16814:19;;16473:366;;;:::o;16845:419::-;17011:4;17049:2;17038:9;17034:18;17026:26;;17098:9;17092:4;17088:20;17084:1;17073:9;17069:17;17062:47;17126:131;17252:4;17126:131;:::i;:::-;17118:139;;16845:419;;;:::o;17270:191::-;17310:3;17329:20;17347:1;17329:20;:::i;:::-;17324:25;;17363:20;17381:1;17363:20;:::i;:::-;17358:25;;17406:1;17403;17399:9;17392:16;;17427:3;17424:1;17421:10;17418:36;;;17434:18;;:::i;:::-;17418:36;17270:191;;;;:::o;17467:244::-;17607:34;17603:1;17595:6;17591:14;17584:58;17676:27;17671:2;17663:6;17659:15;17652:52;17467:244;:::o;17717:366::-;17859:3;17880:67;17944:2;17939:3;17880:67;:::i;:::-;17873:74;;17956:93;18045:3;17956:93;:::i;:::-;18074:2;18069:3;18065:12;18058:19;;17717:366;;;:::o;18089:419::-;18255:4;18293:2;18282:9;18278:18;18270:26;;18342:9;18336:4;18332:20;18328:1;18317:9;18313:17;18306:47;18370:131;18496:4;18370:131;:::i;:::-;18362:139;;18089:419;;;:::o;18514:102::-;18556:8;18603:5;18600:1;18596:13;18575:34;;18514:102;;;:::o;18622:848::-;18683:5;18690:4;18714:6;18705:15;;18738:5;18729:14;;18752:712;18773:1;18763:8;18760:15;18752:712;;;18868:4;18863:3;18859:14;18853:4;18850:24;18847:50;;;18877:18;;:::i;:::-;18847:50;18927:1;18917:8;18913:16;18910:451;;;19342:4;19335:5;19331:16;19322:25;;18910:451;19392:4;19386;19382:15;19374:23;;19422:32;19445:8;19422:32;:::i;:::-;19410:44;;18752:712;;;18622:848;;;;;;;:::o;19476:1073::-;19530:5;19721:8;19711:40;;19742:1;19733:10;;19744:5;;19711:40;19770:4;19760:36;;19787:1;19778:10;;19789:5;;19760:36;19856:4;19904:1;19899:27;;;;19940:1;19935:191;;;;19849:277;;19899:27;19917:1;19908:10;;19919:5;;;19935:191;19980:3;19970:8;19967:17;19964:43;;;19987:18;;:::i;:::-;19964:43;20036:8;20033:1;20029:16;20020:25;;20071:3;20064:5;20061:14;20058:40;;;20078:18;;:::i;:::-;20058:40;20111:5;;;19849:277;;20235:2;20225:8;20222:16;20216:3;20210:4;20207:13;20203:36;20185:2;20175:8;20172:16;20167:2;20161:4;20158:12;20154:35;20138:111;20135:246;;;20291:8;20285:4;20281:19;20272:28;;20326:3;20319:5;20316:14;20313:40;;;20333:18;;:::i;:::-;20313:40;20366:5;;20135:246;20406:42;20444:3;20434:8;20428:4;20425:1;20406:42;:::i;:::-;20391:57;;;;20480:4;20475:3;20471:14;20464:5;20461:25;20458:51;;;20489:18;;:::i;:::-;20458:51;20538:4;20531:5;20527:16;20518:25;;19476:1073;;;;;;:::o;20555:281::-;20613:5;20637:23;20655:4;20637:23;:::i;:::-;20629:31;;20681:25;20697:8;20681:25;:::i;:::-;20669:37;;20725:104;20762:66;20752:8;20746:4;20725:104;:::i;:::-;20716:113;;20555:281;;;;:::o;20842:234::-;20982:34;20978:1;20970:6;20966:14;20959:58;21051:17;21046:2;21038:6;21034:15;21027:42;20842:234;:::o;21082:366::-;21224:3;21245:67;21309:2;21304:3;21245:67;:::i;:::-;21238:74;;21321:93;21410:3;21321:93;:::i;:::-;21439:2;21434:3;21430:12;21423:19;;21082:366;;;:::o;21454:419::-;21620:4;21658:2;21647:9;21643:18;21635:26;;21707:9;21701:4;21697:20;21693:1;21682:9;21678:17;21671:47;21735:131;21861:4;21735:131;:::i;:::-;21727:139;;21454:419;;;:::o;21879:237::-;22019:34;22015:1;22007:6;22003:14;21996:58;22088:20;22083:2;22075:6;22071:15;22064:45;21879:237;:::o;22122:366::-;22264:3;22285:67;22349:2;22344:3;22285:67;:::i;:::-;22278:74;;22361:93;22450:3;22361:93;:::i;:::-;22479:2;22474:3;22470:12;22463:19;;22122:366;;;:::o;22494:419::-;22660:4;22698:2;22687:9;22683:18;22675:26;;22747:9;22741:4;22737:20;22733:1;22722:9;22718:17;22711:47;22775:131;22901:4;22775:131;:::i;:::-;22767:139;;22494:419;;;:::o;22919:181::-;23059:33;23055:1;23047:6;23043:14;23036:57;22919:181;:::o;23106:366::-;23248:3;23269:67;23333:2;23328:3;23269:67;:::i;:::-;23262:74;;23345:93;23434:3;23345:93;:::i;:::-;23463:2;23458:3;23454:12;23447:19;;23106:366;;;:::o;23478:419::-;23644:4;23682:2;23671:9;23667:18;23659:26;;23731:9;23725:4;23721:20;23717:1;23706:9;23702:17;23695:47;23759:131;23885:4;23759:131;:::i;:::-;23751:139;;23478:419;;;:::o;23903:178::-;24043:30;24039:1;24031:6;24027:14;24020:54;23903:178;:::o;24087:366::-;24229:3;24250:67;24314:2;24309:3;24250:67;:::i;:::-;24243:74;;24326:93;24415:3;24326:93;:::i;:::-;24444:2;24439:3;24435:12;24428:19;;24087:366;;;:::o;24459:419::-;24625:4;24663:2;24652:9;24648:18;24640:26;;24712:9;24706:4;24702:20;24698:1;24687:9;24683:17;24676:47;24740:131;24866:4;24740:131;:::i;:::-;24732:139;;24459:419;;;:::o;24884:178::-;25024:30;25020:1;25012:6;25008:14;25001:54;24884:178;:::o;25068:366::-;25210:3;25231:67;25295:2;25290:3;25231:67;:::i;:::-;25224:74;;25307:93;25396:3;25307:93;:::i;:::-;25425:2;25420:3;25416:12;25409:19;;25068:366;;;:::o;25440:419::-;25606:4;25644:2;25633:9;25629:18;25621:26;;25693:9;25687:4;25683:20;25679:1;25668:9;25664:17;25657:47;25721:131;25847:4;25721:131;:::i;:::-;25713:139;;25440:419;;;:::o;25865:194::-;25905:4;25925:20;25943:1;25925:20;:::i;:::-;25920:25;;25959:20;25977:1;25959:20;:::i;:::-;25954:25;;26003:1;26000;25996:9;25988:17;;26027:1;26021:4;26018:11;26015:37;;;26032:18;;:::i;:::-;26015:37;25865:194;;;;:::o;26065:180::-;26113:77;26110:1;26103:88;26210:4;26207:1;26200:15;26234:4;26231:1;26224:15;26251:233;26290:3;26313:24;26331:5;26313:24;:::i;:::-;26304:33;;26359:66;26352:5;26349:77;26346:103;;26429:18;;:::i;:::-;26346:103;26476:1;26469:5;26465:13;26458:20;;26251:233;;;:::o;26490:167::-;26630:19;26626:1;26618:6;26614:14;26607:43;26490:167;:::o;26663:366::-;26805:3;26826:67;26890:2;26885:3;26826:67;:::i;:::-;26819:74;;26902:93;26991:3;26902:93;:::i;:::-;27020:2;27015:3;27011:12;27004:19;;26663:366;;;:::o;27035:419::-;27201:4;27239:2;27228:9;27224:18;27216:26;;27288:9;27282:4;27278:20;27274:1;27263:9;27259:17;27252:47;27316:131;27442:4;27316:131;:::i;:::-;27308:139;;27035:419;;;:::o;27460:180::-;27600:32;27596:1;27588:6;27584:14;27577:56;27460:180;:::o;27646:366::-;27788:3;27809:67;27873:2;27868:3;27809:67;:::i;:::-;27802:74;;27885:93;27974:3;27885:93;:::i;:::-;28003:2;27998:3;27994:12;27987:19;;27646:366;;;:::o;28018:419::-;28184:4;28222:2;28211:9;28207:18;28199:26;;28271:9;28265:4;28261:20;28257:1;28246:9;28242:17;28235:47;28299:131;28425:4;28299:131;:::i;:::-;28291:139;;28018:419;;;:::o;28443:182::-;28583:34;28579:1;28571:6;28567:14;28560:58;28443:182;:::o;28631:366::-;28773:3;28794:67;28858:2;28853:3;28794:67;:::i;:::-;28787:74;;28870:93;28959:3;28870:93;:::i;:::-;28988:2;28983:3;28979:12;28972:19;;28631:366;;;:::o;29003:419::-;29169:4;29207:2;29196:9;29192:18;29184:26;;29256:9;29250:4;29246:20;29242:1;29231:9;29227:17;29220:47;29284:131;29410:4;29284:131;:::i;:::-;29276:139;;29003:419;;;:::o;29428:177::-;29568:29;29564:1;29556:6;29552:14;29545:53;29428:177;:::o;29611:366::-;29753:3;29774:67;29838:2;29833:3;29774:67;:::i;:::-;29767:74;;29850:93;29939:3;29850:93;:::i;:::-;29968:2;29963:3;29959:12;29952:19;;29611:366;;;:::o;29983:419::-;30149:4;30187:2;30176:9;30172:18;30164:26;;30236:9;30230:4;30226:20;30222:1;30211:9;30207:17;30200:47;30264:131;30390:4;30264:131;:::i;:::-;30256:139;;29983:419;;;:::o;30408:175::-;30548:27;30544:1;30536:6;30532:14;30525:51;30408:175;:::o;30589:366::-;30731:3;30752:67;30816:2;30811:3;30752:67;:::i;:::-;30745:74;;30828:93;30917:3;30828:93;:::i;:::-;30946:2;30941:3;30937:12;30930:19;;30589:366;;;:::o;30961:419::-;31127:4;31165:2;31154:9;31150:18;31142:26;;31214:9;31208:4;31204:20;31200:1;31189:9;31185:17;31178:47;31242:131;31368:4;31242:131;:::i;:::-;31234:139;;30961:419;;;:::o;31386:178::-;31526:30;31522:1;31514:6;31510:14;31503:54;31386:178;:::o;31570:366::-;31712:3;31733:67;31797:2;31792:3;31733:67;:::i;:::-;31726:74;;31809:93;31898:3;31809:93;:::i;:::-;31927:2;31922:3;31918:12;31911:19;;31570:366;;;:::o;31942:419::-;32108:4;32146:2;32135:9;32131:18;32123:26;;32195:9;32189:4;32185:20;32181:1;32170:9;32166:17;32159:47;32223:131;32349:4;32223:131;:::i;:::-;32215:139;;31942:419;;;:::o;32367:180::-;32507:32;32503:1;32495:6;32491:14;32484:56;32367:180;:::o;32553:366::-;32695:3;32716:67;32780:2;32775:3;32716:67;:::i;:::-;32709:74;;32792:93;32881:3;32792:93;:::i;:::-;32910:2;32905:3;32901:12;32894:19;;32553:366;;;:::o;32925:419::-;33091:4;33129:2;33118:9;33114:18;33106:26;;33178:9;33172:4;33168:20;33164:1;33153:9;33149:17;33142:47;33206:131;33332:4;33206:131;:::i;:::-;33198:139;;32925:419;;;:::o;33350:172::-;33490:24;33486:1;33478:6;33474:14;33467:48;33350:172;:::o;33528:366::-;33670:3;33691:67;33755:2;33750:3;33691:67;:::i;:::-;33684:74;;33767:93;33856:3;33767:93;:::i;:::-;33885:2;33880:3;33876:12;33869:19;;33528:366;;;:::o;33900:419::-;34066:4;34104:2;34093:9;34089:18;34081:26;;34153:9;34147:4;34143:20;34139:1;34128:9;34124:17;34117:47;34181:131;34307:4;34181:131;:::i;:::-;34173:139;;33900:419;;;:::o;34325:240::-;34465:34;34461:1;34453:6;34449:14;34442:58;34534:23;34529:2;34521:6;34517:15;34510:48;34325:240;:::o;34571:366::-;34713:3;34734:67;34798:2;34793:3;34734:67;:::i;:::-;34727:74;;34810:93;34899:3;34810:93;:::i;:::-;34928:2;34923:3;34919:12;34912:19;;34571:366;;;:::o;34943:419::-;35109:4;35147:2;35136:9;35132:18;35124:26;;35196:9;35190:4;35186:20;35182:1;35171:9;35167:17;35160:47;35224:131;35350:4;35224:131;:::i;:::-;35216:139;;34943:419;;;:::o;35368:169::-;35508:21;35504:1;35496:6;35492:14;35485:45;35368:169;:::o;35543:366::-;35685:3;35706:67;35770:2;35765:3;35706:67;:::i;:::-;35699:74;;35782:93;35871:3;35782:93;:::i;:::-;35900:2;35895:3;35891:12;35884:19;;35543:366;;;:::o;35915:419::-;36081:4;36119:2;36108:9;36104:18;36096:26;;36168:9;36162:4;36158:20;36154:1;36143:9;36139:17;36132:47;36196:131;36322:4;36196:131;:::i;:::-;36188:139;;35915:419;;;:::o;36340:241::-;36480:34;36476:1;36468:6;36464:14;36457:58;36549:24;36544:2;36536:6;36532:15;36525:49;36340:241;:::o;36587:366::-;36729:3;36750:67;36814:2;36809:3;36750:67;:::i;:::-;36743:74;;36826:93;36915:3;36826:93;:::i;:::-;36944:2;36939:3;36935:12;36928:19;;36587:366;;;:::o;36959:419::-;37125:4;37163:2;37152:9;37148:18;37140:26;;37212:9;37206:4;37202:20;37198:1;37187:9;37183:17;37176:47;37240:131;37366:4;37240:131;:::i;:::-;37232:139;;36959:419;;;:::o;37384:179::-;37524:31;37520:1;37512:6;37508:14;37501:55;37384:179;:::o;37569:366::-;37711:3;37732:67;37796:2;37791:3;37732:67;:::i;:::-;37725:74;;37808:93;37897:3;37808:93;:::i;:::-;37926:2;37921:3;37917:12;37910:19;;37569:366;;;:::o;37941:419::-;38107:4;38145:2;38134:9;38130:18;38122:26;;38194:9;38188:4;38184:20;38180:1;38169:9;38165:17;38158:47;38222:131;38348:4;38222:131;:::i;:::-;38214:139;;37941:419;;;:::o;38366:177::-;38506:29;38502:1;38494:6;38490:14;38483:53;38366:177;:::o;38549:366::-;38691:3;38712:67;38776:2;38771:3;38712:67;:::i;:::-;38705:74;;38788:93;38877:3;38788:93;:::i;:::-;38906:2;38901:3;38897:12;38890:19;;38549:366;;;:::o;38921:419::-;39087:4;39125:2;39114:9;39110:18;39102:26;;39174:9;39168:4;39164:20;39160:1;39149:9;39145:17;39138:47;39202:131;39328:4;39202:131;:::i;:::-;39194:139;;38921:419;;;:::o;39346:182::-;39486:34;39482:1;39474:6;39470:14;39463:58;39346:182;:::o;39534:366::-;39676:3;39697:67;39761:2;39756:3;39697:67;:::i;:::-;39690:74;;39773:93;39862:3;39773:93;:::i;:::-;39891:2;39886:3;39882:12;39875:19;;39534:366;;;:::o;39906:419::-;40072:4;40110:2;40099:9;40095:18;40087:26;;40159:9;40153:4;40149:20;40145:1;40134:9;40130:17;40123:47;40187:131;40313:4;40187:131;:::i;:::-;40179:139;;39906:419;;;:::o;40331:147::-;40432:11;40469:3;40454:18;;40331:147;;;;:::o;40484:114::-;;:::o;40604:398::-;40763:3;40784:83;40865:1;40860:3;40784:83;:::i;:::-;40777:90;;40876:93;40965:3;40876:93;:::i;:::-;40994:1;40989:3;40985:11;40978:18;;40604:398;;;:::o;41008:379::-;41192:3;41214:147;41357:3;41214:147;:::i;:::-;41207:154;;41378:3;41371:10;;41008:379;;;:::o;41393:143::-;41450:5;41481:6;41475:13;41466:22;;41497:33;41524:5;41497:33;:::i;:::-;41393:143;;;;:::o;41542:351::-;41612:6;41661:2;41649:9;41640:7;41636:23;41632:32;41629:119;;;41667:79;;:::i;:::-;41629:119;41787:1;41812:64;41868:7;41859:6;41848:9;41844:22;41812:64;:::i;:::-;41802:74;;41758:128;41542:351;;;;:::o;41899:85::-;41944:7;41973:5;41962:16;;41899:85;;;:::o;41990:158::-;42048:9;42081:61;42099:42;42108:32;42134:5;42108:32;:::i;:::-;42099:42;:::i;:::-;42081:61;:::i;:::-;42068:74;;41990:158;;;:::o;42154:147::-;42249:45;42288:5;42249:45;:::i;:::-;42244:3;42237:58;42154:147;;:::o;42307:114::-;42374:6;42408:5;42402:12;42392:22;;42307:114;;;:::o;42427:184::-;42526:11;42560:6;42555:3;42548:19;42600:4;42595:3;42591:14;42576:29;;42427:184;;;;:::o;42617:132::-;42684:4;42707:3;42699:11;;42737:4;42732:3;42728:14;42720:22;;42617:132;;;:::o;42755:108::-;42832:24;42850:5;42832:24;:::i;:::-;42827:3;42820:37;42755:108;;:::o;42869:179::-;42938:10;42959:46;43001:3;42993:6;42959:46;:::i;:::-;43037:4;43032:3;43028:14;43014:28;;42869:179;;;;:::o;43054:113::-;43124:4;43156;43151:3;43147:14;43139:22;;43054:113;;;:::o;43203:732::-;43322:3;43351:54;43399:5;43351:54;:::i;:::-;43421:86;43500:6;43495:3;43421:86;:::i;:::-;43414:93;;43531:56;43581:5;43531:56;:::i;:::-;43610:7;43641:1;43626:284;43651:6;43648:1;43645:13;43626:284;;;43727:6;43721:13;43754:63;43813:3;43798:13;43754:63;:::i;:::-;43747:70;;43840:60;43893:6;43840:60;:::i;:::-;43830:70;;43686:224;43673:1;43670;43666:9;43661:14;;43626:284;;;43630:14;43926:3;43919:10;;43327:608;;;43203:732;;;;:::o;43941:831::-;44204:4;44242:3;44231:9;44227:19;44219:27;;44256:71;44324:1;44313:9;44309:17;44300:6;44256:71;:::i;:::-;44337:80;44413:2;44402:9;44398:18;44389:6;44337:80;:::i;:::-;44464:9;44458:4;44454:20;44449:2;44438:9;44434:18;44427:48;44492:108;44595:4;44586:6;44492:108;:::i;:::-;44484:116;;44610:72;44678:2;44667:9;44663:18;44654:6;44610:72;:::i;:::-;44692:73;44760:3;44749:9;44745:19;44736:6;44692:73;:::i;:::-;43941:831;;;;;;;;:::o
Swarm Source
ipfs://961998bd7fbd867649811da408423bd3c1233b746e54bdf928654c5a8447a633
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.