ERC-20
Overview
Max Total Supply
1,000,000,000 BRK
Holders
8
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
24,515,037.718995097604907902 BRKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x4C82f207...F154701FC The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BerkshireHathaway
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-19 */ /** SPDX-License-Identifier: MIT $$$$$$$\ $$$$$$$$\ $$$$$$$\ $$\ $$\ $$$$$$\ $$\ $$\ $$$$$$\ $$$$$$$\ $$$$$$$$\ $$ __$$\ $$ _____|$$ __$$\ $$ | $$ |$$ __$$\ $$ | $$ |\_$$ _|$$ __$$\ $$ _____| $$ | $$ |$$ | $$ | $$ |$$ |$$ / $$ / \__|$$ | $$ | $$ | $$ | $$ |$$ | $$$$$$$\ |$$$$$\ $$$$$$$ |$$$$$ / \$$$$$$\ $$$$$$$$ | $$ | $$$$$$$ |$$$$$\ $$ __$$\ $$ __| $$ __$$< $$ $$< \____$$\ $$ __$$ | $$ | $$ __$$< $$ __| $$ | $$ |$$ | $$ | $$ |$$ |\$$\ $$\ $$ |$$ | $$ | $$ | $$ | $$ |$$ | $$$$$$$ |$$$$$$$$\ $$ | $$ |$$ | \$$\ \$$$$$$ |$$ | $$ |$$$$$$\ $$ | $$ |$$$$$$$$\ \_______/ \________|\__| \__|\__| \__| \______/ \__| \__|\______|\__| \__|\________| Berkshire Hathaway (BRK) -> https://brk.fund/ */ pragma solidity ^0.8.17; /** * OpenZeppelin Contracts v4.4.1 (utils/Context.sol) */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) */ interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); 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); } /** * OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } /** * OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; 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 transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _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: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /** * OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract BerkshireHathaway is ERC20, Ownable { uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; IDexRouter public dexRouter; address public lpPair; bool private swapping; uint256 public swapTokensAtAmount; address taxAddress; uint256 public tradingActiveBlock = 0; uint256 public blockForPenaltyEnd; mapping(address => bool) public boughtEarly; uint256 public botsCaught; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; bool public swapToEth = true; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; uint256 public buyTotalFees; uint256 public buyTaxFee; uint256 public sellTotalFees; uint256 public sellTaxFee; uint256 public tokensForTax; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event EnabledTrading(); event RemovedLimits(); event ExcludeFromFees(address indexed account, bool isExcluded); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxSellAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event MaxTransactionExclusion(address _address, bool excluded); event OwnerForcedSwapBack(uint256 timestamp); event CaughtEarlyBuyer(address sniper); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("Berkshire Hathaway", "BRK") { address contractOwner = msg.sender; IDexRouter _dexRouter = IDexRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexRouter = _dexRouter; lpPair = IDexFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); _excludeFromMaxTransaction(address(lpPair), true); _setAutomatedMarketMakerPair(address(lpPair), true); uint256 totalSupply = 1_000_000_000 * 1e18; maxBuyAmount = (totalSupply * 10) / 1000; maxSellAmount = (totalSupply * 10) / 1000; maxWalletAmount = (totalSupply * 10) / 1000; swapTokensAtAmount = (totalSupply * 1) / 1000; // Initial buy and sell fees to punish bots buyTaxFee = 30; buyTotalFees = buyTaxFee; sellTaxFee = 70; sellTotalFees = sellTaxFee; taxAddress = msg.sender; _excludeFromMaxTransaction(contractOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); _excludeFromMaxTransaction(taxAddress, true); excludeFromFees(contractOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(taxAddress, true); _mint(contractOwner, totalSupply); transferOwnership(contractOwner); } receive() external payable {} function enableTrading(uint256 deadBlocks) external onlyOwner { require(!tradingActive, "Cannot reenable trading"); tradingActive = true; swapEnabled = true; tradingActiveBlock = block.number; blockForPenaltyEnd = tradingActiveBlock + deadBlocks; emit EnabledTrading(); } function removeLimits() external onlyOwner { limitsInEffect = false; transferDelayEnabled = false; emit RemovedLimits(); } function manageBoughtEarly(address wallet, bool flag) external onlyOwner { boughtEarly[wallet] = flag; } function massManageBoughtEarly( address[] calldata wallets, bool flag ) external onlyOwner { for (uint256 i = 0; i < wallets.length; i++) { boughtEarly[wallets[i]] = flag; } } function disableTransferDelay() external onlyOwner { transferDelayEnabled = false; } function updateMaxBuyAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max buy amount lower than 0.2%" ); maxBuyAmount = newNum * (10 ** 18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateMaxSellAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 2) / 1000) / 1e18, "Cannot set max sell amount lower than 0.2%" ); maxSellAmount = newNum * (10 ** 18); emit UpdatedMaxSellAmount(maxSellAmount); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 3) / 1000) / 1e18, "Cannot set max wallet amount lower than 0.3%" ); maxWalletAmount = newNum * (10 ** 18); emit UpdatedMaxWalletAmount(maxWalletAmount); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 1) / 1000, "Swap amount cannot be higher than 0.1% total supply." ); swapTokensAtAmount = newAmount; } function _excludeFromMaxTransaction( address updAds, bool isExcluded ) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; emit MaxTransactionExclusion(updAds, isExcluded); } function excludeFromMaxTransaction( address updAds, bool isEx ) external onlyOwner { if (!isEx) { require( updAds != lpPair, "Cannot remove Uniswap pair from max txn" ); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair( address pair, bool value ) external onlyOwner { require( pair != lpPair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function setSwapToEth(bool _swapToEth) public onlyOwner { swapToEth = _swapToEth; } function updateBuyFees(uint256 _taxFee) external onlyOwner { buyTaxFee = _taxFee; buyTotalFees = buyTaxFee; require(buyTotalFees <= 10, "Must keep fees at 10% or less."); } function updateSellFees(uint256 _taxFee) external onlyOwner { sellTaxFee = _taxFee; sellTotalFees = sellTaxFee; require(sellTotalFees <= 10, "Must keep fees at 10% or less."); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if (blockForPenaltyEnd > 0) { require( !boughtEarly[from] || to == owner() || to == address(0xdead), "Bots cannot transfer tokens in or out except to owner or dead address." ); } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { if (transferDelayEnabled) { if (to != address(dexRouter) && to != address(lpPair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer:: Transfer Delay enabled. Try again later." ); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed max wallet." ); } else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxSellAmount, "Sell transfer amount exceeds the max sell." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed max wallet." ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if ( earlyBuyPenaltyInEffect() && automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to] && buyTotalFees > 0 ) { if (!boughtEarly[to]) { boughtEarly[to] = true; botsCaught += 1; emit CaughtEarlyBuyer(to); } fees = (amount * 99) / 100; tokensForTax += (fees * buyTaxFee) / buyTotalFees; } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = (amount * sellTotalFees) / 100; tokensForTax += (fees * sellTaxFee) / sellTotalFees; } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = (amount * buyTotalFees) / 100; tokensForTax += (fees * buyTaxFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function earlyBuyPenaltyInEffect() public view returns (bool) { return block.number < blockForPenaltyEnd; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForTax; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } bool success; if (swapToEth) { swapTokensForEth(contractBalance); tokensForTax = 0; (success, ) = address(taxAddress).call{ value: address(this).balance }(""); } if (!swapToEth) { _transfer(address(this), taxAddress, contractBalance); tokensForTax = 0; success = true; } } // Withdraw ETH from contract address function withdrawStuckETH() external onlyOwner { bool success; (success, ) = address(msg.sender).call{value: address(this).balance}( "" ); } function updateTaxAddress(address _taxAddress) external onlyOwner { require(_taxAddress != address(0), "_taxAddress address cannot be 0"); taxAddress = payable(_taxAddress); } function forceSwapBack() external onlyOwner { require( balanceOf(address(this)) >= swapTokensAtAmount, "Can only swap when token amount is at or higher than restriction" ); swapping = true; swapBack(); swapping = false; emit OwnerForcedSwapBack(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":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"blockForPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"boughtEarly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","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":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"manageBoughtEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"massManageBoughtEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapToEth","type":"bool"}],"name":"setSwapToEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapToEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_taxFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxAddress","type":"address"}],"name":"updateTaxAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600d556001601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff0219169083151502179055506000601160026101000a81548160ff0219169083151502179055506001601160036101000a81548160ff0219169083151502179055506001601360006101000a81548160ff0219169083151502179055503480156200009d57600080fd5b506040518060400160405280601281526020017f4265726b736869726520486174686177617900000000000000000000000000008152506040518060400160405280600381526020017f42524b000000000000000000000000000000000000000000000000000000000081525081600390816200011b919062000de2565b5080600490816200012d919062000de2565b5050506200015062000144620005ce60201b60201c565b620005d660201b60201c565b60003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000221919062000f33565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000f33565b6040518363ffffffff1660e01b8152600401620002ce92919062000f76565b6020604051808303816000875af1158015620002ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000314919062000f33565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000389600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200069c60201b60201c565b620003be600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200073260201b60201c565b60006b033b2e3c9fd0803ce800000090506103e8600a82620003e1919062000fd2565b620003ed91906200104c565b6006819055506103e8600a8262000405919062000fd2565b6200041191906200104c565b6007819055506103e8600a8262000429919062000fd2565b6200043591906200104c565b6008819055506103e86001826200044d919062000fd2565b6200045991906200104c565b600b81905550601e601581905550601554601481905550604660178190555060175460168190555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d58360016200069c60201b60201c565b620004e83060016200069c60201b60201c565b620004fd61dead60016200069c60201b60201c565b62000532600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200069c60201b60201c565b62000545836001620007e560201b60201c565b62000558306001620007e560201b60201c565b6200056d61dead6001620007e560201b60201c565b620005a2600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007e560201b60201c565b620005b48382620008a060201b60201c565b620005c58362000a0d60201b60201c565b505050620012e1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405162000726929190620010a1565b60405180910390a15050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200079b82826200069c60201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620007f562000aa360201b60201c565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008949190620010ce565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000909906200114c565b60405180910390fd5b620009266000838362000b3460201b60201c565b80600260008282546200093a91906200116e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ed9190620011ba565b60405180910390a362000a096000838362000b3960201b60201c565b5050565b62000a1d62000aa360201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a86906200124d565b60405180910390fd5b62000aa081620005d660201b60201c565b50565b62000ab3620005ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000ad962000b3e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2990620012bf565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bea57607f821691505b60208210810362000c005762000bff62000ba2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c2b565b62000c76868362000c2b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000cc362000cbd62000cb78462000c8e565b62000c98565b62000c8e565b9050919050565b6000819050919050565b62000cdf8362000ca2565b62000cf762000cee8262000cca565b84845462000c38565b825550505050565b600090565b62000d0e62000cff565b62000d1b81848462000cd4565b505050565b5b8181101562000d435762000d3760008262000d04565b60018101905062000d21565b5050565b601f82111562000d925762000d5c8162000c06565b62000d678462000c1b565b8101602085101562000d77578190505b62000d8f62000d868562000c1b565b83018262000d20565b50505b505050565b600082821c905092915050565b600062000db76000198460080262000d97565b1980831691505092915050565b600062000dd2838362000da4565b9150826002028217905092915050565b62000ded8262000b68565b67ffffffffffffffff81111562000e095762000e0862000b73565b5b62000e15825462000bd1565b62000e2282828562000d47565b600060209050601f83116001811462000e5a576000841562000e45578287015190505b62000e51858262000dc4565b86555062000ec1565b601f19841662000e6a8662000c06565b60005b8281101562000e945784890151825560018201915060208501945060208101905062000e6d565b8683101562000eb4578489015162000eb0601f89168262000da4565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000efb8262000ece565b9050919050565b62000f0d8162000eee565b811462000f1957600080fd5b50565b60008151905062000f2d8162000f02565b92915050565b60006020828403121562000f4c5762000f4b62000ec9565b5b600062000f5c8482850162000f1c565b91505092915050565b62000f708162000eee565b82525050565b600060408201905062000f8d600083018562000f65565b62000f9c602083018462000f65565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000fdf8262000c8e565b915062000fec8362000c8e565b925082820262000ffc8162000c8e565b9150828204841483151762001016576200101562000fa3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010598262000c8e565b9150620010668362000c8e565b9250826200107957620010786200101d565b5b828204905092915050565b60008115159050919050565b6200109b8162001084565b82525050565b6000604082019050620010b8600083018562000f65565b620010c7602083018462001090565b9392505050565b6000602082019050620010e5600083018462001090565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001134601f83620010eb565b91506200114182620010fc565b602082019050919050565b60006020820190508181036000830152620011678162001125565b9050919050565b60006200117b8262000c8e565b9150620011888362000c8e565b9250828201905080821115620011a357620011a262000fa3565b5b92915050565b620011b48162000c8e565b82525050565b6000602082019050620011d16000830184620011a9565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062001235602683620010eb565b91506200124282620011d7565b604082019050919050565b60006020820190508181036000830152620012688162001226565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620012a7602083620010eb565b9150620012b4826200126f565b602082019050919050565b60006020820190508181036000830152620012da8162001298565b9050919050565b61503d80620012f16000396000f3fe6080604052600436106103545760003560e01c806385ecfd28116101c6578063c876d0b9116100f7578063e800dff711610095578063ee40166e1161006f578063ee40166e14610c39578063f2fde38b14610c64578063f5648a4f14610c8d578063f8a25a9414610ca45761035b565b8063e800dff714610bd0578063e884f26014610bf9578063eba4c33314610c105761035b565b8063dc3f0d0f116100d1578063dc3f0d0f14610b14578063dd62ed3e14610b3d578063e2f4560514610b7a578063e620a25c14610ba55761035b565b8063c876d0b914610a95578063d257b34f14610ac0578063d85ba06314610ae95761035b565b8063a62068ce11610164578063b62496f51161013e578063b62496f5146109db578063bbc0c74214610a18578063c024666814610a43578063c18bc19514610a6c5761035b565b8063a62068ce14610948578063a9059cbb14610973578063aa4bde28146109b05761035b565b8063941fa5cd116101a0578063941fa5cd1461088c57806395d89b41146108b75780639a7a23d6146108e2578063a457c2d71461090b5761035b565b806385ecfd28146107f957806388e765ff146108365780638da5cb5b146108615761035b565b806351f205e4116102a05780636ddd17131161023e57806371fc46881161021857806371fc468814610767578063751039fc146107905780637571336a146107a757806382aa7c68146107d05761035b565b80636ddd1713146106e857806370a0823114610713578063715018a6146107505761035b565b806366d602ae1161027a57806366d602ae1461063c5780636a486a8e146106675780636b0a894c146106925780636d7adcad146106bd5761035b565b806351f205e4146105d157806358a6d531146105e85780635adf655a146106135761035b565b806323b872dd1161030d578063313ce567116102e7578063313ce56714610513578063395093511461053e578063452ed4f11461057b5780634a62bb65146105a65761035b565b806323b872dd14610484578063281f2a0a146104c15780632be32b61146104ea5761035b565b806306fdde03146103605780630758d9241461038b578063095ea7b3146103b657806310d5de53146103f3578063130a2c3c1461043057806318160ddd146104595761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610ccf565b60405161038291906138e2565b60405180910390f35b34801561039757600080fd5b506103a0610d61565b6040516103ad9190613983565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190613a1c565b610d87565b6040516103ea9190613a77565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613a92565b610daa565b6040516104279190613a77565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190613b50565b610dca565b005b34801561046557600080fd5b5061046e610e77565b60405161047b9190613bbf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190613bda565b610e81565b6040516104b89190613a77565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190613c2d565b610eb0565b005b3480156104f657600080fd5b50610511600480360381019061050c9190613c5a565b610ed5565b005b34801561051f57600080fd5b50610528610fa9565b6040516105359190613ca3565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613a1c565b610fb2565b6040516105729190613a77565b60405180910390f35b34801561058757600080fd5b50610590610fe9565b60405161059d9190613ccd565b60405180910390f35b3480156105b257600080fd5b506105bb61100f565b6040516105c89190613a77565b60405180910390f35b3480156105dd57600080fd5b506105e6611022565b005b3480156105f457600080fd5b506105fd6110ee565b60405161060a9190613a77565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613a92565b6110fa565b005b34801561064857600080fd5b506106516111b5565b60405161065e9190613bbf565b60405180910390f35b34801561067357600080fd5b5061067c6111bb565b6040516106899190613bbf565b60405180910390f35b34801561069e57600080fd5b506106a76111c1565b6040516106b49190613bbf565b60405180910390f35b3480156106c957600080fd5b506106d26111c7565b6040516106df9190613bbf565b60405180910390f35b3480156106f457600080fd5b506106fd6111cd565b60405161070a9190613a77565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613a92565b6111e0565b6040516107479190613bbf565b60405180910390f35b34801561075c57600080fd5b50610765611228565b005b34801561077357600080fd5b5061078e60048036038101906107899190613c5a565b61123c565b005b34801561079c57600080fd5b506107a561129d565b005b3480156107b357600080fd5b506107ce60048036038101906107c99190613ce8565b611309565b005b3480156107dc57600080fd5b506107f760048036038101906107f29190613c5a565b611402565b005b34801561080557600080fd5b50610820600480360381019061081b9190613a92565b6114da565b60405161082d9190613a77565b60405180910390f35b34801561084257600080fd5b5061084b6114fa565b6040516108589190613bbf565b60405180910390f35b34801561086d57600080fd5b50610876611500565b6040516108839190613ccd565b60405180910390f35b34801561089857600080fd5b506108a161152a565b6040516108ae9190613bbf565b60405180910390f35b3480156108c357600080fd5b506108cc611530565b6040516108d991906138e2565b60405180910390f35b3480156108ee57600080fd5b5061090960048036038101906109049190613ce8565b6115c2565b005b34801561091757600080fd5b50610932600480360381019061092d9190613a1c565b6116ae565b60405161093f9190613a77565b60405180910390f35b34801561095457600080fd5b5061095d611725565b60405161096a9190613bbf565b60405180910390f35b34801561097f57600080fd5b5061099a60048036038101906109959190613a1c565b61172b565b6040516109a79190613a77565b60405180910390f35b3480156109bc57600080fd5b506109c561174e565b6040516109d29190613bbf565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd9190613a92565b611754565b604051610a0f9190613a77565b60405180910390f35b348015610a2457600080fd5b50610a2d611774565b604051610a3a9190613a77565b60405180910390f35b348015610a4f57600080fd5b50610a6a6004803603810190610a659190613ce8565b611787565b005b348015610a7857600080fd5b50610a936004803603810190610a8e9190613c5a565b611838565b005b348015610aa157600080fd5b50610aaa61190c565b604051610ab79190613a77565b60405180910390f35b348015610acc57600080fd5b50610ae76004803603810190610ae29190613c5a565b61191f565b005b348015610af557600080fd5b50610afe6119f8565b604051610b0b9190613bbf565b60405180910390f35b348015610b2057600080fd5b50610b3b6004803603810190610b369190613c5a565b6119fe565b005b348015610b4957600080fd5b50610b646004803603810190610b5f9190613d28565b611ad2565b604051610b719190613bbf565b60405180910390f35b348015610b8657600080fd5b50610b8f611b59565b604051610b9c9190613bbf565b60405180910390f35b348015610bb157600080fd5b50610bba611b5f565b604051610bc79190613a77565b60405180910390f35b348015610bdc57600080fd5b50610bf76004803603810190610bf29190613ce8565b611b72565b005b348015610c0557600080fd5b50610c0e611bd5565b005b348015610c1c57600080fd5b50610c376004803603810190610c329190613c5a565b611bfa565b005b348015610c4557600080fd5b50610c4e611c5b565b604051610c5b9190613bbf565b60405180910390f35b348015610c7057600080fd5b50610c8b6004803603810190610c869190613a92565b611c61565b005b348015610c9957600080fd5b50610ca2611ce4565b005b348015610cb057600080fd5b50610cb9611d5d565b604051610cc69190613bbf565b60405180910390f35b606060038054610cde90613d97565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0a90613d97565b8015610d575780601f10610d2c57610100808354040283529160200191610d57565b820191906000526020600020905b815481529060010190602001808311610d3a57829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610d92611d63565b9050610d9f818585611d6b565b600191505092915050565b601a6020528060005260406000206000915054906101000a900460ff1681565b610dd2611f34565b60005b83839050811015610e715781600f6000868685818110610df857610df7613dc8565b5b9050602002016020810190610e0d9190613a92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e6990613e26565b915050610dd5565b50505050565b6000600254905090565b600080610e8c611d63565b9050610e99858285611fb2565b610ea485858561203e565b60019150509392505050565b610eb8611f34565b80601160036101000a81548160ff02191690831515021790555050565b610edd611f34565b670de0b6b3a76400006103e86002610ef3610e77565b610efd9190613e6e565b610f079190613edf565b610f119190613edf565b811015610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613f82565b60405180910390fd5b670de0b6b3a764000081610f679190613e6e565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610f9e9190613bbf565b60405180910390a150565b60006012905090565b600080610fbd611d63565b9050610fde818585610fcf8589611ad2565b610fd99190613fa2565b611d6b565b600191505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900460ff1681565b61102a611f34565b600b54611036306111e0565b1015611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90614048565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555061109a613028565b6000600a60146101000a81548160ff0219169083151502179055507f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb32426040516110e49190613bbf565b60405180910390a1565b6000600e544310905090565b611102611f34565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906140b4565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60165481565b60105481565b60185481565b601160029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611230611f34565b61123a600061318a565b565b611244611f34565b80601581905550601554601481905550600a601454111561129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190614120565b60405180910390fd5b50565b6112a5611f34565b6000601160006101000a81548160ff0219169083151502179055506000601360006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b611311611f34565b806113a757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d906141b2565b60405180910390fd5b5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61140a611f34565b601160019054906101000a900460ff161561145a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114519061421e565b60405180910390fd5b6001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff02191690831515021790555043600d8190555080600d546114a59190613fa2565b600e819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a150565b600f6020528060005260406000206000915054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606004805461153f90613d97565b80601f016020809104026020016040519081016040528092919081815260200182805461156b90613d97565b80156115b85780601f1061158d576101008083540402835291602001916115b8565b820191906000526020600020905b81548152906001019060200180831161159b57829003601f168201915b5050505050905090565b6115ca611f34565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906142b0565b60405180910390fd5b6116648282613250565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806116b9611d63565b905060006116c78286611ad2565b90508381101561170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390614342565b60405180910390fd5b6117198286868403611d6b565b60019250505092915050565b600e5481565b600080611736611d63565b905061174381858561203e565b600191505092915050565b60085481565b601b6020528060005260406000206000915054906101000a900460ff1681565b601160019054906101000a900460ff1681565b61178f611f34565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161182c9190613a77565b60405180910390a25050565b611840611f34565b670de0b6b3a76400006103e86003611856610e77565b6118609190613e6e565b61186a9190613edf565b6118749190613edf565b8110156118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad906143d4565b60405180910390fd5b670de0b6b3a7640000816118ca9190613e6e565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516119019190613bbf565b60405180910390a150565b601360009054906101000a900460ff1681565b611927611f34565b620186a06001611935610e77565b61193f9190613e6e565b6119499190613edf565b81101561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290614466565b60405180910390fd5b6103e86001611998610e77565b6119a29190613e6e565b6119ac9190613edf565b8111156119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e5906144f8565b60405180910390fd5b80600b8190555050565b60145481565b611a06611f34565b670de0b6b3a76400006103e86002611a1c610e77565b611a269190613e6e565b611a309190613edf565b611a3a9190613edf565b811015611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a739061458a565b60405180910390fd5b670de0b6b3a764000081611a909190613e6e565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e600754604051611ac79190613bbf565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601160039054906101000a900460ff1681565b611b7a611f34565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bdd611f34565b6000601360006101000a81548160ff021916908315150217905550565b611c02611f34565b80601781905550601754601681905550600a6016541115611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90614120565b60405180910390fd5b50565b600d5481565b611c69611f34565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf9061461c565b60405180910390fd5b611ce18161318a565b50565b611cec611f34565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611d129061466d565b60006040518083038185875af1925050503d8060008114611d4f576040519150601f19603f3d011682016040523d82523d6000602084013e611d54565b606091505b50508091505050565b60175481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd1906146f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090614786565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f279190613bbf565b60405180910390a3505050565b611f3c611d63565b73ffffffffffffffffffffffffffffffffffffffff16611f5a611500565b73ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa7906147f2565b60405180910390fd5b565b6000611fbe8484611ad2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612038578181101561202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061485e565b60405180910390fd5b6120378484848403611d6b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a4906148f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390614982565b60405180910390fd5b6000811161215f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612156906149ee565b60405180910390fd5b601160019054906101000a900460ff1661225457601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122145750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90614a5a565b60405180910390fd5b5b6000600e54111561236257600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806122ea57506122bb611500565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80612322575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235890614b12565b60405180910390fd5b5b601160009054906101000a900460ff1615612a2e5761237f611500565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123ed57506123bd611500565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124265750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612460575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124b65750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561250c5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2d57601360009054906101000a900460ff161561274457600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125d25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612743576002436125e49190614b32565b601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561267b57506002436126399190614b32565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b6126ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b190614bd8565b60405180910390fd5b43601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127e75750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561288e57600654811115612831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282890614c6a565b60405180910390fd5b60085461283d836111e0565b826128489190613fa2565b1115612889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288090614cd6565b60405180910390fd5b612a2c565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129315750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129805760075481111561297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297290614d68565b60405180910390fd5b612a2b565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a2a576008546129dd836111e0565b826129e89190613fa2565b1115612a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2090614cd6565b60405180910390fd5b5b5b5b5b5b6000612a39306111e0565b90506000600b548210159050808015612a5e5750601160029054906101000a900460ff165b8015612a775750600a60149054906101000a900460ff16155b8015612acd5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b235750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b795750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bbd576001600a60146101000a81548160ff021916908315150217905550612ba1613028565b6000600a60146101000a81548160ff0219169083151502179055505b600060019050601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c645750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6e57600090505b6000811561301457612c7e6110ee565b8015612cd35750601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612d295750601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d3757506000601454115b15612e8a57600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e37576001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000828254612df89190613fa2565b925050819055507f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a86604051612e2e9190613ccd565b60405180910390a15b6064606386612e469190613e6e565b612e509190613edf565b905060145460155482612e639190613e6e565b612e6d9190613edf565b60186000828254612e7e9190613fa2565b92505081905550612ff0565b601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ee557506000601654115b15612f3e57606460165486612efa9190613e6e565b612f049190613edf565b905060165460175482612f179190613e6e565b612f219190613edf565b60186000828254612f329190613fa2565b92505081905550612fef565b601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f9957506000601454115b15612fee57606460145486612fae9190613e6e565b612fb89190613edf565b905060145460155482612fcb9190613e6e565b612fd59190613edf565b60186000828254612fe69190613fa2565b925050819055505b5b5b6000811115613005576130048730836132fb565b5b80856130119190614b32565b94505b61301f8787876132fb565b50505050505050565b6000613033306111e0565b905060006018549050600082148061304b5750600081145b15613057575050613188565b6014600b546130669190613e6e565b82111561307f576014600b5461307c9190613e6e565b91505b6000601160039054906101000a900460ff16156131365761309f83613571565b6000601881905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516130ed9061466d565b60006040518083038185875af1925050503d806000811461312a576040519150601f19603f3d011682016040523d82523d6000602084013e61312f565b606091505b5050809150505b601160039054906101000a900460ff166131845761317730600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561203e565b6000601881905550600190505b5050505b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506132b182826137b4565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361336a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613361906148f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d090614982565b60405180910390fd5b6133e4838383613848565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561346a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346190614dfa565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135589190613bbf565b60405180910390a361356b84848461384d565b50505050565b6000600267ffffffffffffffff81111561358e5761358d614e1a565b5b6040519080825280602002602001820160405280156135bc5781602001602082028036833780820191505090505b50905030816000815181106135d4576135d3613dc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561367b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369f9190614e5e565b816001815181106136b3576136b2613dc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061371a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d6b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161377e959493929190614f84565b600060405180830381600087803b15801561379857600080fd5b505af11580156137ac573d6000803e3d6000fd5b505050505050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405161383c929190614fde565b60405180910390a15050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561388c578082015181840152602081019050613871565b60008484015250505050565b6000601f19601f8301169050919050565b60006138b482613852565b6138be818561385d565b93506138ce81856020860161386e565b6138d781613898565b840191505092915050565b600060208201905081810360008301526138fc81846138a9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061394961394461393f84613904565b613924565b613904565b9050919050565b600061395b8261392e565b9050919050565b600061396d82613950565b9050919050565b61397d81613962565b82525050565b60006020820190506139986000830184613974565b92915050565b600080fd5b600080fd5b60006139b382613904565b9050919050565b6139c3816139a8565b81146139ce57600080fd5b50565b6000813590506139e0816139ba565b92915050565b6000819050919050565b6139f9816139e6565b8114613a0457600080fd5b50565b600081359050613a16816139f0565b92915050565b60008060408385031215613a3357613a3261399e565b5b6000613a41858286016139d1565b9250506020613a5285828601613a07565b9150509250929050565b60008115159050919050565b613a7181613a5c565b82525050565b6000602082019050613a8c6000830184613a68565b92915050565b600060208284031215613aa857613aa761399e565b5b6000613ab6848285016139d1565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613ae457613ae3613abf565b5b8235905067ffffffffffffffff811115613b0157613b00613ac4565b5b602083019150836020820283011115613b1d57613b1c613ac9565b5b9250929050565b613b2d81613a5c565b8114613b3857600080fd5b50565b600081359050613b4a81613b24565b92915050565b600080600060408486031215613b6957613b6861399e565b5b600084013567ffffffffffffffff811115613b8757613b866139a3565b5b613b9386828701613ace565b93509350506020613ba686828701613b3b565b9150509250925092565b613bb9816139e6565b82525050565b6000602082019050613bd46000830184613bb0565b92915050565b600080600060608486031215613bf357613bf261399e565b5b6000613c01868287016139d1565b9350506020613c12868287016139d1565b9250506040613c2386828701613a07565b9150509250925092565b600060208284031215613c4357613c4261399e565b5b6000613c5184828501613b3b565b91505092915050565b600060208284031215613c7057613c6f61399e565b5b6000613c7e84828501613a07565b91505092915050565b600060ff82169050919050565b613c9d81613c87565b82525050565b6000602082019050613cb86000830184613c94565b92915050565b613cc7816139a8565b82525050565b6000602082019050613ce26000830184613cbe565b92915050565b60008060408385031215613cff57613cfe61399e565b5b6000613d0d858286016139d1565b9250506020613d1e85828601613b3b565b9150509250929050565b60008060408385031215613d3f57613d3e61399e565b5b6000613d4d858286016139d1565b9250506020613d5e858286016139d1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613daf57607f821691505b602082108103613dc257613dc1613d68565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e31826139e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e6357613e62613df7565b5b600182019050919050565b6000613e79826139e6565b9150613e84836139e6565b9250828202613e92816139e6565b91508282048414831517613ea957613ea8613df7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eea826139e6565b9150613ef5836139e6565b925082613f0557613f04613eb0565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b6000613f6c60298361385d565b9150613f7782613f10565b604082019050919050565b60006020820190508181036000830152613f9b81613f5f565b9050919050565b6000613fad826139e6565b9150613fb8836139e6565b9250828201905080821115613fd057613fcf613df7565b5b92915050565b7f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060008201527f6973206174206f7220686967686572207468616e207265737472696374696f6e602082015250565b600061403260408361385d565b915061403d82613fd6565b604082019050919050565b6000602082019050818103600083015261406181614025565b9050919050565b7f5f7461784164647265737320616464726573732063616e6e6f74206265203000600082015250565b600061409e601f8361385d565b91506140a982614068565b602082019050919050565b600060208201905081810360008301526140cd81614091565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c6573732e0000600082015250565b600061410a601e8361385d565b9150614115826140d4565b602082019050919050565b60006020820190508181036000830152614139816140fd565b9050919050565b7f43616e6e6f742072656d6f766520556e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b600061419c60278361385d565b91506141a782614140565b604082019050919050565b600060208201905081810360008301526141cb8161418f565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b600061420860178361385d565b9150614213826141d2565b602082019050919050565b60006020820190508181036000830152614237816141fb565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061429a60398361385d565b91506142a58261423e565b604082019050919050565b600060208201905081810360008301526142c98161428d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061432c60258361385d565b9150614337826142d0565b604082019050919050565b6000602082019050818103600083015261435b8161431f565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b60006143be602c8361385d565b91506143c982614362565b604082019050919050565b600060208201905081810360008301526143ed816143b1565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061445060358361385d565b915061445b826143f4565b604082019050919050565b6000602082019050818103600083015261447f81614443565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b60006144e260348361385d565b91506144ed82614486565b604082019050919050565b60006020820190508181036000830152614511816144d5565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e322500000000000000000000000000000000000000000000602082015250565b6000614574602a8361385d565b915061457f82614518565b604082019050919050565b600060208201905081810360008301526145a381614567565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061460660268361385d565b9150614611826145aa565b604082019050919050565b60006020820190508181036000830152614635816145f9565b9050919050565b600081905092915050565b50565b600061465760008361463c565b915061466282614647565b600082019050919050565b60006146788261464a565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146de60248361385d565b91506146e982614682565b604082019050919050565b6000602082019050818103600083015261470d816146d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061477060228361385d565b915061477b82614714565b604082019050919050565b6000602082019050818103600083015261479f81614763565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006147dc60208361385d565b91506147e7826147a6565b602082019050919050565b6000602082019050818103600083015261480b816147cf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614848601d8361385d565b915061485382614812565b602082019050919050565b600060208201905081810360008301526148778161483b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148da60258361385d565b91506148e58261487e565b604082019050919050565b60006020820190508181036000830152614909816148cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061496c60238361385d565b915061497782614910565b604082019050919050565b6000602082019050818103600083015261499b8161495f565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006149d8601d8361385d565b91506149e3826149a2565b602082019050919050565b60006020820190508181036000830152614a07816149cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614a4460168361385d565b9150614a4f82614a0e565b602082019050919050565b60006020820190508181036000830152614a7381614a37565b9050919050565b7f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60008201527f72206f75742065786365707420746f206f776e6572206f72206465616420616460208201527f64726573732e0000000000000000000000000000000000000000000000000000604082015250565b6000614afc60468361385d565b9150614b0782614a7a565b606082019050919050565b60006020820190508181036000830152614b2b81614aef565b9050919050565b6000614b3d826139e6565b9150614b48836139e6565b9250828203905081811115614b6057614b5f613df7565b5b92915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b6000614bc260358361385d565b9150614bcd82614b66565b604082019050919050565b60006020820190508181036000830152614bf181614bb5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614c5460288361385d565b9150614c5f82614bf8565b604082019050919050565b60006020820190508181036000830152614c8381614c47565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65742e00000000000000600082015250565b6000614cc060198361385d565b9150614ccb82614c8a565b602082019050919050565b60006020820190508181036000830152614cef81614cb3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614d52602a8361385d565b9150614d5d82614cf6565b604082019050919050565b60006020820190508181036000830152614d8181614d45565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614de460268361385d565b9150614def82614d88565b604082019050919050565b60006020820190508181036000830152614e1381614dd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614e58816139ba565b92915050565b600060208284031215614e7457614e7361399e565b5b6000614e8284828501614e49565b91505092915050565b6000819050919050565b6000614eb0614eab614ea684614e8b565b613924565b6139e6565b9050919050565b614ec081614e95565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614efb816139a8565b82525050565b6000614f0d8383614ef2565b60208301905092915050565b6000602082019050919050565b6000614f3182614ec6565b614f3b8185614ed1565b9350614f4683614ee2565b8060005b83811015614f77578151614f5e8882614f01565b9750614f6983614f19565b925050600181019050614f4a565b5085935050505092915050565b600060a082019050614f996000830188613bb0565b614fa66020830187614eb7565b8181036040830152614fb88186614f26565b9050614fc76060830185613cbe565b614fd46080830184613bb0565b9695505050505050565b6000604082019050614ff36000830185613cbe565b6150006020830184613a68565b939250505056fea2646970667358221220fc176a850ca17a1f4c66fe9eb3bc0c9bacfec4349e190026ff6acbd8481a3c8964736f6c63430008110033
Deployed Bytecode
0x6080604052600436106103545760003560e01c806385ecfd28116101c6578063c876d0b9116100f7578063e800dff711610095578063ee40166e1161006f578063ee40166e14610c39578063f2fde38b14610c64578063f5648a4f14610c8d578063f8a25a9414610ca45761035b565b8063e800dff714610bd0578063e884f26014610bf9578063eba4c33314610c105761035b565b8063dc3f0d0f116100d1578063dc3f0d0f14610b14578063dd62ed3e14610b3d578063e2f4560514610b7a578063e620a25c14610ba55761035b565b8063c876d0b914610a95578063d257b34f14610ac0578063d85ba06314610ae95761035b565b8063a62068ce11610164578063b62496f51161013e578063b62496f5146109db578063bbc0c74214610a18578063c024666814610a43578063c18bc19514610a6c5761035b565b8063a62068ce14610948578063a9059cbb14610973578063aa4bde28146109b05761035b565b8063941fa5cd116101a0578063941fa5cd1461088c57806395d89b41146108b75780639a7a23d6146108e2578063a457c2d71461090b5761035b565b806385ecfd28146107f957806388e765ff146108365780638da5cb5b146108615761035b565b806351f205e4116102a05780636ddd17131161023e57806371fc46881161021857806371fc468814610767578063751039fc146107905780637571336a146107a757806382aa7c68146107d05761035b565b80636ddd1713146106e857806370a0823114610713578063715018a6146107505761035b565b806366d602ae1161027a57806366d602ae1461063c5780636a486a8e146106675780636b0a894c146106925780636d7adcad146106bd5761035b565b806351f205e4146105d157806358a6d531146105e85780635adf655a146106135761035b565b806323b872dd1161030d578063313ce567116102e7578063313ce56714610513578063395093511461053e578063452ed4f11461057b5780634a62bb65146105a65761035b565b806323b872dd14610484578063281f2a0a146104c15780632be32b61146104ea5761035b565b806306fdde03146103605780630758d9241461038b578063095ea7b3146103b657806310d5de53146103f3578063130a2c3c1461043057806318160ddd146104595761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610ccf565b60405161038291906138e2565b60405180910390f35b34801561039757600080fd5b506103a0610d61565b6040516103ad9190613983565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190613a1c565b610d87565b6040516103ea9190613a77565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613a92565b610daa565b6040516104279190613a77565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190613b50565b610dca565b005b34801561046557600080fd5b5061046e610e77565b60405161047b9190613bbf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190613bda565b610e81565b6040516104b89190613a77565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190613c2d565b610eb0565b005b3480156104f657600080fd5b50610511600480360381019061050c9190613c5a565b610ed5565b005b34801561051f57600080fd5b50610528610fa9565b6040516105359190613ca3565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613a1c565b610fb2565b6040516105729190613a77565b60405180910390f35b34801561058757600080fd5b50610590610fe9565b60405161059d9190613ccd565b60405180910390f35b3480156105b257600080fd5b506105bb61100f565b6040516105c89190613a77565b60405180910390f35b3480156105dd57600080fd5b506105e6611022565b005b3480156105f457600080fd5b506105fd6110ee565b60405161060a9190613a77565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613a92565b6110fa565b005b34801561064857600080fd5b506106516111b5565b60405161065e9190613bbf565b60405180910390f35b34801561067357600080fd5b5061067c6111bb565b6040516106899190613bbf565b60405180910390f35b34801561069e57600080fd5b506106a76111c1565b6040516106b49190613bbf565b60405180910390f35b3480156106c957600080fd5b506106d26111c7565b6040516106df9190613bbf565b60405180910390f35b3480156106f457600080fd5b506106fd6111cd565b60405161070a9190613a77565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613a92565b6111e0565b6040516107479190613bbf565b60405180910390f35b34801561075c57600080fd5b50610765611228565b005b34801561077357600080fd5b5061078e60048036038101906107899190613c5a565b61123c565b005b34801561079c57600080fd5b506107a561129d565b005b3480156107b357600080fd5b506107ce60048036038101906107c99190613ce8565b611309565b005b3480156107dc57600080fd5b506107f760048036038101906107f29190613c5a565b611402565b005b34801561080557600080fd5b50610820600480360381019061081b9190613a92565b6114da565b60405161082d9190613a77565b60405180910390f35b34801561084257600080fd5b5061084b6114fa565b6040516108589190613bbf565b60405180910390f35b34801561086d57600080fd5b50610876611500565b6040516108839190613ccd565b60405180910390f35b34801561089857600080fd5b506108a161152a565b6040516108ae9190613bbf565b60405180910390f35b3480156108c357600080fd5b506108cc611530565b6040516108d991906138e2565b60405180910390f35b3480156108ee57600080fd5b5061090960048036038101906109049190613ce8565b6115c2565b005b34801561091757600080fd5b50610932600480360381019061092d9190613a1c565b6116ae565b60405161093f9190613a77565b60405180910390f35b34801561095457600080fd5b5061095d611725565b60405161096a9190613bbf565b60405180910390f35b34801561097f57600080fd5b5061099a60048036038101906109959190613a1c565b61172b565b6040516109a79190613a77565b60405180910390f35b3480156109bc57600080fd5b506109c561174e565b6040516109d29190613bbf565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd9190613a92565b611754565b604051610a0f9190613a77565b60405180910390f35b348015610a2457600080fd5b50610a2d611774565b604051610a3a9190613a77565b60405180910390f35b348015610a4f57600080fd5b50610a6a6004803603810190610a659190613ce8565b611787565b005b348015610a7857600080fd5b50610a936004803603810190610a8e9190613c5a565b611838565b005b348015610aa157600080fd5b50610aaa61190c565b604051610ab79190613a77565b60405180910390f35b348015610acc57600080fd5b50610ae76004803603810190610ae29190613c5a565b61191f565b005b348015610af557600080fd5b50610afe6119f8565b604051610b0b9190613bbf565b60405180910390f35b348015610b2057600080fd5b50610b3b6004803603810190610b369190613c5a565b6119fe565b005b348015610b4957600080fd5b50610b646004803603810190610b5f9190613d28565b611ad2565b604051610b719190613bbf565b60405180910390f35b348015610b8657600080fd5b50610b8f611b59565b604051610b9c9190613bbf565b60405180910390f35b348015610bb157600080fd5b50610bba611b5f565b604051610bc79190613a77565b60405180910390f35b348015610bdc57600080fd5b50610bf76004803603810190610bf29190613ce8565b611b72565b005b348015610c0557600080fd5b50610c0e611bd5565b005b348015610c1c57600080fd5b50610c376004803603810190610c329190613c5a565b611bfa565b005b348015610c4557600080fd5b50610c4e611c5b565b604051610c5b9190613bbf565b60405180910390f35b348015610c7057600080fd5b50610c8b6004803603810190610c869190613a92565b611c61565b005b348015610c9957600080fd5b50610ca2611ce4565b005b348015610cb057600080fd5b50610cb9611d5d565b604051610cc69190613bbf565b60405180910390f35b606060038054610cde90613d97565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0a90613d97565b8015610d575780601f10610d2c57610100808354040283529160200191610d57565b820191906000526020600020905b815481529060010190602001808311610d3a57829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610d92611d63565b9050610d9f818585611d6b565b600191505092915050565b601a6020528060005260406000206000915054906101000a900460ff1681565b610dd2611f34565b60005b83839050811015610e715781600f6000868685818110610df857610df7613dc8565b5b9050602002016020810190610e0d9190613a92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e6990613e26565b915050610dd5565b50505050565b6000600254905090565b600080610e8c611d63565b9050610e99858285611fb2565b610ea485858561203e565b60019150509392505050565b610eb8611f34565b80601160036101000a81548160ff02191690831515021790555050565b610edd611f34565b670de0b6b3a76400006103e86002610ef3610e77565b610efd9190613e6e565b610f079190613edf565b610f119190613edf565b811015610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613f82565b60405180910390fd5b670de0b6b3a764000081610f679190613e6e565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610f9e9190613bbf565b60405180910390a150565b60006012905090565b600080610fbd611d63565b9050610fde818585610fcf8589611ad2565b610fd99190613fa2565b611d6b565b600191505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900460ff1681565b61102a611f34565b600b54611036306111e0565b1015611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90614048565b60405180910390fd5b6001600a60146101000a81548160ff02191690831515021790555061109a613028565b6000600a60146101000a81548160ff0219169083151502179055507f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb32426040516110e49190613bbf565b60405180910390a1565b6000600e544310905090565b611102611f34565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906140b4565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60165481565b60105481565b60185481565b601160029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611230611f34565b61123a600061318a565b565b611244611f34565b80601581905550601554601481905550600a601454111561129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190614120565b60405180910390fd5b50565b6112a5611f34565b6000601160006101000a81548160ff0219169083151502179055506000601360006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b611311611f34565b806113a757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d906141b2565b60405180910390fd5b5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61140a611f34565b601160019054906101000a900460ff161561145a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114519061421e565b60405180910390fd5b6001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff02191690831515021790555043600d8190555080600d546114a59190613fa2565b600e819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a150565b600f6020528060005260406000206000915054906101000a900460ff1681565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606004805461153f90613d97565b80601f016020809104026020016040519081016040528092919081815260200182805461156b90613d97565b80156115b85780601f1061158d576101008083540402835291602001916115b8565b820191906000526020600020905b81548152906001019060200180831161159b57829003601f168201915b5050505050905090565b6115ca611f34565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611651906142b0565b60405180910390fd5b6116648282613250565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806116b9611d63565b905060006116c78286611ad2565b90508381101561170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390614342565b60405180910390fd5b6117198286868403611d6b565b60019250505092915050565b600e5481565b600080611736611d63565b905061174381858561203e565b600191505092915050565b60085481565b601b6020528060005260406000206000915054906101000a900460ff1681565b601160019054906101000a900460ff1681565b61178f611f34565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161182c9190613a77565b60405180910390a25050565b611840611f34565b670de0b6b3a76400006103e86003611856610e77565b6118609190613e6e565b61186a9190613edf565b6118749190613edf565b8110156118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad906143d4565b60405180910390fd5b670de0b6b3a7640000816118ca9190613e6e565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516119019190613bbf565b60405180910390a150565b601360009054906101000a900460ff1681565b611927611f34565b620186a06001611935610e77565b61193f9190613e6e565b6119499190613edf565b81101561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290614466565b60405180910390fd5b6103e86001611998610e77565b6119a29190613e6e565b6119ac9190613edf565b8111156119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e5906144f8565b60405180910390fd5b80600b8190555050565b60145481565b611a06611f34565b670de0b6b3a76400006103e86002611a1c610e77565b611a269190613e6e565b611a309190613edf565b611a3a9190613edf565b811015611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a739061458a565b60405180910390fd5b670de0b6b3a764000081611a909190613e6e565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e600754604051611ac79190613bbf565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601160039054906101000a900460ff1681565b611b7a611f34565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bdd611f34565b6000601360006101000a81548160ff021916908315150217905550565b611c02611f34565b80601781905550601754601681905550600a6016541115611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90614120565b60405180910390fd5b50565b600d5481565b611c69611f34565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf9061461c565b60405180910390fd5b611ce18161318a565b50565b611cec611f34565b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611d129061466d565b60006040518083038185875af1925050503d8060008114611d4f576040519150601f19603f3d011682016040523d82523d6000602084013e611d54565b606091505b50508091505050565b60175481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd1906146f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090614786565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f279190613bbf565b60405180910390a3505050565b611f3c611d63565b73ffffffffffffffffffffffffffffffffffffffff16611f5a611500565b73ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa7906147f2565b60405180910390fd5b565b6000611fbe8484611ad2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612038578181101561202a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120219061485e565b60405180910390fd5b6120378484848403611d6b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a4906148f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390614982565b60405180910390fd5b6000811161215f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612156906149ee565b60405180910390fd5b601160019054906101000a900460ff1661225457601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122145750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90614a5a565b60405180910390fd5b5b6000600e54111561236257600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806122ea57506122bb611500565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80612322575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235890614b12565b60405180910390fd5b5b601160009054906101000a900460ff1615612a2e5761237f611500565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123ed57506123bd611500565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124265750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612460575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124b65750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561250c5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a2d57601360009054906101000a900460ff161561274457600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125d25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612743576002436125e49190614b32565b601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561267b57506002436126399190614b32565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b6126ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b190614bd8565b60405180910390fd5b43601260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127e75750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561288e57600654811115612831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282890614c6a565b60405180910390fd5b60085461283d836111e0565b826128489190613fa2565b1115612889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288090614cd6565b60405180910390fd5b612a2c565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129315750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129805760075481111561297b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297290614d68565b60405180910390fd5b612a2b565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a2a576008546129dd836111e0565b826129e89190613fa2565b1115612a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2090614cd6565b60405180910390fd5b5b5b5b5b5b6000612a39306111e0565b90506000600b548210159050808015612a5e5750601160029054906101000a900460ff165b8015612a775750600a60149054906101000a900460ff16155b8015612acd5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b235750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b795750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bbd576001600a60146101000a81548160ff021916908315150217905550612ba1613028565b6000600a60146101000a81548160ff0219169083151502179055505b600060019050601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c645750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6e57600090505b6000811561301457612c7e6110ee565b8015612cd35750601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612d295750601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d3757506000601454115b15612e8a57600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e37576001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000828254612df89190613fa2565b925050819055507f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a86604051612e2e9190613ccd565b60405180910390a15b6064606386612e469190613e6e565b612e509190613edf565b905060145460155482612e639190613e6e565b612e6d9190613edf565b60186000828254612e7e9190613fa2565b92505081905550612ff0565b601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ee557506000601654115b15612f3e57606460165486612efa9190613e6e565b612f049190613edf565b905060165460175482612f179190613e6e565b612f219190613edf565b60186000828254612f329190613fa2565b92505081905550612fef565b601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f9957506000601454115b15612fee57606460145486612fae9190613e6e565b612fb89190613edf565b905060145460155482612fcb9190613e6e565b612fd59190613edf565b60186000828254612fe69190613fa2565b925050819055505b5b5b6000811115613005576130048730836132fb565b5b80856130119190614b32565b94505b61301f8787876132fb565b50505050505050565b6000613033306111e0565b905060006018549050600082148061304b5750600081145b15613057575050613188565b6014600b546130669190613e6e565b82111561307f576014600b5461307c9190613e6e565b91505b6000601160039054906101000a900460ff16156131365761309f83613571565b6000601881905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516130ed9061466d565b60006040518083038185875af1925050503d806000811461312a576040519150601f19603f3d011682016040523d82523d6000602084013e61312f565b606091505b5050809150505b601160039054906101000a900460ff166131845761317730600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561203e565b6000601881905550600190505b5050505b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506132b182826137b4565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361336a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613361906148f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d090614982565b60405180910390fd5b6133e4838383613848565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561346a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346190614dfa565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135589190613bbf565b60405180910390a361356b84848461384d565b50505050565b6000600267ffffffffffffffff81111561358e5761358d614e1a565b5b6040519080825280602002602001820160405280156135bc5781602001602082028036833780820191505090505b50905030816000815181106135d4576135d3613dc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561367b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369f9190614e5e565b816001815181106136b3576136b2613dc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061371a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d6b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161377e959493929190614f84565b600060405180830381600087803b15801561379857600080fd5b505af11580156137ac573d6000803e3d6000fd5b505050505050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405161383c929190614fde565b60405180910390a15050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561388c578082015181840152602081019050613871565b60008484015250505050565b6000601f19601f8301169050919050565b60006138b482613852565b6138be818561385d565b93506138ce81856020860161386e565b6138d781613898565b840191505092915050565b600060208201905081810360008301526138fc81846138a9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061394961394461393f84613904565b613924565b613904565b9050919050565b600061395b8261392e565b9050919050565b600061396d82613950565b9050919050565b61397d81613962565b82525050565b60006020820190506139986000830184613974565b92915050565b600080fd5b600080fd5b60006139b382613904565b9050919050565b6139c3816139a8565b81146139ce57600080fd5b50565b6000813590506139e0816139ba565b92915050565b6000819050919050565b6139f9816139e6565b8114613a0457600080fd5b50565b600081359050613a16816139f0565b92915050565b60008060408385031215613a3357613a3261399e565b5b6000613a41858286016139d1565b9250506020613a5285828601613a07565b9150509250929050565b60008115159050919050565b613a7181613a5c565b82525050565b6000602082019050613a8c6000830184613a68565b92915050565b600060208284031215613aa857613aa761399e565b5b6000613ab6848285016139d1565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613ae457613ae3613abf565b5b8235905067ffffffffffffffff811115613b0157613b00613ac4565b5b602083019150836020820283011115613b1d57613b1c613ac9565b5b9250929050565b613b2d81613a5c565b8114613b3857600080fd5b50565b600081359050613b4a81613b24565b92915050565b600080600060408486031215613b6957613b6861399e565b5b600084013567ffffffffffffffff811115613b8757613b866139a3565b5b613b9386828701613ace565b93509350506020613ba686828701613b3b565b9150509250925092565b613bb9816139e6565b82525050565b6000602082019050613bd46000830184613bb0565b92915050565b600080600060608486031215613bf357613bf261399e565b5b6000613c01868287016139d1565b9350506020613c12868287016139d1565b9250506040613c2386828701613a07565b9150509250925092565b600060208284031215613c4357613c4261399e565b5b6000613c5184828501613b3b565b91505092915050565b600060208284031215613c7057613c6f61399e565b5b6000613c7e84828501613a07565b91505092915050565b600060ff82169050919050565b613c9d81613c87565b82525050565b6000602082019050613cb86000830184613c94565b92915050565b613cc7816139a8565b82525050565b6000602082019050613ce26000830184613cbe565b92915050565b60008060408385031215613cff57613cfe61399e565b5b6000613d0d858286016139d1565b9250506020613d1e85828601613b3b565b9150509250929050565b60008060408385031215613d3f57613d3e61399e565b5b6000613d4d858286016139d1565b9250506020613d5e858286016139d1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613daf57607f821691505b602082108103613dc257613dc1613d68565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e31826139e6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e6357613e62613df7565b5b600182019050919050565b6000613e79826139e6565b9150613e84836139e6565b9250828202613e92816139e6565b91508282048414831517613ea957613ea8613df7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eea826139e6565b9150613ef5836139e6565b925082613f0557613f04613eb0565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b6000613f6c60298361385d565b9150613f7782613f10565b604082019050919050565b60006020820190508181036000830152613f9b81613f5f565b9050919050565b6000613fad826139e6565b9150613fb8836139e6565b9250828201905080821115613fd057613fcf613df7565b5b92915050565b7f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060008201527f6973206174206f7220686967686572207468616e207265737472696374696f6e602082015250565b600061403260408361385d565b915061403d82613fd6565b604082019050919050565b6000602082019050818103600083015261406181614025565b9050919050565b7f5f7461784164647265737320616464726573732063616e6e6f74206265203000600082015250565b600061409e601f8361385d565b91506140a982614068565b602082019050919050565b600060208201905081810360008301526140cd81614091565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c6573732e0000600082015250565b600061410a601e8361385d565b9150614115826140d4565b602082019050919050565b60006020820190508181036000830152614139816140fd565b9050919050565b7f43616e6e6f742072656d6f766520556e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b600061419c60278361385d565b91506141a782614140565b604082019050919050565b600060208201905081810360008301526141cb8161418f565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b600061420860178361385d565b9150614213826141d2565b602082019050919050565b60006020820190508181036000830152614237816141fb565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061429a60398361385d565b91506142a58261423e565b604082019050919050565b600060208201905081810360008301526142c98161428d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061432c60258361385d565b9150614337826142d0565b604082019050919050565b6000602082019050818103600083015261435b8161431f565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b60006143be602c8361385d565b91506143c982614362565b604082019050919050565b600060208201905081810360008301526143ed816143b1565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061445060358361385d565b915061445b826143f4565b604082019050919050565b6000602082019050818103600083015261447f81614443565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e312520746f74616c20737570706c792e000000000000000000000000602082015250565b60006144e260348361385d565b91506144ed82614486565b604082019050919050565b60006020820190508181036000830152614511816144d5565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e322500000000000000000000000000000000000000000000602082015250565b6000614574602a8361385d565b915061457f82614518565b604082019050919050565b600060208201905081810360008301526145a381614567565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061460660268361385d565b9150614611826145aa565b604082019050919050565b60006020820190508181036000830152614635816145f9565b9050919050565b600081905092915050565b50565b600061465760008361463c565b915061466282614647565b600082019050919050565b60006146788261464a565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146de60248361385d565b91506146e982614682565b604082019050919050565b6000602082019050818103600083015261470d816146d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061477060228361385d565b915061477b82614714565b604082019050919050565b6000602082019050818103600083015261479f81614763565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006147dc60208361385d565b91506147e7826147a6565b602082019050919050565b6000602082019050818103600083015261480b816147cf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614848601d8361385d565b915061485382614812565b602082019050919050565b600060208201905081810360008301526148778161483b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148da60258361385d565b91506148e58261487e565b604082019050919050565b60006020820190508181036000830152614909816148cd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061496c60238361385d565b915061497782614910565b604082019050919050565b6000602082019050818103600083015261499b8161495f565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006149d8601d8361385d565b91506149e3826149a2565b602082019050919050565b60006020820190508181036000830152614a07816149cb565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614a4460168361385d565b9150614a4f82614a0e565b602082019050919050565b60006020820190508181036000830152614a7381614a37565b9050919050565b7f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60008201527f72206f75742065786365707420746f206f776e6572206f72206465616420616460208201527f64726573732e0000000000000000000000000000000000000000000000000000604082015250565b6000614afc60468361385d565b9150614b0782614a7a565b606082019050919050565b60006020820190508181036000830152614b2b81614aef565b9050919050565b6000614b3d826139e6565b9150614b48836139e6565b9250828203905081811115614b6057614b5f613df7565b5b92915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b6000614bc260358361385d565b9150614bcd82614b66565b604082019050919050565b60006020820190508181036000830152614bf181614bb5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614c5460288361385d565b9150614c5f82614bf8565b604082019050919050565b60006020820190508181036000830152614c8381614c47565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65742e00000000000000600082015250565b6000614cc060198361385d565b9150614ccb82614c8a565b602082019050919050565b60006020820190508181036000830152614cef81614cb3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614d52602a8361385d565b9150614d5d82614cf6565b604082019050919050565b60006020820190508181036000830152614d8181614d45565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614de460268361385d565b9150614def82614d88565b604082019050919050565b60006020820190508181036000830152614e1381614dd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614e58816139ba565b92915050565b600060208284031215614e7457614e7361399e565b5b6000614e8284828501614e49565b91505092915050565b6000819050919050565b6000614eb0614eab614ea684614e8b565b613924565b6139e6565b9050919050565b614ec081614e95565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614efb816139a8565b82525050565b6000614f0d8383614ef2565b60208301905092915050565b6000602082019050919050565b6000614f3182614ec6565b614f3b8185614ed1565b9350614f4683614ee2565b8060005b83811015614f77578151614f5e8882614f01565b9750614f6983614f19565b925050600181019050614f4a565b5085935050505092915050565b600060a082019050614f996000830188613bb0565b614fa66020830187614eb7565b8181036040830152614fb88186614f26565b9050614fc76060830185613cbe565b614fd46080830184613bb0565b9695505050505050565b6000604082019050614ff36000830185613cbe565b6150006020830184613a68565b939250505056fea2646970667358221220fc176a850ca17a1f4c66fe9eb3bc0c9bacfec4349e190026ff6acbd8481a3c8964736f6c63430008110033
Deployed Bytecode Sourcemap
10306:14633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2832:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10466:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3830:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11300:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14300:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3153:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4064:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17259:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14648:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3052:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4367:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10500:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10795:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24587:349;;;;;;;;;;;;;:::i;:::-;;22741:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24381:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10392:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10761:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11205:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10875:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3269:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8725:103;;;;;;;;;;;;;:::i;:::-;;17364:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14012:154;;;;;;;;;;;;;:::i;:::-;;16304:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13674:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10711:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10358:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8490:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11103:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2940:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16648:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4638:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10671:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3420:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10427:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11370:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10835:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17793:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15293:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11021:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15628:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11069:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14968:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3646:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10558:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10913:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14174:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14542:98;;;;;;;;;;;;;:::i;:::-;;17576:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10627:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8836:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24188:185;;;;;;;;;;;;;:::i;:::-;;11171:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2832:100;2886:13;2919:5;2912:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2832:100;:::o;10466:27::-;;;;;;;;;;;;;:::o;3830:226::-;3938:4;3955:13;3971:12;:10;:12::i;:::-;3955:28;;3994:32;4003:5;4010:7;4019:6;3994:8;:32::i;:::-;4044:4;4037:11;;;3830:226;;;;:::o;11300:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;14300:234::-;8449:13;:11;:13::i;:::-;14430:9:::1;14425:102;14449:7;;:14;;14445:1;:18;14425:102;;;14511:4;14485:11;:23;14497:7;;14505:1;14497:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14485:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14465:3;;;;;:::i;:::-;;;;14425:102;;;;14300:234:::0;;;:::o;3153:108::-;3214:7;3241:12;;3234:19;;3153:108;:::o;4064:295::-;4195:4;4212:15;4230:12;:10;:12::i;:::-;4212:30;;4253:38;4269:4;4275:7;4284:6;4253:15;:38::i;:::-;4302:27;4312:4;4318:2;4322:6;4302:9;:27::i;:::-;4347:4;4340:11;;;4064:295;;;;;:::o;17259:97::-;8449:13;:11;:13::i;:::-;17338:10:::1;17326:9;;:22;;;;;;;;;;;;;;;;;;17259:97:::0;:::o;14648:312::-;8449:13;:11;:13::i;:::-;14785:4:::1;14777;14772:1;14756:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14755:26;;;;:::i;:::-;14754:35;;;;:::i;:::-;14744:6;:45;;14722:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;14894:8;14884:6;:19;;;;:::i;:::-;14869:12;:34;;;;14919:33;14939:12;;14919:33;;;;;;:::i;:::-;;;;;;;;14648:312:::0;:::o;3052:93::-;3110:5;3135:2;3128:9;;3052:93;:::o;4367:263::-;4480:4;4497:13;4513:12;:10;:12::i;:::-;4497:28;;4536:64;4545:5;4552:7;4589:10;4561:25;4571:5;4578:7;4561:9;:25::i;:::-;:38;;;;:::i;:::-;4536:8;:64::i;:::-;4618:4;4611:11;;;4367:263;;;;:::o;10500:21::-;;;;;;;;;;;;;:::o;10795:33::-;;;;;;;;;;;;;:::o;24587:349::-;8449:13;:11;:13::i;:::-;24692:18:::1;;24664:24;24682:4;24664:9;:24::i;:::-;:46;;24642:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;24824:4;24813:8;;:15;;;;;;;;;;;;;;;;;;24839:10;:8;:10::i;:::-;24871:5;24860:8;;:16;;;;;;;;;;;;;;;;;;24892:36;24912:15;24892:36;;;;;;:::i;:::-;;;;;;;;24587:349::o:0;22741:121::-;22797:4;22836:18;;22821:12;:33;22814:40;;22741:121;:::o;24381:198::-;8449:13;:11;:13::i;:::-;24489:1:::1;24466:25;;:11;:25;;::::0;24458:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24559:11;24538:10;;:33;;;;;;;;;;;;;;;;;;24381:198:::0;:::o;10392:28::-;;;;:::o;11136:::-;;;;:::o;10761:25::-;;;;:::o;11205:27::-;;;;:::o;10875:31::-;;;;;;;;;;;;;:::o;3269:143::-;3359:7;3386:9;:18;3396:7;3386:18;;;;;;;;;;;;;;;;3379:25;;3269:143;;;:::o;8725:103::-;8449:13;:11;:13::i;:::-;8790:30:::1;8817:1;8790:18;:30::i;:::-;8725:103::o:0;17364:204::-;8449:13;:11;:13::i;:::-;17446:7:::1;17434:9;:19;;;;17479:9;;17464:12;:24;;;;17523:2;17507:12;;:18;;17499:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17364:204:::0;:::o;14012:154::-;8449:13;:11;:13::i;:::-;14083:5:::1;14066:14;;:22;;;;;;;;;;;;;;;;;;14122:5;14099:20;;:28;;;;;;;;;;;;;;;;;;14143:15;;;;;;;;;;14012:154::o:0;16304:336::-;8449:13;:11;:13::i;:::-;16426:4:::1;16421:155;;16483:6;;;;;;;;;;;16473:16;;:6;:16;;::::0;16447:117:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16421:155;16628:4;16586:31;:39;16618:6;16586:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16304:336:::0;;:::o;13674:330::-;8449:13;:11;:13::i;:::-;13756::::1;;;;;;;;;;;13755:14;13747:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13824:4;13808:13;;:20;;;;;;;;;;;;;;;;;;13853:4;13839:11;;:18;;;;;;;;;;;;;;;;;;13889:12;13868:18;:33;;;;13954:10;13933:18;;:31;;;;:::i;:::-;13912:18;:52;;;;13980:16;;;;;;;;;;13674:330:::0;:::o;10711:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;10358:27::-;;;;:::o;8490:87::-;8536:7;8563:6;;;;;;;;;;;8556:13;;8490:87;:::o;11103:24::-;;;;:::o;2940:104::-;2996:13;3029:7;3022:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:104;:::o;16648:357::-;8449:13;:11;:13::i;:::-;16796:6:::1;;;;;;;;;;;16788:14;;:4;:14;;::::0;16766:121:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16900:41;16929:4;16935:5;16900:28;:41::i;:::-;16991:5;16957:40;;16985:4;16957:40;;;;;;;;;;;;16648:357:::0;;:::o;4638:498::-;4756:4;4773:13;4789:12;:10;:12::i;:::-;4773:28;;4812:24;4839:25;4849:5;4856:7;4839:9;:25::i;:::-;4812:52;;4917:15;4897:16;:35;;4875:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5033:60;5042:5;5049:7;5077:15;5058:16;:34;5033:8;:60::i;:::-;5124:4;5117:11;;;;4638:498;;;;:::o;10671:33::-;;;;:::o;3420:218::-;3524:4;3541:13;3557:12;:10;:12::i;:::-;3541:28;;3580;3590:5;3597:2;3601:6;3580:9;:28::i;:::-;3626:4;3619:11;;;3420:218;;;;:::o;10427:30::-;;;;:::o;11370:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;10835:33::-;;;;;;;;;;;;;:::o;17793:182::-;8449:13;:11;:13::i;:::-;17909:8:::1;17878:19;:28;17898:7;17878:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17949:7;17933:34;;;17958:8;17933:34;;;;;;:::i;:::-;;;;;;;;17793:182:::0;;:::o;15293:327::-;8449:13;:11;:13::i;:::-;15433:4:::1;15425;15420:1;15404:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15403:26;;;;:::i;:::-;15402:35;;;;:::i;:::-;15392:6;:45;;15370:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;15548:8;15538:6;:19;;;;:::i;:::-;15520:15;:37;;;;15573:39;15596:15;;15573:39;;;;;;:::i;:::-;;;;;;;;15293:327:::0;:::o;11021:39::-;;;;;;;;;;;;;:::o;15628:428::-;8449:13;:11;:13::i;:::-;15768:6:::1;15763:1;15747:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15746:28;;;;:::i;:::-;15733:9;:41;;15711:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;15923:4;15918:1;15902:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15901:26;;;;:::i;:::-;15888:9;:39;;15866:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;16039:9;16018:18;:30;;;;15628:428:::0;:::o;11069:27::-;;;;:::o;14968:317::-;8449:13;:11;:13::i;:::-;15106:4:::1;15098;15093:1;15077:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15076:26;;;;:::i;:::-;15075:35;;;;:::i;:::-;15065:6;:45;;15043:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;15217:8;15207:6;:19;;;;:::i;:::-;15191:13;:35;;;;15242;15263:13;;15242:35;;;;;;:::i;:::-;;;;;;;;14968:317:::0;:::o;3646:176::-;3760:7;3787:11;:18;3799:5;3787:18;;;;;;;;;;;;;;;:27;3806:7;3787:27;;;;;;;;;;;;;;;;3780:34;;3646:176;;;;:::o;10558:33::-;;;;:::o;10913:28::-;;;;;;;;;;;;;:::o;14174:118::-;8449:13;:11;:13::i;:::-;14280:4:::1;14258:11;:19;14270:6;14258:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14174:118:::0;;:::o;14542:98::-;8449:13;:11;:13::i;:::-;14627:5:::1;14604:20;;:28;;;;;;;;;;;;;;;;;;14542:98::o:0;17576:209::-;8449:13;:11;:13::i;:::-;17660:7:::1;17647:10;:20;;;;17694:10;;17678:13;:26;;;;17740:2;17723:13;;:19;;17715:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17576:209:::0;:::o;10627:37::-;;;;:::o;8836:238::-;8449:13;:11;:13::i;:::-;8959:1:::1;8939:22;;:8;:22;;::::0;8917:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9038:28;9057:8;9038:18;:28::i;:::-;8836:238:::0;:::o;24188:185::-;8449:13;:11;:13::i;:::-;24246:12:::1;24291:10;24283:24;;24315:21;24283:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24269:96;;;;;24235:138;24188:185::o:0;11171:25::-;;;;:::o;936:98::-;989:7;1016:10;1009:17;;936:98;:::o;6910:380::-;7063:1;7046:19;;:5;:19;;;7038:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7144:1;7125:21;;:7;:21;;;7117:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7228:6;7198:11;:18;7210:5;7198:18;;;;;;;;;;;;;;;:27;7217:7;7198:27;;;;;;;;;;;;;;;:36;;;;7266:7;7250:32;;7259:5;7250:32;;;7275:6;7250:32;;;;;;:::i;:::-;;;;;;;;6910:380;;;:::o;8585:132::-;8660:12;:10;:12::i;:::-;8649:23;;:7;:5;:7::i;:::-;:23;;;8641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8585:132::o;7298:502::-;7433:24;7460:25;7470:5;7477:7;7460:9;:25::i;:::-;7433:52;;7520:17;7500:16;:37;7496:297;;7600:6;7580:16;:26;;7554:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;7715:51;7724:5;7731:7;7759:6;7740:16;:25;7715:8;:51::i;:::-;7496:297;7422:378;7298:502;;;:::o;17983:4750::-;18131:1;18115:18;;:4;:18;;;18107:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18208:1;18194:16;;:2;:16;;;18186:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18278:1;18269:6;:10;18261:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;18331:13;;;;;;;;;;;18326:183;;18387:19;:25;18407:4;18387:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18416:19;:23;18436:2;18416:23;;;;;;;;;;;;;;;;;;;;;;;;;18387:52;18361:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;18326:183;18546:1;18525:18;;:22;18521:247;;;18591:11;:17;18603:4;18591:17;;;;;;;;;;;;;;;;;;;;;;;;;18590:18;:35;;;;18618:7;:5;:7::i;:::-;18612:13;;:2;:13;;;18590:35;:60;;;;18643:6;18629:21;;:2;:21;;;18590:60;18564:192;;;;;;;;;;;;:::i;:::-;;;;;;;;;18521:247;18784:14;;;;;;;;;;;18780:2135;;;18845:7;:5;:7::i;:::-;18837:15;;:4;:15;;;;:49;;;;;18879:7;:5;:7::i;:::-;18873:13;;:2;:13;;;;18837:49;:86;;;;;18921:1;18907:16;;:2;:16;;;;18837:86;:128;;;;;18958:6;18944:21;;:2;:21;;;;18837:128;:175;;;;;18987:19;:25;19007:4;18987:25;;;;;;;;;;;;;;;;;;;;;;;;;18986:26;18837:175;:220;;;;;19034:19;:23;19054:2;19034:23;;;;;;;;;;;;;;;;;;;;;;;;;19033:24;18837:220;18815:2089;;;19096:20;;;;;;;;;;;19092:692;;;19159:9;;;;;;;;;;;19145:24;;:2;:24;;;;:49;;;;;19187:6;;;;;;;;;;;19173:21;;:2;:21;;;;19145:49;19141:624;;;19351:1;19336:12;:16;;;;:::i;:::-;19261:28;:39;19290:9;19261:39;;;;;;;;;;;;;;;;:91;:212;;;;;19472:1;19457:12;:16;;;;:::i;:::-;19389:28;:32;19418:2;19389:32;;;;;;;;;;;;;;;;:84;19261:212;19223:363;;;;;;;;;;;;:::i;:::-;;;;;;;;;19655:12;19613:28;:39;19642:9;19613:39;;;;;;;;;;;;;;;:54;;;;19729:12;19694:28;:32;19723:2;19694:32;;;;;;;;;;;;;;;:47;;;;19141:624;19092:692;19830:25;:31;19856:4;19830:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;19887:31;:35;19919:2;19887:35;;;;;;;;;;;;;;;;;;;;;;;;;19886:36;19830:92;19804:1085;;;20009:12;;19999:6;:22;;19965:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;20196:15;;20179:13;20189:2;20179:9;:13::i;:::-;20170:6;:22;;;;:::i;:::-;:41;;20136:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;19804:1085;;;20340:25;:29;20366:2;20340:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;20395:31;:37;20427:4;20395:37;;;;;;;;;;;;;;;;;;;;;;;;;20394:38;20340:92;20314:575;;;20519:13;;20509:6;:23;;20475:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;20314:575;;;20657:31;:35;20689:2;20657:35;;;;;;;;;;;;;;;;;;;;;;;;;20652:237;;20777:15;;20760:13;20770:2;20760:9;:13::i;:::-;20751:6;:22;;;;:::i;:::-;:41;;20717:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;20652:237;20314:575;19804:1085;18815:2089;18780:2135;20927:28;20958:24;20976:4;20958:9;:24::i;:::-;20927:55;;20995:12;21034:18;;21010:20;:42;;20995:57;;21083:7;:35;;;;;21107:11;;;;;;;;;;;21083:35;:61;;;;;21136:8;;;;;;;;;;;21135:9;21083:61;:110;;;;;21162:25;:31;21188:4;21162:31;;;;;;;;;;;;;;;;;;;;;;;;;21161:32;21083:110;:153;;;;;21211:19;:25;21231:4;21211:25;;;;;;;;;;;;;;;;;;;;;;;;;21210:26;21083:153;:194;;;;;21254:19;:23;21274:2;21254:23;;;;;;;;;;;;;;;;;;;;;;;;;21253:24;21083:194;21065:326;;;21315:4;21304:8;;:15;;;;;;;;;;;;;;;;;;21336:10;:8;:10::i;:::-;21374:5;21363:8;;:16;;;;;;;;;;;;;;;;;;21065:326;21403:12;21418:4;21403:19;;21437;:25;21457:4;21437:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21466:19;:23;21486:2;21466:23;;;;;;;;;;;;;;;;;;;;;;;;;21437:52;21433:100;;;21516:5;21506:15;;21433:100;21545:12;21576:7;21572:1108;;;21622:25;:23;:25::i;:::-;:77;;;;;21668:25;:31;21694:4;21668:31;;;;;;;;;;;;;;;;;;;;;;;;;21622:77;:128;;;;;21721:25;:29;21747:2;21721:29;;;;;;;;;;;;;;;;;;;;;;;;;21720:30;21622:128;:165;;;;;21786:1;21771:12;;:16;21622:165;21600:931;;;21827:11;:15;21839:2;21827:15;;;;;;;;;;;;;;;;;;;;;;;;;21822:173;;21885:4;21867:11;:15;21879:2;21867:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21926:1;21912:10;;:15;;;;;;;:::i;:::-;;;;;;;;21955:20;21972:2;21955:20;;;;;;:::i;:::-;;;;;;;;21822:173;22038:3;22032:2;22023:6;:11;;;;:::i;:::-;22022:19;;;;:::i;:::-;22015:26;;22097:12;;22084:9;;22077:4;:16;;;;:::i;:::-;22076:33;;;;:::i;:::-;22060:12;;:49;;;;;;;:::i;:::-;;;;;;;;21600:931;;;22135:25;:29;22161:2;22135:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22184:1;22168:13;;:17;22135:50;22131:400;;;22240:3;22223:13;;22214:6;:22;;;;:::i;:::-;22213:30;;;;:::i;:::-;22206:37;;22300:13;;22286:10;;22279:4;:17;;;;:::i;:::-;22278:35;;;;:::i;:::-;22262:12;;:51;;;;;;;:::i;:::-;;;;;;;;22131:400;;;22339:25;:31;22365:4;22339:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22389:1;22374:12;;:16;22339:51;22335:196;;;22444:3;22428:12;;22419:6;:21;;;;:::i;:::-;22418:29;;;;:::i;:::-;22411:36;;22503:12;;22490:9;;22483:4;:16;;;;:::i;:::-;22482:33;;;;:::i;:::-;22466:12;;:49;;;;;;;:::i;:::-;;;;;;;;22335:196;22131:400;21600:931;22558:1;22551:4;:8;22547:91;;;22580:42;22596:4;22610;22617;22580:15;:42::i;:::-;22547:91;22664:4;22654:14;;;;;:::i;:::-;;;21572:1108;22692:33;22708:4;22714:2;22718:6;22692:15;:33::i;:::-;18096:4637;;;;17983:4750;;;:::o;23335:802::-;23374:23;23400:24;23418:4;23400:9;:24::i;:::-;23374:50;;23435:25;23463:12;;23435:40;;23511:1;23492:15;:20;:46;;;;23537:1;23516:17;:22;23492:46;23488:85;;;23555:7;;;;23488:85;23628:2;23607:18;;:23;;;;:::i;:::-;23589:15;:41;23585:115;;;23686:2;23665:18;;:23;;;;:::i;:::-;23647:41;;23585:115;23712:12;23741:9;;;;;;;;;;;23737:225;;;23767:33;23784:15;23767:16;:33::i;:::-;23830:1;23815:12;:16;;;;23868:10;;;;;;;;;;;23860:24;;23910:21;23860:90;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23846:104;;;;;23737:225;23979:9;;;;;;;;;;;23974:156;;24005:53;24023:4;24030:10;;;;;;;;;;;24042:15;24005:9;:53::i;:::-;24088:1;24073:12;:16;;;;24114:4;24104:14;;23974:156;23363:774;;;23335:802;:::o;9082:191::-;9156:16;9175:6;;;;;;;;;;;9156:25;;9201:8;9192:6;;:17;;;;;;;;;;;;;;;;;;9256:8;9225:40;;9246:8;9225:40;;;;;;;;;;;;9145:128;9082:191;:::o;17013:238::-;17130:5;17096:25;:31;17122:4;17096:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17148;17175:4;17181:5;17148:26;:39::i;:::-;17237:5;17203:40;;17231:4;17203:40;;;;;;;;;;;;17013:238;;:::o;5144:712::-;5291:1;5275:18;;:4;:18;;;5267:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5368:1;5354:16;;:2;:16;;;5346:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5423:38;5444:4;5450:2;5454:6;5423:20;:38::i;:::-;5474:19;5496:9;:15;5506:4;5496:15;;;;;;;;;;;;;;;;5474:37;;5559:6;5544:11;:21;;5522:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;5699:6;5685:11;:20;5667:9;:15;5677:4;5667:15;;;;;;;;;;;;;;;:38;;;;5737:6;5720:9;:13;5730:2;5720:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;5787:2;5772:26;;5781:4;5772:26;;;5791:6;5772:26;;;;;;:::i;:::-;;;;;;;;5811:37;5831:4;5837:2;5841:6;5811:19;:37::i;:::-;5256:600;5144:712;;;:::o;22870:457::-;22936:21;22974:1;22960:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22936:40;;23005:4;22987;22992:1;22987:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23031:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23021:4;23026:1;23021:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;23060:56;23077:4;23092:9;;;;;;;;;;;23104:11;23060:8;:56::i;:::-;23129:9;;;;;;;;;;;:60;;;23204:11;23230:1;23246:4;23273;23293:15;23129:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22925:402;22870:457;:::o;16064:232::-;16219:10;16177:31;:39;16209:6;16177:39;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;16245:43;16269:6;16277:10;16245:43;;;;;;;:::i;:::-;;;;;;;;16064:232;;:::o;7808:125::-;;;;:::o;7941:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:60::-;1509:3;1530:5;1523:12;;1481:60;;;:::o;1547:142::-;1597:9;1630:53;1648:34;1657:24;1675:5;1657:24;:::i;:::-;1648:34;:::i;:::-;1630:53;:::i;:::-;1617:66;;1547:142;;;:::o;1695:126::-;1745:9;1778:37;1809:5;1778:37;:::i;:::-;1765:50;;1695:126;;;:::o;1827:144::-;1895:9;1928:37;1959:5;1928:37;:::i;:::-;1915:50;;1827:144;;;:::o;1977:167::-;2082:55;2131:5;2082:55;:::i;:::-;2077:3;2070:68;1977:167;;:::o;2150:258::-;2261:4;2299:2;2288:9;2284:18;2276:26;;2312:89;2398:1;2387:9;2383:17;2374:6;2312:89;:::i;:::-;2150:258;;;;:::o;2495:117::-;2604:1;2601;2594:12;2618:117;2727:1;2724;2717:12;2741:96;2778:7;2807:24;2825:5;2807:24;:::i;:::-;2796:35;;2741:96;;;:::o;2843:122::-;2916:24;2934:5;2916:24;:::i;:::-;2909:5;2906:35;2896:63;;2955:1;2952;2945:12;2896:63;2843:122;:::o;2971:139::-;3017:5;3055:6;3042:20;3033:29;;3071:33;3098:5;3071:33;:::i;:::-;2971:139;;;;:::o;3116:77::-;3153:7;3182:5;3171:16;;3116:77;;;:::o;3199:122::-;3272:24;3290:5;3272:24;:::i;:::-;3265:5;3262:35;3252:63;;3311:1;3308;3301:12;3252:63;3199:122;:::o;3327:139::-;3373:5;3411:6;3398:20;3389:29;;3427:33;3454:5;3427:33;:::i;:::-;3327:139;;;;:::o;3472:474::-;3540:6;3548;3597:2;3585:9;3576:7;3572:23;3568:32;3565:119;;;3603:79;;:::i;:::-;3565:119;3723:1;3748:53;3793:7;3784:6;3773:9;3769:22;3748:53;:::i;:::-;3738:63;;3694:117;3850:2;3876:53;3921:7;3912:6;3901:9;3897:22;3876:53;:::i;:::-;3866:63;;3821:118;3472:474;;;;;:::o;3952:90::-;3986:7;4029:5;4022:13;4015:21;4004:32;;3952:90;;;:::o;4048:109::-;4129:21;4144:5;4129:21;:::i;:::-;4124:3;4117:34;4048:109;;:::o;4163:210::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:65;4363:1;4352:9;4348:17;4339:6;4301:65;:::i;:::-;4163:210;;;;:::o;4379:329::-;4438:6;4487:2;4475:9;4466:7;4462:23;4458:32;4455:119;;;4493:79;;:::i;:::-;4455:119;4613:1;4638:53;4683:7;4674:6;4663:9;4659:22;4638:53;:::i;:::-;4628:63;;4584:117;4379:329;;;;:::o;4714:117::-;4823:1;4820;4813:12;4837:117;4946:1;4943;4936:12;4960:117;5069:1;5066;5059:12;5100:568;5173:8;5183:6;5233:3;5226:4;5218:6;5214:17;5210:27;5200:122;;5241:79;;:::i;:::-;5200:122;5354:6;5341:20;5331:30;;5384:18;5376:6;5373:30;5370:117;;;5406:79;;:::i;:::-;5370:117;5520:4;5512:6;5508:17;5496:29;;5574:3;5566:4;5558:6;5554:17;5544:8;5540:32;5537:41;5534:128;;;5581:79;;:::i;:::-;5534:128;5100:568;;;;;:::o;5674:116::-;5744:21;5759:5;5744:21;:::i;:::-;5737:5;5734:32;5724:60;;5780:1;5777;5770:12;5724:60;5674:116;:::o;5796:133::-;5839:5;5877:6;5864:20;5855:29;;5893:30;5917:5;5893:30;:::i;:::-;5796:133;;;;:::o;5935:698::-;6027:6;6035;6043;6092:2;6080:9;6071:7;6067:23;6063:32;6060:119;;;6098:79;;:::i;:::-;6060:119;6246:1;6235:9;6231:17;6218:31;6276:18;6268:6;6265:30;6262:117;;;6298:79;;:::i;:::-;6262:117;6411:80;6483:7;6474:6;6463:9;6459:22;6411:80;:::i;:::-;6393:98;;;;6189:312;6540:2;6566:50;6608:7;6599:6;6588:9;6584:22;6566:50;:::i;:::-;6556:60;;6511:115;5935:698;;;;;:::o;6639:118::-;6726:24;6744:5;6726:24;:::i;:::-;6721:3;6714:37;6639:118;;:::o;6763:222::-;6856:4;6894:2;6883:9;6879:18;6871:26;;6907:71;6975:1;6964:9;6960:17;6951:6;6907:71;:::i;:::-;6763:222;;;;:::o;6991:619::-;7068:6;7076;7084;7133:2;7121:9;7112:7;7108:23;7104:32;7101:119;;;7139:79;;:::i;:::-;7101:119;7259:1;7284:53;7329:7;7320:6;7309:9;7305:22;7284:53;:::i;:::-;7274:63;;7230:117;7386:2;7412:53;7457:7;7448:6;7437:9;7433:22;7412:53;:::i;:::-;7402:63;;7357:118;7514:2;7540:53;7585:7;7576:6;7565:9;7561:22;7540:53;:::i;:::-;7530:63;;7485:118;6991:619;;;;;:::o;7616:323::-;7672:6;7721:2;7709:9;7700:7;7696:23;7692:32;7689:119;;;7727:79;;:::i;:::-;7689:119;7847:1;7872:50;7914:7;7905:6;7894:9;7890:22;7872:50;:::i;:::-;7862:60;;7818:114;7616:323;;;;:::o;7945:329::-;8004:6;8053:2;8041:9;8032:7;8028:23;8024:32;8021:119;;;8059:79;;:::i;:::-;8021:119;8179:1;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8150:117;7945:329;;;;:::o;8280:86::-;8315:7;8355:4;8348:5;8344:16;8333:27;;8280:86;;;:::o;8372:112::-;8455:22;8471:5;8455:22;:::i;:::-;8450:3;8443:35;8372:112;;:::o;8490:214::-;8579:4;8617:2;8606:9;8602:18;8594:26;;8630:67;8694:1;8683:9;8679:17;8670:6;8630:67;:::i;:::-;8490:214;;;;:::o;8710:118::-;8797:24;8815:5;8797:24;:::i;:::-;8792:3;8785:37;8710:118;;:::o;8834:222::-;8927:4;8965:2;8954:9;8950:18;8942:26;;8978:71;9046:1;9035:9;9031:17;9022:6;8978:71;:::i;:::-;8834:222;;;;:::o;9062:468::-;9127:6;9135;9184:2;9172:9;9163:7;9159:23;9155:32;9152:119;;;9190:79;;:::i;:::-;9152:119;9310:1;9335:53;9380:7;9371:6;9360:9;9356:22;9335:53;:::i;:::-;9325:63;;9281:117;9437:2;9463:50;9505:7;9496:6;9485:9;9481:22;9463:50;:::i;:::-;9453:60;;9408:115;9062:468;;;;;:::o;9536:474::-;9604:6;9612;9661:2;9649:9;9640:7;9636:23;9632:32;9629:119;;;9667:79;;:::i;:::-;9629:119;9787:1;9812:53;9857:7;9848:6;9837:9;9833:22;9812:53;:::i;:::-;9802:63;;9758:117;9914:2;9940:53;9985:7;9976:6;9965:9;9961:22;9940:53;:::i;:::-;9930:63;;9885:118;9536:474;;;;;:::o;10016:180::-;10064:77;10061:1;10054:88;10161:4;10158:1;10151:15;10185:4;10182:1;10175:15;10202:320;10246:6;10283:1;10277:4;10273:12;10263:22;;10330:1;10324:4;10320:12;10351:18;10341:81;;10407:4;10399:6;10395:17;10385:27;;10341:81;10469:2;10461:6;10458:14;10438:18;10435:38;10432:84;;10488:18;;:::i;:::-;10432:84;10253:269;10202:320;;;:::o;10528:180::-;10576:77;10573:1;10566:88;10673:4;10670:1;10663:15;10697:4;10694:1;10687:15;10714:180;10762:77;10759:1;10752:88;10859:4;10856:1;10849:15;10883:4;10880:1;10873:15;10900:233;10939:3;10962:24;10980:5;10962:24;:::i;:::-;10953:33;;11008:66;11001:5;10998:77;10995:103;;11078:18;;:::i;:::-;10995:103;11125:1;11118:5;11114:13;11107:20;;10900:233;;;:::o;11139:410::-;11179:7;11202:20;11220:1;11202:20;:::i;:::-;11197:25;;11236:20;11254:1;11236:20;:::i;:::-;11231:25;;11291:1;11288;11284:9;11313:30;11331:11;11313:30;:::i;:::-;11302:41;;11492:1;11483:7;11479:15;11476:1;11473:22;11453:1;11446:9;11426:83;11403:139;;11522:18;;:::i;:::-;11403:139;11187:362;11139:410;;;;:::o;11555:180::-;11603:77;11600:1;11593:88;11700:4;11697:1;11690:15;11724:4;11721:1;11714:15;11741:185;11781:1;11798:20;11816:1;11798:20;:::i;:::-;11793:25;;11832:20;11850:1;11832:20;:::i;:::-;11827:25;;11871:1;11861:35;;11876:18;;:::i;:::-;11861:35;11918:1;11915;11911:9;11906:14;;11741:185;;;;:::o;11932:228::-;12072:34;12068:1;12060:6;12056:14;12049:58;12141:11;12136:2;12128:6;12124:15;12117:36;11932:228;:::o;12166:366::-;12308:3;12329:67;12393:2;12388:3;12329:67;:::i;:::-;12322:74;;12405:93;12494:3;12405:93;:::i;:::-;12523:2;12518:3;12514:12;12507:19;;12166:366;;;:::o;12538:419::-;12704:4;12742:2;12731:9;12727:18;12719:26;;12791:9;12785:4;12781:20;12777:1;12766:9;12762:17;12755:47;12819:131;12945:4;12819:131;:::i;:::-;12811:139;;12538:419;;;:::o;12963:191::-;13003:3;13022:20;13040:1;13022:20;:::i;:::-;13017:25;;13056:20;13074:1;13056:20;:::i;:::-;13051:25;;13099:1;13096;13092:9;13085:16;;13120:3;13117:1;13114:10;13111:36;;;13127:18;;:::i;:::-;13111:36;12963:191;;;;:::o;13160:251::-;13300:34;13296:1;13288:6;13284:14;13277:58;13369:34;13364:2;13356:6;13352:15;13345:59;13160:251;:::o;13417:366::-;13559:3;13580:67;13644:2;13639:3;13580:67;:::i;:::-;13573:74;;13656:93;13745:3;13656:93;:::i;:::-;13774:2;13769:3;13765:12;13758:19;;13417:366;;;:::o;13789:419::-;13955:4;13993:2;13982:9;13978:18;13970:26;;14042:9;14036:4;14032:20;14028:1;14017:9;14013:17;14006:47;14070:131;14196:4;14070:131;:::i;:::-;14062:139;;13789:419;;;:::o;14214:181::-;14354:33;14350:1;14342:6;14338:14;14331:57;14214:181;:::o;14401:366::-;14543:3;14564:67;14628:2;14623:3;14564:67;:::i;:::-;14557:74;;14640:93;14729:3;14640:93;:::i;:::-;14758:2;14753:3;14749:12;14742:19;;14401:366;;;:::o;14773:419::-;14939:4;14977:2;14966:9;14962:18;14954:26;;15026:9;15020:4;15016:20;15012:1;15001:9;14997:17;14990:47;15054:131;15180:4;15054:131;:::i;:::-;15046:139;;14773:419;;;:::o;15198:180::-;15338:32;15334:1;15326:6;15322:14;15315:56;15198:180;:::o;15384:366::-;15526:3;15547:67;15611:2;15606:3;15547:67;:::i;:::-;15540:74;;15623:93;15712:3;15623:93;:::i;:::-;15741:2;15736:3;15732:12;15725:19;;15384:366;;;:::o;15756:419::-;15922:4;15960:2;15949:9;15945:18;15937:26;;16009:9;16003:4;15999:20;15995:1;15984:9;15980:17;15973:47;16037:131;16163:4;16037:131;:::i;:::-;16029:139;;15756:419;;;:::o;16181:226::-;16321:34;16317:1;16309:6;16305:14;16298:58;16390:9;16385:2;16377:6;16373:15;16366:34;16181:226;:::o;16413:366::-;16555:3;16576:67;16640:2;16635:3;16576:67;:::i;:::-;16569:74;;16652:93;16741:3;16652:93;:::i;:::-;16770:2;16765:3;16761:12;16754:19;;16413:366;;;:::o;16785:419::-;16951:4;16989:2;16978:9;16974:18;16966:26;;17038:9;17032:4;17028:20;17024:1;17013:9;17009:17;17002:47;17066:131;17192:4;17066:131;:::i;:::-;17058:139;;16785:419;;;:::o;17210:173::-;17350:25;17346:1;17338:6;17334:14;17327:49;17210:173;:::o;17389:366::-;17531:3;17552:67;17616:2;17611:3;17552:67;:::i;:::-;17545:74;;17628:93;17717:3;17628:93;:::i;:::-;17746:2;17741:3;17737:12;17730:19;;17389:366;;;:::o;17761:419::-;17927:4;17965:2;17954:9;17950:18;17942:26;;18014:9;18008:4;18004:20;18000:1;17989:9;17985:17;17978:47;18042:131;18168:4;18042:131;:::i;:::-;18034:139;;17761:419;;;:::o;18186:244::-;18326:34;18322:1;18314:6;18310:14;18303:58;18395:27;18390:2;18382:6;18378:15;18371:52;18186:244;:::o;18436:366::-;18578:3;18599:67;18663:2;18658:3;18599:67;:::i;:::-;18592:74;;18675:93;18764:3;18675:93;:::i;:::-;18793:2;18788:3;18784:12;18777:19;;18436:366;;;:::o;18808:419::-;18974:4;19012:2;19001:9;18997:18;18989:26;;19061:9;19055:4;19051:20;19047:1;19036:9;19032:17;19025:47;19089:131;19215:4;19089:131;:::i;:::-;19081:139;;18808:419;;;:::o;19233:224::-;19373:34;19369:1;19361:6;19357:14;19350:58;19442:7;19437:2;19429:6;19425:15;19418:32;19233:224;:::o;19463:366::-;19605:3;19626:67;19690:2;19685:3;19626:67;:::i;:::-;19619:74;;19702:93;19791:3;19702:93;:::i;:::-;19820:2;19815:3;19811:12;19804:19;;19463:366;;;:::o;19835:419::-;20001:4;20039:2;20028:9;20024:18;20016:26;;20088:9;20082:4;20078:20;20074:1;20063:9;20059:17;20052:47;20116:131;20242:4;20116:131;:::i;:::-;20108:139;;19835:419;;;:::o;20260:231::-;20400:34;20396:1;20388:6;20384:14;20377:58;20469:14;20464:2;20456:6;20452:15;20445:39;20260:231;:::o;20497:366::-;20639:3;20660:67;20724:2;20719:3;20660:67;:::i;:::-;20653:74;;20736:93;20825:3;20736:93;:::i;:::-;20854:2;20849:3;20845:12;20838:19;;20497:366;;;:::o;20869:419::-;21035:4;21073:2;21062:9;21058:18;21050:26;;21122:9;21116:4;21112:20;21108:1;21097:9;21093:17;21086:47;21150:131;21276:4;21150:131;:::i;:::-;21142:139;;20869:419;;;:::o;21294:240::-;21434:34;21430:1;21422:6;21418:14;21411:58;21503:23;21498:2;21490:6;21486:15;21479:48;21294:240;:::o;21540:366::-;21682:3;21703:67;21767:2;21762:3;21703:67;:::i;:::-;21696:74;;21779:93;21868:3;21779:93;:::i;:::-;21897:2;21892:3;21888:12;21881:19;;21540:366;;;:::o;21912:419::-;22078:4;22116:2;22105:9;22101:18;22093:26;;22165:9;22159:4;22155:20;22151:1;22140:9;22136:17;22129:47;22193:131;22319:4;22193:131;:::i;:::-;22185:139;;21912:419;;;:::o;22337:239::-;22477:34;22473:1;22465:6;22461:14;22454:58;22546:22;22541:2;22533:6;22529:15;22522:47;22337:239;:::o;22582:366::-;22724:3;22745:67;22809:2;22804:3;22745:67;:::i;:::-;22738:74;;22821:93;22910:3;22821:93;:::i;:::-;22939:2;22934:3;22930:12;22923:19;;22582:366;;;:::o;22954:419::-;23120:4;23158:2;23147:9;23143:18;23135:26;;23207:9;23201:4;23197:20;23193:1;23182:9;23178:17;23171:47;23235:131;23361:4;23235:131;:::i;:::-;23227:139;;22954:419;;;:::o;23379:229::-;23519:34;23515:1;23507:6;23503:14;23496:58;23588:12;23583:2;23575:6;23571:15;23564:37;23379:229;:::o;23614:366::-;23756:3;23777:67;23841:2;23836:3;23777:67;:::i;:::-;23770:74;;23853:93;23942:3;23853:93;:::i;:::-;23971:2;23966:3;23962:12;23955:19;;23614:366;;;:::o;23986:419::-;24152:4;24190:2;24179:9;24175:18;24167:26;;24239:9;24233:4;24229:20;24225:1;24214:9;24210:17;24203:47;24267:131;24393:4;24267:131;:::i;:::-;24259:139;;23986:419;;;:::o;24411:225::-;24551:34;24547:1;24539:6;24535:14;24528:58;24620:8;24615:2;24607:6;24603:15;24596:33;24411:225;:::o;24642:366::-;24784:3;24805:67;24869:2;24864:3;24805:67;:::i;:::-;24798:74;;24881:93;24970:3;24881:93;:::i;:::-;24999:2;24994:3;24990:12;24983:19;;24642:366;;;:::o;25014:419::-;25180:4;25218:2;25207:9;25203:18;25195:26;;25267:9;25261:4;25257:20;25253:1;25242:9;25238:17;25231:47;25295:131;25421:4;25295:131;:::i;:::-;25287:139;;25014:419;;;:::o;25439:147::-;25540:11;25577:3;25562:18;;25439:147;;;;:::o;25592:114::-;;:::o;25712:398::-;25871:3;25892:83;25973:1;25968:3;25892:83;:::i;:::-;25885:90;;25984:93;26073:3;25984:93;:::i;:::-;26102:1;26097:3;26093:11;26086:18;;25712:398;;;:::o;26116:379::-;26300:3;26322:147;26465:3;26322:147;:::i;:::-;26315:154;;26486:3;26479:10;;26116:379;;;:::o;26501:223::-;26641:34;26637:1;26629:6;26625:14;26618:58;26710:6;26705:2;26697:6;26693:15;26686:31;26501:223;:::o;26730:366::-;26872:3;26893:67;26957:2;26952:3;26893:67;:::i;:::-;26886:74;;26969:93;27058:3;26969:93;:::i;:::-;27087:2;27082:3;27078:12;27071:19;;26730:366;;;:::o;27102:419::-;27268:4;27306:2;27295:9;27291:18;27283:26;;27355:9;27349:4;27345:20;27341:1;27330:9;27326:17;27319:47;27383:131;27509:4;27383:131;:::i;:::-;27375:139;;27102:419;;;:::o;27527:221::-;27667:34;27663:1;27655:6;27651:14;27644:58;27736:4;27731:2;27723:6;27719:15;27712:29;27527:221;:::o;27754:366::-;27896:3;27917:67;27981:2;27976:3;27917:67;:::i;:::-;27910:74;;27993:93;28082:3;27993:93;:::i;:::-;28111:2;28106:3;28102:12;28095:19;;27754:366;;;:::o;28126:419::-;28292:4;28330:2;28319:9;28315:18;28307:26;;28379:9;28373:4;28369:20;28365:1;28354:9;28350:17;28343:47;28407:131;28533:4;28407:131;:::i;:::-;28399:139;;28126:419;;;:::o;28551:182::-;28691:34;28687:1;28679:6;28675:14;28668:58;28551:182;:::o;28739:366::-;28881:3;28902:67;28966:2;28961:3;28902:67;:::i;:::-;28895:74;;28978:93;29067:3;28978:93;:::i;:::-;29096:2;29091:3;29087:12;29080:19;;28739:366;;;:::o;29111:419::-;29277:4;29315:2;29304:9;29300:18;29292:26;;29364:9;29358:4;29354:20;29350:1;29339:9;29335:17;29328:47;29392:131;29518:4;29392:131;:::i;:::-;29384:139;;29111:419;;;:::o;29536:179::-;29676:31;29672:1;29664:6;29660:14;29653:55;29536:179;:::o;29721:366::-;29863:3;29884:67;29948:2;29943:3;29884:67;:::i;:::-;29877:74;;29960:93;30049:3;29960:93;:::i;:::-;30078:2;30073:3;30069:12;30062:19;;29721:366;;;:::o;30093:419::-;30259:4;30297:2;30286:9;30282:18;30274:26;;30346:9;30340:4;30336:20;30332:1;30321:9;30317:17;30310:47;30374:131;30500:4;30374:131;:::i;:::-;30366:139;;30093:419;;;:::o;30518:224::-;30658:34;30654:1;30646:6;30642:14;30635:58;30727:7;30722:2;30714:6;30710:15;30703:32;30518:224;:::o;30748:366::-;30890:3;30911:67;30975:2;30970:3;30911:67;:::i;:::-;30904:74;;30987:93;31076:3;30987:93;:::i;:::-;31105:2;31100:3;31096:12;31089:19;;30748:366;;;:::o;31120:419::-;31286:4;31324:2;31313:9;31309:18;31301:26;;31373:9;31367:4;31363:20;31359:1;31348:9;31344:17;31337:47;31401:131;31527:4;31401:131;:::i;:::-;31393:139;;31120:419;;;:::o;31545:222::-;31685:34;31681:1;31673:6;31669:14;31662:58;31754:5;31749:2;31741:6;31737:15;31730:30;31545:222;:::o;31773:366::-;31915:3;31936:67;32000:2;31995:3;31936:67;:::i;:::-;31929:74;;32012:93;32101:3;32012:93;:::i;:::-;32130:2;32125:3;32121:12;32114:19;;31773:366;;;:::o;32145:419::-;32311:4;32349:2;32338:9;32334:18;32326:26;;32398:9;32392:4;32388:20;32384:1;32373:9;32369:17;32362:47;32426:131;32552:4;32426:131;:::i;:::-;32418:139;;32145:419;;;:::o;32570:179::-;32710:31;32706:1;32698:6;32694:14;32687:55;32570:179;:::o;32755:366::-;32897:3;32918:67;32982:2;32977:3;32918:67;:::i;:::-;32911:74;;32994:93;33083:3;32994:93;:::i;:::-;33112:2;33107:3;33103:12;33096:19;;32755:366;;;:::o;33127:419::-;33293:4;33331:2;33320:9;33316:18;33308:26;;33380:9;33374:4;33370:20;33366:1;33355:9;33351:17;33344:47;33408:131;33534:4;33408:131;:::i;:::-;33400:139;;33127:419;;;:::o;33552:172::-;33692:24;33688:1;33680:6;33676:14;33669:48;33552:172;:::o;33730:366::-;33872:3;33893:67;33957:2;33952:3;33893:67;:::i;:::-;33886:74;;33969:93;34058:3;33969:93;:::i;:::-;34087:2;34082:3;34078:12;34071:19;;33730:366;;;:::o;34102:419::-;34268:4;34306:2;34295:9;34291:18;34283:26;;34355:9;34349:4;34345:20;34341:1;34330:9;34326:17;34319:47;34383:131;34509:4;34383:131;:::i;:::-;34375:139;;34102:419;;;:::o;34527:294::-;34667:34;34663:1;34655:6;34651:14;34644:58;34736:34;34731:2;34723:6;34719:15;34712:59;34805:8;34800:2;34792:6;34788:15;34781:33;34527:294;:::o;34827:366::-;34969:3;34990:67;35054:2;35049:3;34990:67;:::i;:::-;34983:74;;35066:93;35155:3;35066:93;:::i;:::-;35184:2;35179:3;35175:12;35168:19;;34827:366;;;:::o;35199:419::-;35365:4;35403:2;35392:9;35388:18;35380:26;;35452:9;35446:4;35442:20;35438:1;35427:9;35423:17;35416:47;35480:131;35606:4;35480:131;:::i;:::-;35472:139;;35199:419;;;:::o;35624:194::-;35664:4;35684:20;35702:1;35684:20;:::i;:::-;35679:25;;35718:20;35736:1;35718:20;:::i;:::-;35713:25;;35762:1;35759;35755:9;35747:17;;35786:1;35780:4;35777:11;35774:37;;;35791:18;;:::i;:::-;35774:37;35624:194;;;;:::o;35824:240::-;35964:34;35960:1;35952:6;35948:14;35941:58;36033:23;36028:2;36020:6;36016:15;36009:48;35824:240;:::o;36070:366::-;36212:3;36233:67;36297:2;36292:3;36233:67;:::i;:::-;36226:74;;36309:93;36398:3;36309:93;:::i;:::-;36427:2;36422:3;36418:12;36411:19;;36070:366;;;:::o;36442:419::-;36608:4;36646:2;36635:9;36631:18;36623:26;;36695:9;36689:4;36685:20;36681:1;36670:9;36666:17;36659:47;36723:131;36849:4;36723:131;:::i;:::-;36715:139;;36442:419;;;:::o;36867:227::-;37007:34;37003:1;36995:6;36991:14;36984:58;37076:10;37071:2;37063:6;37059:15;37052:35;36867:227;:::o;37100:366::-;37242:3;37263:67;37327:2;37322:3;37263:67;:::i;:::-;37256:74;;37339:93;37428:3;37339:93;:::i;:::-;37457:2;37452:3;37448:12;37441:19;;37100:366;;;:::o;37472:419::-;37638:4;37676:2;37665:9;37661:18;37653:26;;37725:9;37719:4;37715:20;37711:1;37700:9;37696:17;37689:47;37753:131;37879:4;37753:131;:::i;:::-;37745:139;;37472:419;;;:::o;37897:175::-;38037:27;38033:1;38025:6;38021:14;38014:51;37897:175;:::o;38078:366::-;38220:3;38241:67;38305:2;38300:3;38241:67;:::i;:::-;38234:74;;38317:93;38406:3;38317:93;:::i;:::-;38435:2;38430:3;38426:12;38419:19;;38078:366;;;:::o;38450:419::-;38616:4;38654:2;38643:9;38639:18;38631:26;;38703:9;38697:4;38693:20;38689:1;38678:9;38674:17;38667:47;38731:131;38857:4;38731:131;:::i;:::-;38723:139;;38450:419;;;:::o;38875:229::-;39015:34;39011:1;39003:6;38999:14;38992:58;39084:12;39079:2;39071:6;39067:15;39060:37;38875:229;:::o;39110:366::-;39252:3;39273:67;39337:2;39332:3;39273:67;:::i;:::-;39266:74;;39349:93;39438:3;39349:93;:::i;:::-;39467:2;39462:3;39458:12;39451:19;;39110:366;;;:::o;39482:419::-;39648:4;39686:2;39675:9;39671:18;39663:26;;39735:9;39729:4;39725:20;39721:1;39710:9;39706:17;39699:47;39763:131;39889:4;39763:131;:::i;:::-;39755:139;;39482:419;;;:::o;39907:225::-;40047:34;40043:1;40035:6;40031:14;40024:58;40116:8;40111:2;40103:6;40099:15;40092:33;39907:225;:::o;40138:366::-;40280:3;40301:67;40365:2;40360:3;40301:67;:::i;:::-;40294:74;;40377:93;40466:3;40377:93;:::i;:::-;40495:2;40490:3;40486:12;40479:19;;40138:366;;;:::o;40510:419::-;40676:4;40714:2;40703:9;40699:18;40691:26;;40763:9;40757:4;40753:20;40749:1;40738:9;40734:17;40727:47;40791:131;40917:4;40791:131;:::i;:::-;40783:139;;40510:419;;;:::o;40935:180::-;40983:77;40980:1;40973:88;41080:4;41077:1;41070:15;41104:4;41101:1;41094:15;41121:143;41178:5;41209:6;41203:13;41194:22;;41225:33;41252:5;41225:33;:::i;:::-;41121:143;;;;:::o;41270:351::-;41340:6;41389:2;41377:9;41368:7;41364:23;41360:32;41357:119;;;41395:79;;:::i;:::-;41357:119;41515:1;41540:64;41596:7;41587:6;41576:9;41572:22;41540:64;:::i;:::-;41530:74;;41486:128;41270:351;;;;:::o;41627:85::-;41672:7;41701:5;41690:16;;41627:85;;;:::o;41718:158::-;41776:9;41809:61;41827:42;41836:32;41862:5;41836:32;:::i;:::-;41827:42;:::i;:::-;41809:61;:::i;:::-;41796:74;;41718:158;;;:::o;41882:147::-;41977:45;42016:5;41977:45;:::i;:::-;41972:3;41965:58;41882:147;;:::o;42035:114::-;42102:6;42136:5;42130:12;42120:22;;42035:114;;;:::o;42155:184::-;42254:11;42288:6;42283:3;42276:19;42328:4;42323:3;42319:14;42304:29;;42155:184;;;;:::o;42345:132::-;42412:4;42435:3;42427:11;;42465:4;42460:3;42456:14;42448:22;;42345:132;;;:::o;42483:108::-;42560:24;42578:5;42560:24;:::i;:::-;42555:3;42548:37;42483:108;;:::o;42597:179::-;42666:10;42687:46;42729:3;42721:6;42687:46;:::i;:::-;42765:4;42760:3;42756:14;42742:28;;42597:179;;;;:::o;42782:113::-;42852:4;42884;42879:3;42875:14;42867:22;;42782:113;;;:::o;42931:732::-;43050:3;43079:54;43127:5;43079:54;:::i;:::-;43149:86;43228:6;43223:3;43149:86;:::i;:::-;43142:93;;43259:56;43309:5;43259:56;:::i;:::-;43338:7;43369:1;43354:284;43379:6;43376:1;43373:13;43354:284;;;43455:6;43449:13;43482:63;43541:3;43526:13;43482:63;:::i;:::-;43475:70;;43568:60;43621:6;43568:60;:::i;:::-;43558:70;;43414:224;43401:1;43398;43394:9;43389:14;;43354:284;;;43358:14;43654:3;43647:10;;43055:608;;;42931:732;;;;:::o;43669:831::-;43932:4;43970:3;43959:9;43955:19;43947:27;;43984:71;44052:1;44041:9;44037:17;44028:6;43984:71;:::i;:::-;44065:80;44141:2;44130:9;44126:18;44117:6;44065:80;:::i;:::-;44192:9;44186:4;44182:20;44177:2;44166:9;44162:18;44155:48;44220:108;44323:4;44314:6;44220:108;:::i;:::-;44212:116;;44338:72;44406:2;44395:9;44391:18;44382:6;44338:72;:::i;:::-;44420:73;44488:3;44477:9;44473:19;44464:6;44420:73;:::i;:::-;43669:831;;;;;;;;:::o;44506:320::-;44621:4;44659:2;44648:9;44644:18;44636:26;;44672:71;44740:1;44729:9;44725:17;44716:6;44672:71;:::i;:::-;44753:66;44815:2;44804:9;44800:18;44791:6;44753:66;:::i;:::-;44506:320;;;;;:::o
Swarm Source
ipfs://fc176a850ca17a1f4c66fe9eb3bc0c9bacfec4349e190026ff6acbd8481a3c89
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.