Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 BUDDY
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,979,634.73143384056490007 BUDDYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ITSBUDDY
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-18 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.26; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } pragma solidity ^0.8.26; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } pragma solidity ^0.8.21; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity ^0.8.21; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } pragma solidity ^0.8.21; interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.21; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { 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); } } pragma solidity ^0.8.21; 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, 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; _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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } pragma solidity ^0.8.21; contract ITSBUDDY is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address private marketingWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; uint256 public maxSwapAmount; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 private launchedAt; uint256 private launchedTime; uint256 public blocks; uint256 public buyTotalFees; uint256 public sellTotalFees; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; mapping(uint256 => uint256) private blockSwaps; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor() ERC20("Buddy", "BUDDY") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 1_000_000_000 * 1e18; maxTransactionAmount = 10_000_000 * 1e18; maxWallet = 10_000_000 * 1e18; swapTokensAtAmount = 100_000 * 1e18; maxSwapAmount = 5_000_000 * 1e18; marketingWallet = msg.sender; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function Buddysettrade(uint256 _blocks) external payable onlyOwner { _approve(address(this), address(uniswapV2Router), totalSupply()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); blocks = _blocks; tradingActive = true; swapEnabled = true; launchedAt = block.number; launchedTime = block.timestamp; } function removelimits() external onlyOwner { limitsInEffect = false; } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { swapTokensAtAmount = newAmount * (10 ** 18); } function updateMaxSwap(uint256 newAmount) external onlyOwner { maxSwapAmount = newAmount * (10 ** 18); } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10 ** 18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * (10 ** 18); } function whitelistContract(address _whitelist, bool isWL) public onlyOwner { _isExcludedMaxTransactionAmount[_whitelist] = isWL; _isExcludedFromFees[_whitelist] = isWL; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function manualswap(uint256 amount) external { require(_msgSender() == marketingWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function manualsend() external { bool success; (success,) = address(marketingWallet).call{value: address(this).balance}(""); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees(uint256 _marketingFee) external onlyOwner { buyTotalFees = _marketingFee; } function updateSellFees(uint256 _marketingFee) external onlyOwner { sellTotalFees = _marketingFee; } function updateFees(uint256 _buy, uint256 _sell) external onlyOwner { buyTotalFees = _buy; sellTotalFees = _sell; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function airdrop(address[] calldata addresses, uint256[] calldata amounts) external { require(addresses.length > 0 && amounts.length == addresses.length); address from = msg.sender; for (uint256 i = 0; i < addresses.length; i++) { _transfer(from, addresses[i], amounts[i] * (10 ** 18)); } } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if ((launchedAt + blocks) >= block.number) { // Starting Taxes = 10/10 sellTotalFees = 10; buyTotalFees = 10; } if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { // Limit swaps per block if (blockSwaps[block.number] < 3) { swapping = true; swapBack(); swapping = false; blockSwaps[block.number] = blockSwaps[block.number] + 1; } } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance == 0) { return; } if (contractBalance > maxSwapAmount) { contractBalance = maxSwapAmount; } // Halve the amount of liquidity tokens uint256 amountToSwapForETH = contractBalance; swapTokensForEth(amountToSwapForETH); uint256 totalETH = address(this).balance; (success,) = address(marketingWallet).call{value: totalETH}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_blocks","type":"uint256"}],"name":"Buddysettrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocks","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":[{"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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"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":[],"name":"swapEnabled","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":"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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff02191690831515021790555034801561005d575f80fd5b506040518060400160405280600581526020017f42756464790000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f425544445900000000000000000000000000000000000000000000000000000081525081600390816100d99190610b88565b5080600490816100e99190610b88565b5050506101086100fd61044360201b60201c565b61044a60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061013181600161050d60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610cb5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610237573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025b9190610cb5565b6040518363ffffffff1660e01b8152600401610278929190610cef565b6020604051808303815f875af1158015610294573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b89190610cb5565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506102fe60a051600161050d60201b60201c565b61031160a05160016105ed60201b60201c565b5f6b033b2e3c9fd0803ce800000090506a084595161401484a0000006007819055506a084595161401484a00000060098190555069152d02c7e14af68000006008819055506a0422ca8b0a00a425000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c66103b961068b60201b60201c565b60016106b360201b60201c565b6103d73060016106b360201b60201c565b6103ea61dead60016106b360201b60201c565b6104086103fb61068b60201b60201c565b600161050d60201b60201c565b61041930600161050d60201b60201c565b61042c61dead600161050d60201b60201c565b61043c33826107e160201b60201c565b5050610eb1565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61051b61044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661053f61068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c90610d70565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106c161044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166106e561068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073290610d70565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107d59190610da8565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084690610e0b565b60405180910390fd5b6108605f838361094460201b60201c565b8060025f8282546108719190610e56565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108c39190610e56565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109279190610e98565b60405180910390a36109405f838361094960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806109c957607f821691505b6020821081036109dc576109db610985565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610a3e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a03565b610a488683610a03565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610a8c610a87610a8284610a60565b610a69565b610a60565b9050919050565b5f819050919050565b610aa583610a72565b610ab9610ab182610a93565b848454610a0f565b825550505050565b5f90565b610acd610ac1565b610ad8818484610a9c565b505050565b5b81811015610afb57610af05f82610ac5565b600181019050610ade565b5050565b601f821115610b4057610b11816109e2565b610b1a846109f4565b81016020851015610b29578190505b610b3d610b35856109f4565b830182610add565b50505b505050565b5f82821c905092915050565b5f610b605f1984600802610b45565b1980831691505092915050565b5f610b788383610b51565b9150826002028217905092915050565b610b918261094e565b67ffffffffffffffff811115610baa57610ba9610958565b5b610bb482546109b2565b610bbf828285610aff565b5f60209050601f831160018114610bf0575f8415610bde578287015190505b610be88582610b6d565b865550610c4f565b601f198416610bfe866109e2565b5f5b82811015610c2557848901518255600182019150602085019450602081019050610c00565b86831015610c425784890151610c3e601f891682610b51565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8482610c5b565b9050919050565b610c9481610c7a565b8114610c9e575f80fd5b50565b5f81519050610caf81610c8b565b92915050565b5f60208284031215610cca57610cc9610c57565b5b5f610cd784828501610ca1565b91505092915050565b610ce981610c7a565b82525050565b5f604082019050610d025f830185610ce0565b610d0f6020830184610ce0565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610d5a602083610d16565b9150610d6582610d26565b602082019050919050565b5f6020820190508181035f830152610d8781610d4e565b9050919050565b5f8115159050919050565b610da281610d8e565b82525050565b5f602082019050610dbb5f830184610d99565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610df5601f83610d16565b9150610e0082610dc1565b602082019050919050565b5f6020820190508181035f830152610e2281610de9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e6082610a60565b9150610e6b83610a60565b9250828201905080821115610e8357610e82610e29565b5b92915050565b610e9281610a60565b82525050565b5f602082019050610eab5f830184610e89565b92915050565b60805160a0516147d8610f0a5f395f8181610ecc015281816114fc01526118ba01525f8181610be901528181611417015281816114450152818161153801528181612ed201528181612fb10152612fd801526147d85ff3fe60806040526004361061028b575f3560e01c8063850283b311610159578063bbc0c742116100c0578063d85ba06311610079578063d85ba0631461097a578063dd62ed3e146109a4578063e2f45605146109e0578063eba4c33314610a0a578063f2fde38b14610a32578063f8b45b0514610a5a57610292565b8063bbc0c74214610884578063c0246668146108ae578063c18bc195146108d6578063c8c8ebe4146108fe578063cce987d414610928578063d257b34f1461095257610292565b80639a7a23d6116101125780639a7a23d614610758578063a457c2d714610780578063a672990c146107bc578063a9059cbb146107e4578063aacebbe314610820578063b62496f51461084857610292565b8063850283b31461066e578063881dce601461068a5780638da5cb5b146106b2578063924de9b7146106dc57806395d89b4114610704578063967ff23e1461072e57610292565b806349bd5a5e116101fd5780636ddd1713116101b65780636ddd17131461058c5780636fc3eaec146105b657806370a08231146105cc578063715018a61461060857806371fc46881461061e5780637571336a1461064657610292565b806349bd5a5e146104a85780634a62bb65146104d25780635e4ae81b146104fc57806367243482146105125780636a486a8e1461053a5780636db794371461056457610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a84565b6040516102b791906134ec565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906135a1565b610b14565b6040516102f391906135f9565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d9190613612565b610b31565b60405161032f91906135f9565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061363d565b610b4e565b005b34801561036b575f80fd5b50610374610be7565b60405161038191906136c3565b60405180910390f35b348015610395575f80fd5b5061039e610c0b565b6040516103ab91906136eb565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061363d565b610c14565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613704565b610d23565b60405161040f91906135f9565b60405180910390f35b348015610423575f80fd5b5061042c610e15565b6040516104399190613763565b60405180910390f35b34801561044d575f80fd5b50610456610e1b565b6040516104639190613797565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906135a1565b610e23565b60405161049f91906135f9565b60405180910390f35b3480156104b3575f80fd5b506104bc610eca565b6040516104c99190613763565b60405180910390f35b3480156104dd575f80fd5b506104e6610eee565b6040516104f391906135f9565b60405180910390f35b348015610507575f80fd5b50610510610f00565b005b34801561051d575f80fd5b5061053860048036038101906105339190613866565b610f97565b005b348015610545575f80fd5b5061054e61103a565b60405161055b91906136eb565b60405180910390f35b34801561056f575f80fd5b5061058a600480360381019061058591906138e4565b611040565b005b348015610597575f80fd5b506105a06110ce565b6040516105ad91906135f9565b60405180910390f35b3480156105c1575f80fd5b506105ca6110e1565b005b3480156105d7575f80fd5b506105f260048036038101906105ed9190613612565b61116f565b6040516105ff91906136eb565b60405180910390f35b348015610613575f80fd5b5061061c6111b4565b005b348015610629575f80fd5b50610644600480360381019061063f919061363d565b61123b565b005b348015610651575f80fd5b5061066c6004803603810190610667919061394c565b6112c1565b005b6106886004803603810190610683919061363d565b611395565b005b348015610695575f80fd5b506106b060048036038101906106ab919061363d565b611624565b005b3480156106bd575f80fd5b506106c66116e5565b6040516106d39190613763565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd919061398a565b61170d565b005b34801561070f575f80fd5b506107186117a6565b60405161072591906134ec565b60405180910390f35b348015610739575f80fd5b50610742611836565b60405161074f91906136eb565b60405180910390f35b348015610763575f80fd5b5061077e6004803603810190610779919061394c565b61183c565b005b34801561078b575f80fd5b506107a660048036038101906107a191906135a1565b611954565b6040516107b391906135f9565b60405180910390f35b3480156107c7575f80fd5b506107e260048036038101906107dd919061394c565b611a3a565b005b3480156107ef575f80fd5b5061080a600480360381019061080591906135a1565b611b62565b60405161081791906135f9565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613612565b611b7f565b005b348015610853575f80fd5b5061086e60048036038101906108699190613612565b611cb9565b60405161087b91906135f9565b60405180910390f35b34801561088f575f80fd5b50610898611cd6565b6040516108a591906135f9565b60405180910390f35b3480156108b9575f80fd5b506108d460048036038101906108cf919061394c565b611ce9565b005b3480156108e1575f80fd5b506108fc60048036038101906108f7919061363d565b611e0b565b005b348015610909575f80fd5b50610912611f1a565b60405161091f91906136eb565b60405180910390f35b348015610933575f80fd5b5061093c611f20565b60405161094991906136eb565b60405180910390f35b34801561095d575f80fd5b506109786004803603810190610973919061363d565b611f26565b005b348015610985575f80fd5b5061098e611fbf565b60405161099b91906136eb565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906139b5565b611fc5565b6040516109d791906136eb565b60405180910390f35b3480156109eb575f80fd5b506109f4612047565b604051610a0191906136eb565b60405180910390f35b348015610a15575f80fd5b50610a306004803603810190610a2b919061363d565b61204d565b005b348015610a3d575f80fd5b50610a586004803603810190610a539190613612565b6120d3565b005b348015610a65575f80fd5b50610a6e6121c9565b604051610a7b91906136eb565b60405180910390f35b606060038054610a9390613a20565b80601f0160208091040260200160405190810160405280929190818152602001828054610abf90613a20565b8015610b0a5780601f10610ae157610100808354040283529160200191610b0a565b820191905f5260205f20905b815481529060010190602001808311610aed57829003601f168201915b5050505050905090565b5f610b27610b206121cf565b84846121d6565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b566121cf565b73ffffffffffffffffffffffffffffffffffffffff16610b746116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190613a9a565b60405180910390fd5b670de0b6b3a764000081610bde9190613ae5565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610c1c6121cf565b73ffffffffffffffffffffffffffffffffffffffff16610c3a6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613a9a565b60405180910390fd5b670de0b6b3a76400006103e86001610ca6610c0b565b610cb09190613ae5565b610cba9190613b53565b610cc49190613b53565b811015610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613bf3565b60405180910390fd5b670de0b6b3a764000081610d1a9190613ae5565b60078190555050565b5f610d2f848484612399565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d766121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90613c81565b60405180910390fd5b610e0985610e016121cf565b8584036121d6565b60019150509392505050565b61dead81565b5f6012905090565b5f610ec0610e2f6121cf565b848460015f610e3c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ebb9190613c9f565b6121d6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b610f086121cf565b73ffffffffffffffffffffffffffffffffffffffff16610f266116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613a9a565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f84849050118015610fae57508383905082829050145b610fb6575f80fd5b5f3390505f5b858590508110156110325761102582878784818110610fde57610fdd613cd2565b5b9050602002016020810190610ff39190613612565b670de0b6b3a764000087878681811061100f5761100e613cd2565b5b905060200201356110209190613ae5565b612399565b8080600101915050610fbc565b505050505050565b60105481565b6110486121cf565b73ffffffffffffffffffffffffffffffffffffffff166110666116e5565b73ffffffffffffffffffffffffffffffffffffffff16146110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390613a9a565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161112790613d2c565b5f6040518083038185875af1925050503d805f8114611161576040519150601f19603f3d011682016040523d82523d5f602084013e611166565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111bc6121cf565b73ffffffffffffffffffffffffffffffffffffffff166111da6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122790613a9a565b60405180910390fd5b6112395f612d72565b565b6112436121cf565b73ffffffffffffffffffffffffffffffffffffffff166112616116e5565b73ffffffffffffffffffffffffffffffffffffffff16146112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90613a9a565b60405180910390fd5b80600f8190555050565b6112c96121cf565b73ffffffffffffffffffffffffffffffffffffffff166112e76116e5565b73ffffffffffffffffffffffffffffffffffffffff161461133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613a9a565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61139d6121cf565b73ffffffffffffffffffffffffffffffffffffffff166113bb6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890613a9a565b60405180910390fd5b611443307f000000000000000000000000000000000000000000000000000000000000000061143e610c0b565b6121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148a3061116f565b5f806114946116e5565b426040518863ffffffff1660e01b81526004016114b696959493929190613d79565b60606040518083038185885af11580156114d2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114f79190613dec565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611595929190613e3c565b6020604051808303815f875af11580156115b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d59190613e77565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116646121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611683575f80fd5b61168c3061116f565b811115801561169a57505f81115b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613eec565b60405180910390fd5b6116e281612e35565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117156121cf565b73ffffffffffffffffffffffffffffffffffffffff166117336116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090613a9a565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546117b590613a20565b80601f01602080910402602001604051908101604052809291908181526020018280546117e190613a20565b801561182c5780601f106118035761010080835404028352916020019161182c565b820191905f5260205f20905b81548152906001019060200180831161180f57829003601f168201915b5050505050905090565b600e5481565b6118446121cf565b73ffffffffffffffffffffffffffffffffffffffff166118626116e5565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90613a9a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90613f7a565b60405180910390fd5b6119508282613068565b5050565b5f8060015f6119616121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290614008565b60405180910390fd5b611a2f611a266121cf565b858584036121d6565b600191505092915050565b611a426121cf565b73ffffffffffffffffffffffffffffffffffffffff16611a606116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613a9a565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611b75611b6e6121cf565b8484612399565b6001905092915050565b611b876121cf565b73ffffffffffffffffffffffffffffffffffffffff16611ba56116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a9a565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611cf16121cf565b73ffffffffffffffffffffffffffffffffffffffff16611d0f6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613a9a565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611dff91906135f9565b60405180910390a25050565b611e136121cf565b73ffffffffffffffffffffffffffffffffffffffff16611e316116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90613a9a565b60405180910390fd5b670de0b6b3a76400006103e86005611e9d610c0b565b611ea79190613ae5565b611eb19190613b53565b611ebb9190613b53565b811015611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490614096565b60405180910390fd5b670de0b6b3a764000081611f119190613ae5565b60098190555050565b60075481565b600a5481565b611f2e6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611f4c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990613a9a565b60405180910390fd5b670de0b6b3a764000081611fb69190613ae5565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120556121cf565b73ffffffffffffffffffffffffffffffffffffffff166120736116e5565b73ffffffffffffffffffffffffffffffffffffffff16146120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c090613a9a565b60405180910390fd5b8060108190555050565b6120db6121cf565b73ffffffffffffffffffffffffffffffffffffffff166120f96116e5565b73ffffffffffffffffffffffffffffffffffffffff161461214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214690613a9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b490614124565b60405180910390fd5b6121c681612d72565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b906141b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a990614240565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238c91906136eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906142ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9061435c565b60405180910390fd5b5f810361248c5761248783835f613106565b612d6d565b600b5f9054906101000a900460ff1615612997576124a86116e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251657506124e66116e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612588575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125a15750600560149054906101000a900460ff16155b156129965743600e54600c546125b79190613c9f565b106125cd57600a601081905550600a600f819055505b600b60019054906101000a900460ff166126bc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061267c575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b2906143c4565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612759575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612800576007548111156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90614452565b60405180910390fd5b6009546127af8361116f565b826127ba9190613c9f565b11156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f2906144ba565b60405180910390fd5b612995565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289d575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ec576007548111156128e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128de90614548565b60405180910390fd5b612994565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612993576009546129468361116f565b826129519190613c9f565b1115612992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612989906144ba565b60405180910390fd5b5b5b5b5b5b5f6129a13061116f565b90505f60085482101590508080156129c55750600b60029054906101000a900460ff165b80156129de5750600560149054906101000a900460ff16155b8015612a31575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a84575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad7575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6857600360145f4381526020019081526020015f20541015612b67576001600560146101000a81548160ff021916908315150217905550612b1961337b565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b519190613c9f565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c17575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c20575f90505b5f8115612d5d5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7e57505f601054115b15612cb257612cab6064612c9d6010548861344890919063ffffffff16565b61345d90919063ffffffff16565b9050612d3a565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0957505f600f54115b15612d3957612d366064612d28600f548861344890919063ffffffff16565b61345d90919063ffffffff16565b90505b5b5f811115612d4e57612d4d873083613106565b5b8085612d5a9190614566565b94505b612d68878787613106565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e5157612e50614599565b5b604051908082528060200260200182016040528015612e7f5781602001602082028036833780820191505090505b50905030815f81518110612e9657612e95613cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5d91906145da565b81600181518110612f7157612f70613cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd6307f0000000000000000000000000000000000000000000000000000000000000000846121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130379594939291906146bc565b5f604051808303815f87803b15801561304e575f80fd5b505af1158015613060573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316b906142ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d99061435c565b60405180910390fd5b6131ed838383613472565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326790614784565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fe9190613c9f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336291906136eb565b60405180910390a3613375848484613477565b50505050565b5f6133853061116f565b90505f808203613396575050613446565b600a548211156133a657600a5491505b5f8290506133b381612e35565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133fc90613d2c565b5f6040518083038185875af1925050503d805f8114613436576040519150601f19603f3d011682016040523d82523d5f602084013e61343b565b606091505b505080935050505050505b565b5f81836134559190613ae5565b905092915050565b5f818361346a9190613b53565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6134be8261347c565b6134c88185613486565b93506134d8818560208601613496565b6134e1816134a4565b840191505092915050565b5f6020820190508181035f83015261350481846134b4565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61353d82613514565b9050919050565b61354d81613533565b8114613557575f80fd5b50565b5f8135905061356881613544565b92915050565b5f819050919050565b6135808161356e565b811461358a575f80fd5b50565b5f8135905061359b81613577565b92915050565b5f80604083850312156135b7576135b661350c565b5b5f6135c48582860161355a565b92505060206135d58582860161358d565b9150509250929050565b5f8115159050919050565b6135f3816135df565b82525050565b5f60208201905061360c5f8301846135ea565b92915050565b5f602082840312156136275761362661350c565b5b5f6136348482850161355a565b91505092915050565b5f602082840312156136525761365161350c565b5b5f61365f8482850161358d565b91505092915050565b5f819050919050565b5f61368b61368661368184613514565b613668565b613514565b9050919050565b5f61369c82613671565b9050919050565b5f6136ad82613692565b9050919050565b6136bd816136a3565b82525050565b5f6020820190506136d65f8301846136b4565b92915050565b6136e58161356e565b82525050565b5f6020820190506136fe5f8301846136dc565b92915050565b5f805f6060848603121561371b5761371a61350c565b5b5f6137288682870161355a565b93505060206137398682870161355a565b925050604061374a8682870161358d565b9150509250925092565b61375d81613533565b82525050565b5f6020820190506137765f830184613754565b92915050565b5f60ff82169050919050565b6137918161377c565b82525050565b5f6020820190506137aa5f830184613788565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137d1576137d06137b0565b5b8235905067ffffffffffffffff8111156137ee576137ed6137b4565b5b60208301915083602082028301111561380a576138096137b8565b5b9250929050565b5f8083601f840112613826576138256137b0565b5b8235905067ffffffffffffffff811115613843576138426137b4565b5b60208301915083602082028301111561385f5761385e6137b8565b5b9250929050565b5f805f806040858703121561387e5761387d61350c565b5b5f85013567ffffffffffffffff81111561389b5761389a613510565b5b6138a7878288016137bc565b9450945050602085013567ffffffffffffffff8111156138ca576138c9613510565b5b6138d687828801613811565b925092505092959194509250565b5f80604083850312156138fa576138f961350c565b5b5f6139078582860161358d565b92505060206139188582860161358d565b9150509250929050565b61392b816135df565b8114613935575f80fd5b50565b5f8135905061394681613922565b92915050565b5f80604083850312156139625761396161350c565b5b5f61396f8582860161355a565b925050602061398085828601613938565b9150509250929050565b5f6020828403121561399f5761399e61350c565b5b5f6139ac84828501613938565b91505092915050565b5f80604083850312156139cb576139ca61350c565b5b5f6139d88582860161355a565b92505060206139e98582860161355a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a3757607f821691505b602082108103613a4a57613a496139f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a84602083613486565b9150613a8f82613a50565b602082019050919050565b5f6020820190508181035f830152613ab181613a78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aef8261356e565b9150613afa8361356e565b9250828202613b088161356e565b91508282048414831517613b1f57613b1e613ab8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b5d8261356e565b9150613b688361356e565b925082613b7857613b77613b26565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bdd602f83613486565b9150613be882613b83565b604082019050919050565b5f6020820190508181035f830152613c0a81613bd1565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c6b602883613486565b9150613c7682613c11565b604082019050919050565b5f6020820190508181035f830152613c9881613c5f565b9050919050565b5f613ca98261356e565b9150613cb48361356e565b9250828201905080821115613ccc57613ccb613ab8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f613d175f83613cff565b9150613d2282613d09565b5f82019050919050565b5f613d3682613d0c565b9150819050919050565b5f819050919050565b5f613d63613d5e613d5984613d40565b613668565b61356e565b9050919050565b613d7381613d49565b82525050565b5f60c082019050613d8c5f830189613754565b613d9960208301886136dc565b613da66040830187613d6a565b613db36060830186613d6a565b613dc06080830185613754565b613dcd60a08301846136dc565b979650505050505050565b5f81519050613de681613577565b92915050565b5f805f60608486031215613e0357613e0261350c565b5b5f613e1086828701613dd8565b9350506020613e2186828701613dd8565b9250506040613e3286828701613dd8565b9150509250925092565b5f604082019050613e4f5f830185613754565b613e5c60208301846136dc565b9392505050565b5f81519050613e7181613922565b92915050565b5f60208284031215613e8c57613e8b61350c565b5b5f613e9984828501613e63565b91505092915050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613ed6600c83613486565b9150613ee182613ea2565b602082019050919050565b5f6020820190508181035f830152613f0381613eca565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613f64603983613486565b9150613f6f82613f0a565b604082019050919050565b5f6020820190508181035f830152613f9181613f58565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ff2602583613486565b9150613ffd82613f98565b604082019050919050565b5f6020820190508181035f83015261401f81613fe6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614080602483613486565b915061408b82614026565b604082019050919050565b5f6020820190508181035f8301526140ad81614074565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61410e602683613486565b9150614119826140b4565b604082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61419c602483613486565b91506141a782614142565b604082019050919050565b5f6020820190508181035f8301526141c981614190565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61422a602283613486565b9150614235826141d0565b604082019050919050565b5f6020820190508181035f8301526142578161421e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142b8602583613486565b91506142c38261425e565b604082019050919050565b5f6020820190508181035f8301526142e5816142ac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614346602383613486565b9150614351826142ec565b604082019050919050565b5f6020820190508181035f8301526143738161433a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143ae601683613486565b91506143b98261437a565b602082019050919050565b5f6020820190508181035f8301526143db816143a2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61443c603583613486565b9150614447826143e2565b604082019050919050565b5f6020820190508181035f83015261446981614430565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144a4601383613486565b91506144af82614470565b602082019050919050565b5f6020820190508181035f8301526144d181614498565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614532603683613486565b915061453d826144d8565b604082019050919050565b5f6020820190508181035f83015261455f81614526565b9050919050565b5f6145708261356e565b915061457b8361356e565b925082820390508181111561459357614592613ab8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145d481613544565b92915050565b5f602082840312156145ef576145ee61350c565b5b5f6145fc848285016145c6565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61463781613533565b82525050565b5f614648838361462e565b60208301905092915050565b5f602082019050919050565b5f61466a82614605565b614674818561460f565b935061467f8361461f565b805f5b838110156146af578151614696888261463d565b97506146a183614654565b925050600181019050614682565b5085935050505092915050565b5f60a0820190506146cf5f8301886136dc565b6146dc6020830187613d6a565b81810360408301526146ee8186614660565b90506146fd6060830185613754565b61470a60808301846136dc565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61476e602683613486565b915061477982614714565b604082019050919050565b5f6020820190508181035f83015261479b81614762565b905091905056fea2646970667358221220c2dfeed3d257490bddbb0e6ffaf83c0b62a2404cf7794d7045a78c1c5048d1cc64736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061028b575f3560e01c8063850283b311610159578063bbc0c742116100c0578063d85ba06311610079578063d85ba0631461097a578063dd62ed3e146109a4578063e2f45605146109e0578063eba4c33314610a0a578063f2fde38b14610a32578063f8b45b0514610a5a57610292565b8063bbc0c74214610884578063c0246668146108ae578063c18bc195146108d6578063c8c8ebe4146108fe578063cce987d414610928578063d257b34f1461095257610292565b80639a7a23d6116101125780639a7a23d614610758578063a457c2d714610780578063a672990c146107bc578063a9059cbb146107e4578063aacebbe314610820578063b62496f51461084857610292565b8063850283b31461066e578063881dce601461068a5780638da5cb5b146106b2578063924de9b7146106dc57806395d89b4114610704578063967ff23e1461072e57610292565b806349bd5a5e116101fd5780636ddd1713116101b65780636ddd17131461058c5780636fc3eaec146105b657806370a08231146105cc578063715018a61461060857806371fc46881461061e5780637571336a1461064657610292565b806349bd5a5e146104a85780634a62bb65146104d25780635e4ae81b146104fc57806367243482146105125780636a486a8e1461053a5780636db794371461056457610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a84565b6040516102b791906134ec565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906135a1565b610b14565b6040516102f391906135f9565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d9190613612565b610b31565b60405161032f91906135f9565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061363d565b610b4e565b005b34801561036b575f80fd5b50610374610be7565b60405161038191906136c3565b60405180910390f35b348015610395575f80fd5b5061039e610c0b565b6040516103ab91906136eb565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061363d565b610c14565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613704565b610d23565b60405161040f91906135f9565b60405180910390f35b348015610423575f80fd5b5061042c610e15565b6040516104399190613763565b60405180910390f35b34801561044d575f80fd5b50610456610e1b565b6040516104639190613797565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d91906135a1565b610e23565b60405161049f91906135f9565b60405180910390f35b3480156104b3575f80fd5b506104bc610eca565b6040516104c99190613763565b60405180910390f35b3480156104dd575f80fd5b506104e6610eee565b6040516104f391906135f9565b60405180910390f35b348015610507575f80fd5b50610510610f00565b005b34801561051d575f80fd5b5061053860048036038101906105339190613866565b610f97565b005b348015610545575f80fd5b5061054e61103a565b60405161055b91906136eb565b60405180910390f35b34801561056f575f80fd5b5061058a600480360381019061058591906138e4565b611040565b005b348015610597575f80fd5b506105a06110ce565b6040516105ad91906135f9565b60405180910390f35b3480156105c1575f80fd5b506105ca6110e1565b005b3480156105d7575f80fd5b506105f260048036038101906105ed9190613612565b61116f565b6040516105ff91906136eb565b60405180910390f35b348015610613575f80fd5b5061061c6111b4565b005b348015610629575f80fd5b50610644600480360381019061063f919061363d565b61123b565b005b348015610651575f80fd5b5061066c6004803603810190610667919061394c565b6112c1565b005b6106886004803603810190610683919061363d565b611395565b005b348015610695575f80fd5b506106b060048036038101906106ab919061363d565b611624565b005b3480156106bd575f80fd5b506106c66116e5565b6040516106d39190613763565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd919061398a565b61170d565b005b34801561070f575f80fd5b506107186117a6565b60405161072591906134ec565b60405180910390f35b348015610739575f80fd5b50610742611836565b60405161074f91906136eb565b60405180910390f35b348015610763575f80fd5b5061077e6004803603810190610779919061394c565b61183c565b005b34801561078b575f80fd5b506107a660048036038101906107a191906135a1565b611954565b6040516107b391906135f9565b60405180910390f35b3480156107c7575f80fd5b506107e260048036038101906107dd919061394c565b611a3a565b005b3480156107ef575f80fd5b5061080a600480360381019061080591906135a1565b611b62565b60405161081791906135f9565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613612565b611b7f565b005b348015610853575f80fd5b5061086e60048036038101906108699190613612565b611cb9565b60405161087b91906135f9565b60405180910390f35b34801561088f575f80fd5b50610898611cd6565b6040516108a591906135f9565b60405180910390f35b3480156108b9575f80fd5b506108d460048036038101906108cf919061394c565b611ce9565b005b3480156108e1575f80fd5b506108fc60048036038101906108f7919061363d565b611e0b565b005b348015610909575f80fd5b50610912611f1a565b60405161091f91906136eb565b60405180910390f35b348015610933575f80fd5b5061093c611f20565b60405161094991906136eb565b60405180910390f35b34801561095d575f80fd5b506109786004803603810190610973919061363d565b611f26565b005b348015610985575f80fd5b5061098e611fbf565b60405161099b91906136eb565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906139b5565b611fc5565b6040516109d791906136eb565b60405180910390f35b3480156109eb575f80fd5b506109f4612047565b604051610a0191906136eb565b60405180910390f35b348015610a15575f80fd5b50610a306004803603810190610a2b919061363d565b61204d565b005b348015610a3d575f80fd5b50610a586004803603810190610a539190613612565b6120d3565b005b348015610a65575f80fd5b50610a6e6121c9565b604051610a7b91906136eb565b60405180910390f35b606060038054610a9390613a20565b80601f0160208091040260200160405190810160405280929190818152602001828054610abf90613a20565b8015610b0a5780601f10610ae157610100808354040283529160200191610b0a565b820191905f5260205f20905b815481529060010190602001808311610aed57829003601f168201915b5050505050905090565b5f610b27610b206121cf565b84846121d6565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b566121cf565b73ffffffffffffffffffffffffffffffffffffffff16610b746116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190613a9a565b60405180910390fd5b670de0b6b3a764000081610bde9190613ae5565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610c1c6121cf565b73ffffffffffffffffffffffffffffffffffffffff16610c3a6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613a9a565b60405180910390fd5b670de0b6b3a76400006103e86001610ca6610c0b565b610cb09190613ae5565b610cba9190613b53565b610cc49190613b53565b811015610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613bf3565b60405180910390fd5b670de0b6b3a764000081610d1a9190613ae5565b60078190555050565b5f610d2f848484612399565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d766121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90613c81565b60405180910390fd5b610e0985610e016121cf565b8584036121d6565b60019150509392505050565b61dead81565b5f6012905090565b5f610ec0610e2f6121cf565b848460015f610e3c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ebb9190613c9f565b6121d6565b6001905092915050565b7f0000000000000000000000003f0fe2140d4ee3e366850a6cfb1630c0186d2a5f81565b600b5f9054906101000a900460ff1681565b610f086121cf565b73ffffffffffffffffffffffffffffffffffffffff16610f266116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613a9a565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f84849050118015610fae57508383905082829050145b610fb6575f80fd5b5f3390505f5b858590508110156110325761102582878784818110610fde57610fdd613cd2565b5b9050602002016020810190610ff39190613612565b670de0b6b3a764000087878681811061100f5761100e613cd2565b5b905060200201356110209190613ae5565b612399565b8080600101915050610fbc565b505050505050565b60105481565b6110486121cf565b73ffffffffffffffffffffffffffffffffffffffff166110666116e5565b73ffffffffffffffffffffffffffffffffffffffff16146110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390613a9a565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161112790613d2c565b5f6040518083038185875af1925050503d805f8114611161576040519150601f19603f3d011682016040523d82523d5f602084013e611166565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111bc6121cf565b73ffffffffffffffffffffffffffffffffffffffff166111da6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122790613a9a565b60405180910390fd5b6112395f612d72565b565b6112436121cf565b73ffffffffffffffffffffffffffffffffffffffff166112616116e5565b73ffffffffffffffffffffffffffffffffffffffff16146112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90613a9a565b60405180910390fd5b80600f8190555050565b6112c96121cf565b73ffffffffffffffffffffffffffffffffffffffff166112e76116e5565b73ffffffffffffffffffffffffffffffffffffffff161461133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613a9a565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61139d6121cf565b73ffffffffffffffffffffffffffffffffffffffff166113bb6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890613a9a565b60405180910390fd5b611443307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d61143e610c0b565b6121d6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148a3061116f565b5f806114946116e5565b426040518863ffffffff1660e01b81526004016114b696959493929190613d79565b60606040518083038185885af11580156114d2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114f79190613dec565b5050507f0000000000000000000000003f0fe2140d4ee3e366850a6cfb1630c0186d2a5f73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611595929190613e3c565b6020604051808303815f875af11580156115b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d59190613e77565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116646121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611683575f80fd5b61168c3061116f565b811115801561169a57505f81115b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613eec565b60405180910390fd5b6116e281612e35565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117156121cf565b73ffffffffffffffffffffffffffffffffffffffff166117336116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090613a9a565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546117b590613a20565b80601f01602080910402602001604051908101604052809291908181526020018280546117e190613a20565b801561182c5780601f106118035761010080835404028352916020019161182c565b820191905f5260205f20905b81548152906001019060200180831161180f57829003601f168201915b5050505050905090565b600e5481565b6118446121cf565b73ffffffffffffffffffffffffffffffffffffffff166118626116e5565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90613a9a565b60405180910390fd5b7f0000000000000000000000003f0fe2140d4ee3e366850a6cfb1630c0186d2a5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90613f7a565b60405180910390fd5b6119508282613068565b5050565b5f8060015f6119616121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290614008565b60405180910390fd5b611a2f611a266121cf565b858584036121d6565b600191505092915050565b611a426121cf565b73ffffffffffffffffffffffffffffffffffffffff16611a606116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613a9a565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611b75611b6e6121cf565b8484612399565b6001905092915050565b611b876121cf565b73ffffffffffffffffffffffffffffffffffffffff16611ba56116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a9a565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611cf16121cf565b73ffffffffffffffffffffffffffffffffffffffff16611d0f6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613a9a565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611dff91906135f9565b60405180910390a25050565b611e136121cf565b73ffffffffffffffffffffffffffffffffffffffff16611e316116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90613a9a565b60405180910390fd5b670de0b6b3a76400006103e86005611e9d610c0b565b611ea79190613ae5565b611eb19190613b53565b611ebb9190613b53565b811015611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490614096565b60405180910390fd5b670de0b6b3a764000081611f119190613ae5565b60098190555050565b60075481565b600a5481565b611f2e6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611f4c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990613a9a565b60405180910390fd5b670de0b6b3a764000081611fb69190613ae5565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120556121cf565b73ffffffffffffffffffffffffffffffffffffffff166120736116e5565b73ffffffffffffffffffffffffffffffffffffffff16146120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c090613a9a565b60405180910390fd5b8060108190555050565b6120db6121cf565b73ffffffffffffffffffffffffffffffffffffffff166120f96116e5565b73ffffffffffffffffffffffffffffffffffffffff161461214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214690613a9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b490614124565b60405180910390fd5b6121c681612d72565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b906141b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a990614240565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238c91906136eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906142ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9061435c565b60405180910390fd5b5f810361248c5761248783835f613106565b612d6d565b600b5f9054906101000a900460ff1615612997576124a86116e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251657506124e66116e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612588575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125a15750600560149054906101000a900460ff16155b156129965743600e54600c546125b79190613c9f565b106125cd57600a601081905550600a600f819055505b600b60019054906101000a900460ff166126bc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061267c575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b2906143c4565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612759575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612800576007548111156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90614452565b60405180910390fd5b6009546127af8361116f565b826127ba9190613c9f565b11156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f2906144ba565b60405180910390fd5b612995565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289d575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ec576007548111156128e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128de90614548565b60405180910390fd5b612994565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612993576009546129468361116f565b826129519190613c9f565b1115612992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612989906144ba565b60405180910390fd5b5b5b5b5b5b5f6129a13061116f565b90505f60085482101590508080156129c55750600b60029054906101000a900460ff165b80156129de5750600560149054906101000a900460ff16155b8015612a31575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a84575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad7575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6857600360145f4381526020019081526020015f20541015612b67576001600560146101000a81548160ff021916908315150217905550612b1961337b565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b519190613c9f565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c17575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c20575f90505b5f8115612d5d5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7e57505f601054115b15612cb257612cab6064612c9d6010548861344890919063ffffffff16565b61345d90919063ffffffff16565b9050612d3a565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0957505f600f54115b15612d3957612d366064612d28600f548861344890919063ffffffff16565b61345d90919063ffffffff16565b90505b5b5f811115612d4e57612d4d873083613106565b5b8085612d5a9190614566565b94505b612d68878787613106565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e5157612e50614599565b5b604051908082528060200260200182016040528015612e7f5781602001602082028036833780820191505090505b50905030815f81518110612e9657612e95613cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5d91906145da565b81600181518110612f7157612f70613cd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121d6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130379594939291906146bc565b5f604051808303815f87803b15801561304e575f80fd5b505af1158015613060573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316b906142ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d99061435c565b60405180910390fd5b6131ed838383613472565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326790614784565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fe9190613c9f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336291906136eb565b60405180910390a3613375848484613477565b50505050565b5f6133853061116f565b90505f808203613396575050613446565b600a548211156133a657600a5491505b5f8290506133b381612e35565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133fc90613d2c565b5f6040518083038185875af1925050503d805f8114613436576040519150601f19603f3d011682016040523d82523d5f602084013e61343b565b606091505b505080935050505050505b565b5f81836134559190613ae5565b905092915050565b5f818361346a9190613b53565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6134be8261347c565b6134c88185613486565b93506134d8818560208601613496565b6134e1816134a4565b840191505092915050565b5f6020820190508181035f83015261350481846134b4565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61353d82613514565b9050919050565b61354d81613533565b8114613557575f80fd5b50565b5f8135905061356881613544565b92915050565b5f819050919050565b6135808161356e565b811461358a575f80fd5b50565b5f8135905061359b81613577565b92915050565b5f80604083850312156135b7576135b661350c565b5b5f6135c48582860161355a565b92505060206135d58582860161358d565b9150509250929050565b5f8115159050919050565b6135f3816135df565b82525050565b5f60208201905061360c5f8301846135ea565b92915050565b5f602082840312156136275761362661350c565b5b5f6136348482850161355a565b91505092915050565b5f602082840312156136525761365161350c565b5b5f61365f8482850161358d565b91505092915050565b5f819050919050565b5f61368b61368661368184613514565b613668565b613514565b9050919050565b5f61369c82613671565b9050919050565b5f6136ad82613692565b9050919050565b6136bd816136a3565b82525050565b5f6020820190506136d65f8301846136b4565b92915050565b6136e58161356e565b82525050565b5f6020820190506136fe5f8301846136dc565b92915050565b5f805f6060848603121561371b5761371a61350c565b5b5f6137288682870161355a565b93505060206137398682870161355a565b925050604061374a8682870161358d565b9150509250925092565b61375d81613533565b82525050565b5f6020820190506137765f830184613754565b92915050565b5f60ff82169050919050565b6137918161377c565b82525050565b5f6020820190506137aa5f830184613788565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137d1576137d06137b0565b5b8235905067ffffffffffffffff8111156137ee576137ed6137b4565b5b60208301915083602082028301111561380a576138096137b8565b5b9250929050565b5f8083601f840112613826576138256137b0565b5b8235905067ffffffffffffffff811115613843576138426137b4565b5b60208301915083602082028301111561385f5761385e6137b8565b5b9250929050565b5f805f806040858703121561387e5761387d61350c565b5b5f85013567ffffffffffffffff81111561389b5761389a613510565b5b6138a7878288016137bc565b9450945050602085013567ffffffffffffffff8111156138ca576138c9613510565b5b6138d687828801613811565b925092505092959194509250565b5f80604083850312156138fa576138f961350c565b5b5f6139078582860161358d565b92505060206139188582860161358d565b9150509250929050565b61392b816135df565b8114613935575f80fd5b50565b5f8135905061394681613922565b92915050565b5f80604083850312156139625761396161350c565b5b5f61396f8582860161355a565b925050602061398085828601613938565b9150509250929050565b5f6020828403121561399f5761399e61350c565b5b5f6139ac84828501613938565b91505092915050565b5f80604083850312156139cb576139ca61350c565b5b5f6139d88582860161355a565b92505060206139e98582860161355a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a3757607f821691505b602082108103613a4a57613a496139f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a84602083613486565b9150613a8f82613a50565b602082019050919050565b5f6020820190508181035f830152613ab181613a78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aef8261356e565b9150613afa8361356e565b9250828202613b088161356e565b91508282048414831517613b1f57613b1e613ab8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b5d8261356e565b9150613b688361356e565b925082613b7857613b77613b26565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bdd602f83613486565b9150613be882613b83565b604082019050919050565b5f6020820190508181035f830152613c0a81613bd1565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c6b602883613486565b9150613c7682613c11565b604082019050919050565b5f6020820190508181035f830152613c9881613c5f565b9050919050565b5f613ca98261356e565b9150613cb48361356e565b9250828201905080821115613ccc57613ccb613ab8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f613d175f83613cff565b9150613d2282613d09565b5f82019050919050565b5f613d3682613d0c565b9150819050919050565b5f819050919050565b5f613d63613d5e613d5984613d40565b613668565b61356e565b9050919050565b613d7381613d49565b82525050565b5f60c082019050613d8c5f830189613754565b613d9960208301886136dc565b613da66040830187613d6a565b613db36060830186613d6a565b613dc06080830185613754565b613dcd60a08301846136dc565b979650505050505050565b5f81519050613de681613577565b92915050565b5f805f60608486031215613e0357613e0261350c565b5b5f613e1086828701613dd8565b9350506020613e2186828701613dd8565b9250506040613e3286828701613dd8565b9150509250925092565b5f604082019050613e4f5f830185613754565b613e5c60208301846136dc565b9392505050565b5f81519050613e7181613922565b92915050565b5f60208284031215613e8c57613e8b61350c565b5b5f613e9984828501613e63565b91505092915050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613ed6600c83613486565b9150613ee182613ea2565b602082019050919050565b5f6020820190508181035f830152613f0381613eca565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613f64603983613486565b9150613f6f82613f0a565b604082019050919050565b5f6020820190508181035f830152613f9181613f58565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ff2602583613486565b9150613ffd82613f98565b604082019050919050565b5f6020820190508181035f83015261401f81613fe6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614080602483613486565b915061408b82614026565b604082019050919050565b5f6020820190508181035f8301526140ad81614074565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61410e602683613486565b9150614119826140b4565b604082019050919050565b5f6020820190508181035f83015261413b81614102565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61419c602483613486565b91506141a782614142565b604082019050919050565b5f6020820190508181035f8301526141c981614190565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61422a602283613486565b9150614235826141d0565b604082019050919050565b5f6020820190508181035f8301526142578161421e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142b8602583613486565b91506142c38261425e565b604082019050919050565b5f6020820190508181035f8301526142e5816142ac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614346602383613486565b9150614351826142ec565b604082019050919050565b5f6020820190508181035f8301526143738161433a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143ae601683613486565b91506143b98261437a565b602082019050919050565b5f6020820190508181035f8301526143db816143a2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61443c603583613486565b9150614447826143e2565b604082019050919050565b5f6020820190508181035f83015261446981614430565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144a4601383613486565b91506144af82614470565b602082019050919050565b5f6020820190508181035f8301526144d181614498565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614532603683613486565b915061453d826144d8565b604082019050919050565b5f6020820190508181035f83015261455f81614526565b9050919050565b5f6145708261356e565b915061457b8361356e565b925082820390508181111561459357614592613ab8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145d481613544565b92915050565b5f602082840312156145ef576145ee61350c565b5b5f6145fc848285016145c6565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61463781613533565b82525050565b5f614648838361462e565b60208301905092915050565b5f602082019050919050565b5f61466a82614605565b614674818561460f565b935061467f8361461f565b805f5b838110156146af578151614696888261463d565b97506146a183614654565b925050600181019050614682565b5085935050505092915050565b5f60a0820190506146cf5f8301886136dc565b6146dc6020830187613d6a565b81810360408301526146ee8186614660565b90506146fd6060830185613754565b61470a60808301846136dc565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61476e602683613486565b915061477982614714565b604082019050919050565b5f6020820190508181035f83015261479b81614762565b905091905056fea2646970667358221220c2dfeed3d257490bddbb0e6ffaf83c0b62a2404cf7794d7045a78c1c5048d1cc64736f6c634300081a0033
Deployed Bytecode Sourcemap
11719:10958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8141:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12532:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15153:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11797:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15279:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8318:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11900:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7447:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11855:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12182:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14919:84;;;;;;;;;;;;;:::i;:::-;;17937:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12436:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17575:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12262:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16728:149;;;;;;;;;;;;;:::i;:::-;;7664:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6273:103;;;;;;;;;;;;;:::i;:::-;;17333:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15959:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14373:538;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16497:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6050:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16199:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7335:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12370:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16885:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9007:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15756:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7799:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17721:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12604:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12222:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16307:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15527:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12032:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12145:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15011:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12400:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7982:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12074:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17453:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6384:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12114:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:100;7281:13;7314:5;7307:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;:::o;8141:169::-;8224:4;8241:39;8250:12;:10;:12::i;:::-;8264:7;8273:6;8241:8;:39::i;:::-;8298:4;8291:11;;8141:169;;;;:::o;12532:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15153:118::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15254:8:::1;15241:9;:22;;;;:::i;:::-;15225:13;:38;;;;15153:118:::0;:::o;11797:51::-;;;:::o;7548:108::-;7609:7;7636:12;;7629:19;;7548:108;:::o;15279:240::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15402:4:::1;15394;15389:1;15373:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15372:26;;;;:::i;:::-;15371:35;;;;:::i;:::-;15361:6;:45;;15353:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15502:8;15492:6;:19;;;;:::i;:::-;15469:20;:42;;;;15279:240:::0;:::o;8318:458::-;8424:4;8441:36;8451:6;8459:9;8470:6;8441:9;:36::i;:::-;8490:24;8517:11;:19;8529:6;8517:19;;;;;;;;;;;;;;;:33;8537:12;:10;:12::i;:::-;8517:33;;;;;;;;;;;;;;;;8490:60;;8589:6;8569:16;:26;;8561:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8676:57;8685:6;8693:12;:10;:12::i;:::-;8726:6;8707:16;:25;8676:8;:57::i;:::-;8764:4;8757:11;;;8318:458;;;;;:::o;11900:53::-;11946:6;11900:53;:::o;7447:93::-;7505:5;7530:2;7523:9;;7447:93;:::o;8784:215::-;8872:4;8889:80;8898:12;:10;:12::i;:::-;8912:7;8958:10;8921:11;:25;8933:12;:10;:12::i;:::-;8921:25;;;;;;;;;;;;;;;:34;8947:7;8921:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8889:8;:80::i;:::-;8987:4;8980:11;;8784:215;;;;:::o;11855:38::-;;;:::o;12182:33::-;;;;;;;;;;;;;:::o;14919:84::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14990:5:::1;14973:14;;:22;;;;;;;;;;;;;;;;;;14919:84::o:0;17937:346::-;18059:1;18040:9;;:16;;:20;:58;;;;;18082:9;;:16;;18064:7;;:14;;:34;18040:58;18032:67;;;;;;18110:12;18125:10;18110:25;;18153:9;18148:128;18172:9;;:16;;18168:1;:20;18148:128;;;18210:54;18220:4;18226:9;;18236:1;18226:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18254:8;18240:7;;18248:1;18240:10;;;;;;;:::i;:::-;;;;;;;;:23;;;;:::i;:::-;18210:9;:54::i;:::-;18190:3;;;;;;;18148:128;;;;18021:262;17937:346;;;;:::o;12436:28::-;;;;:::o;17575:138::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17669:4:::1;17654:12;:19;;;;17700:5;17684:13;:21;;;;17575:138:::0;;:::o;12262:31::-;;;;;;;;;;;;;:::o;16728:149::-;16770:12;16814:15;;;;;;;;;;;16806:29;;16843:21;16806:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16793:76;;;;;16759:118;16728:149::o;7664:127::-;7738:7;7765:9;:18;7775:7;7765:18;;;;;;;;;;;;;;;;7758:25;;7664:127;;;:::o;6273:103::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6338:30:::1;6365:1;6338:18;:30::i;:::-;6273:103::o:0;17333:112::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17424:13:::1;17409:12;:28;;;;17333:112:::0;:::o;15959:144::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16091:4:::1;16049:31;:39;16081:6;16049:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15959:144:::0;;:::o;14373:538::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14451:64:::1;14468:4;14483:15;14501:13;:11;:13::i;:::-;14451:8;:64::i;:::-;14526:15;:31;;;14565:21;14596:4;14602:24;14620:4;14602:9;:24::i;:::-;14627:1;14629::::0;14631:7:::1;:5;:7::i;:::-;14639:15;14526:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14673:13;14666:29;;;14704:15;14722:14;14666:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14759:7;14750:6;:16;;;;14793:4;14777:13;;:20;;;;;;;;;;;;;;;;;;14822:4;14808:11;;:18;;;;;;;;;;;;;;;;;;14850:12;14837:10;:25;;;;14888:15;14873:12;:30;;;;14373:538:::0;:::o;16497:223::-;16577:15;;;;;;;;;;;16561:31;;:12;:10;:12::i;:::-;:31;;;16553:40;;;;;;16622:24;16640:4;16622:9;:24::i;:::-;16612:6;:34;;:48;;;;;16659:1;16650:6;:10;16612:48;16604:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16688:24;16705:6;16688:16;:24::i;:::-;16497:223;:::o;6050:87::-;6096:7;6123:6;;;;;;;;;;;6116:13;;6050:87;:::o;16199:100::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16284:7:::1;16270:11;;:21;;;;;;;;;;;;;;;;;;16199:100:::0;:::o;7335:104::-;7391:13;7424:7;7417:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7335:104;:::o;12370:21::-;;;;:::o;16885:244::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16992:13:::1;16984:21;;:4;:21;;::::0;16976:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17080:41;17109:4;17115:5;17080:28;:41::i;:::-;16885:244:::0;;:::o;9007:413::-;9100:4;9117:24;9144:11;:25;9156:12;:10;:12::i;:::-;9144:25;;;;;;;;;;;;;;;:34;9170:7;9144:34;;;;;;;;;;;;;;;;9117:61;;9217:15;9197:16;:35;;9189:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9310:67;9319:12;:10;:12::i;:::-;9333:7;9361:15;9342:16;:34;9310:8;:67::i;:::-;9408:4;9401:11;;;9007:413;;;;:::o;15756:195::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15888:4:::1;15842:31;:43;15874:10;15842:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;15939:4;15905:19;:31;15925:10;15905:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15756:195:::0;;:::o;7799:175::-;7885:4;7902:42;7912:12;:10;:12::i;:::-;7926:9;7937:6;7902:9;:42::i;:::-;7962:4;7955:11;;7799:175;;;;:::o;17721:208::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17858:15:::1;;;;;;;;;;;17815:59;;17838:18;17815:59;;;;;;;;;;;;17903:18;17885:15;;:36;;;;;;;;;;;;;;;;;;17721:208:::0;:::o;12604:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12222:33::-;;;;;;;;;;;;;:::o;16307:182::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:8:::1;16392:19;:28;16412:7;16392:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16463:7;16447:34;;;16472:8;16447:34;;;;;;:::i;:::-;;;;;;;;16307:182:::0;;:::o;15527:221::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15653:4:::1;15645;15640:1;15624:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15623:26;;;;:::i;:::-;15622:35;;;;:::i;:::-;15612:6;:45;;15604:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15731:8;15721:6;:19;;;;:::i;:::-;15709:9;:31;;;;15527:221:::0;:::o;12032:35::-;;;;:::o;12145:28::-;;;;:::o;15011:134::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15128:8:::1;15115:9;:22;;;;:::i;:::-;15094:18;:43;;;;15011:134:::0;:::o;12400:27::-;;;;:::o;7982:151::-;8071:7;8098:11;:18;8110:5;8098:18;;;;;;;;;;;;;;;:27;8117:7;8098:27;;;;;;;;;;;;;;;;8091:34;;7982:151;;;;:::o;12074:33::-;;;;:::o;17453:114::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17546:13:::1;17530;:29;;;;17453:114:::0;:::o;6384:201::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6493:1:::1;6473:22;;:8;:22;;::::0;6465:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6549:28;6568:8;6549:18;:28::i;:::-;6384:201:::0;:::o;12114:24::-;;;;:::o;5566:98::-;5619:7;5646:10;5639:17;;5566:98;:::o;11141:346::-;11260:1;11243:19;;:5;:19;;;11235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11341:1;11322:21;;:7;:21;;;11314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11425:6;11395:11;:18;11407:5;11395:18;;;;;;;;;;;;;;;:27;11414:7;11395:27;;;;;;;;;;;;;;;:36;;;;11463:7;11447:32;;11456:5;11447:32;;;11472:6;11447:32;;;;;;:::i;:::-;;;;;;;;11141:346;;;:::o;18291:3194::-;18405:1;18389:18;;:4;:18;;;18381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18482:1;18468:16;;:2;:16;;;18460:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18551:1;18541:6;:11;18537:93;;18569:28;18585:4;18591:2;18595:1;18569:15;:28::i;:::-;18612:7;;18537:93;18646:14;;;;;;;;;;;18642:1318;;;18689:7;:5;:7::i;:::-;18681:15;;:4;:15;;;;:32;;;;;18706:7;:5;:7::i;:::-;18700:13;;:2;:13;;;;18681:32;:52;;;;;18731:1;18717:16;;:2;:16;;;;18681:52;:77;;;;;18751:6;18737:21;;:2;:21;;;;18681:77;:90;;;;;18763:8;;;;;;;;;;;18762:9;18681:90;18677:1272;;;18821:12;18810:6;;18797:10;;:19;;;;:::i;:::-;18796:37;18792:191;;18921:2;18905:13;:18;;;;18961:2;18946:12;:17;;;;18792:191;19008:13;;;;;;;;;;;19003:150;;19054:19;:25;19074:4;19054:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19083:19;:23;19103:2;19083:23;;;;;;;;;;;;;;;;;;;;;;;;;19054:52;19046:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19003:150;19205:25;:31;19231:4;19205:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19241:31;:35;19273:2;19241:35;;;;;;;;;;;;;;;;;;;;;;;;;19240:36;19205:71;19201:733;;;19319:20;;19309:6;:30;;19301:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19454:9;;19437:13;19447:2;19437:9;:13::i;:::-;19428:6;:22;;;;:::i;:::-;:35;;19420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19201:733;;;19563:25;:29;19589:2;19563:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19597:31;:37;19629:4;19597:37;;;;;;;;;;;;;;;;;;;;;;;;;19596:38;19563:71;19559:375;;;19677:20;;19667:6;:30;;19659:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19559:375;;;19787:31;:35;19819:2;19787:35;;;;;;;;;;;;;;;;;;;;;;;;;19782:152;;19881:9;;19864:13;19874:2;19864:9;:13::i;:::-;19855:6;:22;;;;:::i;:::-;:35;;19847:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19782:152;19559:375;19201:733;18677:1272;18642:1318;19972:28;20003:24;20021:4;20003:9;:24::i;:::-;19972:55;;20040:12;20079:18;;20055:20;:42;;20040:57;;20128:7;:22;;;;;20139:11;;;;;;;;;;;20128:22;:35;;;;;20155:8;;;;;;;;;;;20154:9;20128:35;:71;;;;;20168:25;:31;20194:4;20168:31;;;;;;;;;;;;;;;;;;;;;;;;;20167:32;20128:71;:101;;;;;20204:19;:25;20224:4;20204:25;;;;;;;;;;;;;;;;;;;;;;;;;20203:26;20128:101;:146;;;;;20251:19;:23;20271:2;20251:23;;;;;;;;;;;;;;;;;;;;;;;;;20250:24;20128:146;20110:468;;;20370:1;20343:10;:24;20354:12;20343:24;;;;;;;;;;;;:28;20339:228;;;20403:4;20392:8;;:15;;;;;;;;;;;;;;;;;;20428:10;:8;:10::i;:::-;20470:5;20459:8;;:16;;;;;;;;;;;;;;;;;;20550:1;20523:10;:24;20534:12;20523:24;;;;;;;;;;;;:28;;;;:::i;:::-;20496:10;:24;20507:12;20496:24;;;;;;;;;;;:55;;;;20339:228;20110:468;20590:12;20606:8;;;;;;;;;;;20605:9;20590:24;;20716:19;:25;20736:4;20716:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20745:19;:23;20765:2;20745:23;;;;;;;;;;;;;;;;;;;;;;;;;20716:52;20712:100;;;20795:5;20785:15;;20712:100;20824:12;20929:7;20925:507;;;20981:25;:29;21007:2;20981:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;21030:1;21014:13;;:17;20981:50;20977:306;;;21059:34;21089:3;21059:25;21070:13;;21059:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21052:41;;20977:306;;;21155:25;:31;21181:4;21155:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;21205:1;21190:12;;:16;21155:51;21151:132;;;21234:33;21263:3;21234:24;21245:12;;21234:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;21227:40;;21151:132;20977:306;21310:1;21303:4;:8;21299:91;;;21332:42;21348:4;21362;21369;21332:15;:42::i;:::-;21299:91;21416:4;21406:14;;;;;:::i;:::-;;;20925:507;21444:33;21460:4;21466:2;21470:6;21444:15;:33::i;:::-;18370:3115;;;;18291:3194;;;;:::o;6593:191::-;6667:16;6686:6;;;;;;;;;;;6667:25;;6712:8;6703:6;;:17;;;;;;;;;;;;;;;;;;6767:8;6736:40;;6757:8;6736:40;;;;;;;;;;;;6656:128;6593:191;:::o;21493:589::-;21619:21;21657:1;21643:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21619:40;;21688:4;21670;21675:1;21670:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21714:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21704:4;21709:1;21704:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21749:62;21766:4;21781:15;21799:11;21749:8;:62::i;:::-;21850:15;:66;;;21931:11;21957:1;22001:4;22028;22048:15;21850:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21548:534;21493:589;:::o;17137:188::-;17254:5;17220:25;:31;17246:4;17220:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17311:5;17277:40;;17305:4;17277:40;;;;;;;;;;;;17137:188;;:::o;9428:699::-;9552:1;9534:20;;:6;:20;;;9526:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9636:1;9615:23;;:9;:23;;;9607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9691:47;9712:6;9720:9;9731:6;9691:20;:47::i;:::-;9751:21;9775:9;:17;9785:6;9775:17;;;;;;;;;;;;;;;;9751:41;;9828:6;9811:13;:23;;9803:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:6;9933:13;:22;9913:9;:17;9923:6;9913:17;;;;;;;;;;;;;;;:42;;;;10001:6;9977:9;:20;9987:9;9977:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10042:9;10025:35;;10034:6;10025:35;;;10053:6;10025:35;;;;;;:::i;:::-;;;;;;;;10073:46;10093:6;10101:9;10112:6;10073:19;:46::i;:::-;9515:612;9428:699;;;:::o;22090:584::-;22129:23;22155:24;22173:4;22155:9;:24::i;:::-;22129:50;;22190:12;22238:1;22219:15;:20;22215:59;;22256:7;;;;22215:59;22308:13;;22290:15;:31;22286:95;;;22356:13;;22338:31;;22286:95;22444:26;22473:15;22444:44;;22501:36;22518:18;22501:16;:36::i;:::-;22550:16;22569:21;22550:40;;22624:15;;;;;;;;;;;22616:29;;22653:8;22616:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22603:63;;;;;22118:556;;;;22090:584;:::o;3574:98::-;3632:7;3663:1;3659;:5;;;;:::i;:::-;3652:12;;3574:98;;;;:::o;3680:::-;3738:7;3769:1;3765;:5;;;;:::i;:::-;3758:12;;3680:98;;;;:::o;11495:91::-;;;;:::o;11594:90::-;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:60::-;4037:3;4058:5;4051:12;;4009:60;;;:::o;4075:142::-;4125:9;4158:53;4176:34;4185:24;4203:5;4185:24;:::i;:::-;4176:34;:::i;:::-;4158:53;:::i;:::-;4145:66;;4075:142;;;:::o;4223:126::-;4273:9;4306:37;4337:5;4306:37;:::i;:::-;4293:50;;4223:126;;;:::o;4355:152::-;4431:9;4464:37;4495:5;4464:37;:::i;:::-;4451:50;;4355:152;;;:::o;4513:183::-;4626:63;4683:5;4626:63;:::i;:::-;4621:3;4614:76;4513:183;;:::o;4702:274::-;4821:4;4859:2;4848:9;4844:18;4836:26;;4872:97;4966:1;4955:9;4951:17;4942:6;4872:97;:::i;:::-;4702:274;;;;:::o;4982:118::-;5069:24;5087:5;5069:24;:::i;:::-;5064:3;5057:37;4982:118;;:::o;5106:222::-;5199:4;5237:2;5226:9;5222:18;5214:26;;5250:71;5318:1;5307:9;5303:17;5294:6;5250:71;:::i;:::-;5106:222;;;;:::o;5334:619::-;5411:6;5419;5427;5476:2;5464:9;5455:7;5451:23;5447:32;5444:119;;;5482:79;;:::i;:::-;5444:119;5602:1;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5573:117;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5857:2;5883:53;5928:7;5919:6;5908:9;5904:22;5883:53;:::i;:::-;5873:63;;5828:118;5334:619;;;;;:::o;5959:118::-;6046:24;6064:5;6046:24;:::i;:::-;6041:3;6034:37;5959:118;;:::o;6083:222::-;6176:4;6214:2;6203:9;6199:18;6191:26;;6227:71;6295:1;6284:9;6280:17;6271:6;6227:71;:::i;:::-;6083:222;;;;:::o;6311:86::-;6346:7;6386:4;6379:5;6375:16;6364:27;;6311:86;;;:::o;6403:112::-;6486:22;6502:5;6486:22;:::i;:::-;6481:3;6474:35;6403:112;;:::o;6521:214::-;6610:4;6648:2;6637:9;6633:18;6625:26;;6661:67;6725:1;6714:9;6710:17;6701:6;6661:67;:::i;:::-;6521:214;;;;:::o;6741:117::-;6850:1;6847;6840:12;6864:117;6973:1;6970;6963:12;6987:117;7096:1;7093;7086:12;7127:568;7200:8;7210:6;7260:3;7253:4;7245:6;7241:17;7237:27;7227:122;;7268:79;;:::i;:::-;7227:122;7381:6;7368:20;7358:30;;7411:18;7403:6;7400:30;7397:117;;;7433:79;;:::i;:::-;7397:117;7547:4;7539:6;7535:17;7523:29;;7601:3;7593:4;7585:6;7581:17;7571:8;7567:32;7564:41;7561:128;;;7608:79;;:::i;:::-;7561:128;7127:568;;;;;:::o;7718:::-;7791:8;7801:6;7851:3;7844:4;7836:6;7832:17;7828:27;7818:122;;7859:79;;:::i;:::-;7818:122;7972:6;7959:20;7949:30;;8002:18;7994:6;7991:30;7988:117;;;8024:79;;:::i;:::-;7988:117;8138:4;8130:6;8126:17;8114:29;;8192:3;8184:4;8176:6;8172:17;8162:8;8158:32;8155:41;8152:128;;;8199:79;;:::i;:::-;8152:128;7718:568;;;;;:::o;8292:934::-;8414:6;8422;8430;8438;8487:2;8475:9;8466:7;8462:23;8458:32;8455:119;;;8493:79;;:::i;:::-;8455:119;8641:1;8630:9;8626:17;8613:31;8671:18;8663:6;8660:30;8657:117;;;8693:79;;:::i;:::-;8657:117;8806:80;8878:7;8869:6;8858:9;8854:22;8806:80;:::i;:::-;8788:98;;;;8584:312;8963:2;8952:9;8948:18;8935:32;8994:18;8986:6;8983:30;8980:117;;;9016:79;;:::i;:::-;8980:117;9129:80;9201:7;9192:6;9181:9;9177:22;9129:80;:::i;:::-;9111:98;;;;8906:313;8292:934;;;;;;;:::o;9232:474::-;9300:6;9308;9357:2;9345:9;9336:7;9332:23;9328:32;9325:119;;;9363:79;;:::i;:::-;9325:119;9483:1;9508:53;9553:7;9544:6;9533:9;9529:22;9508:53;:::i;:::-;9498:63;;9454:117;9610:2;9636:53;9681:7;9672:6;9661:9;9657:22;9636:53;:::i;:::-;9626:63;;9581:118;9232:474;;;;;:::o;9712:116::-;9782:21;9797:5;9782:21;:::i;:::-;9775:5;9772:32;9762:60;;9818:1;9815;9808:12;9762:60;9712:116;:::o;9834:133::-;9877:5;9915:6;9902:20;9893:29;;9931:30;9955:5;9931:30;:::i;:::-;9834:133;;;;:::o;9973:468::-;10038:6;10046;10095:2;10083:9;10074:7;10070:23;10066:32;10063:119;;;10101:79;;:::i;:::-;10063:119;10221:1;10246:53;10291:7;10282:6;10271:9;10267:22;10246:53;:::i;:::-;10236:63;;10192:117;10348:2;10374:50;10416:7;10407:6;10396:9;10392:22;10374:50;:::i;:::-;10364:60;;10319:115;9973:468;;;;;:::o;10447:323::-;10503:6;10552:2;10540:9;10531:7;10527:23;10523:32;10520:119;;;10558:79;;:::i;:::-;10520:119;10678:1;10703:50;10745:7;10736:6;10725:9;10721:22;10703:50;:::i;:::-;10693:60;;10649:114;10447:323;;;;:::o;10776:474::-;10844:6;10852;10901:2;10889:9;10880:7;10876:23;10872:32;10869:119;;;10907:79;;:::i;:::-;10869:119;11027:1;11052:53;11097:7;11088:6;11077:9;11073:22;11052:53;:::i;:::-;11042:63;;10998:117;11154:2;11180:53;11225:7;11216:6;11205:9;11201:22;11180:53;:::i;:::-;11170:63;;11125:118;10776:474;;;;;:::o;11256:180::-;11304:77;11301:1;11294:88;11401:4;11398:1;11391:15;11425:4;11422:1;11415:15;11442:320;11486:6;11523:1;11517:4;11513:12;11503:22;;11570:1;11564:4;11560:12;11591:18;11581:81;;11647:4;11639:6;11635:17;11625:27;;11581:81;11709:2;11701:6;11698:14;11678:18;11675:38;11672:84;;11728:18;;:::i;:::-;11672:84;11493:269;11442:320;;;:::o;11768:182::-;11908:34;11904:1;11896:6;11892:14;11885:58;11768:182;:::o;11956:366::-;12098:3;12119:67;12183:2;12178:3;12119:67;:::i;:::-;12112:74;;12195:93;12284:3;12195:93;:::i;:::-;12313:2;12308:3;12304:12;12297:19;;11956:366;;;:::o;12328:419::-;12494:4;12532:2;12521:9;12517:18;12509:26;;12581:9;12575:4;12571:20;12567:1;12556:9;12552:17;12545:47;12609:131;12735:4;12609:131;:::i;:::-;12601:139;;12328:419;;;:::o;12753:180::-;12801:77;12798:1;12791:88;12898:4;12895:1;12888:15;12922:4;12919:1;12912:15;12939:410;12979:7;13002:20;13020:1;13002:20;:::i;:::-;12997:25;;13036:20;13054:1;13036:20;:::i;:::-;13031:25;;13091:1;13088;13084:9;13113:30;13131:11;13113:30;:::i;:::-;13102:41;;13292:1;13283:7;13279:15;13276:1;13273:22;13253:1;13246:9;13226:83;13203:139;;13322:18;;:::i;:::-;13203:139;12987:362;12939:410;;;;:::o;13355:180::-;13403:77;13400:1;13393:88;13500:4;13497:1;13490:15;13524:4;13521:1;13514:15;13541:185;13581:1;13598:20;13616:1;13598:20;:::i;:::-;13593:25;;13632:20;13650:1;13632:20;:::i;:::-;13627:25;;13671:1;13661:35;;13676:18;;:::i;:::-;13661:35;13718:1;13715;13711:9;13706:14;;13541:185;;;;:::o;13732:234::-;13872:34;13868:1;13860:6;13856:14;13849:58;13941:17;13936:2;13928:6;13924:15;13917:42;13732:234;:::o;13972:366::-;14114:3;14135:67;14199:2;14194:3;14135:67;:::i;:::-;14128:74;;14211:93;14300:3;14211:93;:::i;:::-;14329:2;14324:3;14320:12;14313:19;;13972:366;;;:::o;14344:419::-;14510:4;14548:2;14537:9;14533:18;14525:26;;14597:9;14591:4;14587:20;14583:1;14572:9;14568:17;14561:47;14625:131;14751:4;14625:131;:::i;:::-;14617:139;;14344:419;;;:::o;14769:227::-;14909:34;14905:1;14897:6;14893:14;14886:58;14978:10;14973:2;14965:6;14961:15;14954:35;14769:227;:::o;15002:366::-;15144:3;15165:67;15229:2;15224:3;15165:67;:::i;:::-;15158:74;;15241:93;15330:3;15241:93;:::i;:::-;15359:2;15354:3;15350:12;15343:19;;15002:366;;;:::o;15374:419::-;15540:4;15578:2;15567:9;15563:18;15555:26;;15627:9;15621:4;15617:20;15613:1;15602:9;15598:17;15591:47;15655:131;15781:4;15655:131;:::i;:::-;15647:139;;15374:419;;;:::o;15799:191::-;15839:3;15858:20;15876:1;15858:20;:::i;:::-;15853:25;;15892:20;15910:1;15892:20;:::i;:::-;15887:25;;15935:1;15932;15928:9;15921:16;;15956:3;15953:1;15950:10;15947:36;;;15963:18;;:::i;:::-;15947:36;15799:191;;;;:::o;15996:180::-;16044:77;16041:1;16034:88;16141:4;16138:1;16131:15;16165:4;16162:1;16155:15;16182:147;16283:11;16320:3;16305:18;;16182:147;;;;:::o;16335:114::-;;:::o;16455:398::-;16614:3;16635:83;16716:1;16711:3;16635:83;:::i;:::-;16628:90;;16727:93;16816:3;16727:93;:::i;:::-;16845:1;16840:3;16836:11;16829:18;;16455:398;;;:::o;16859:379::-;17043:3;17065:147;17208:3;17065:147;:::i;:::-;17058:154;;17229:3;17222:10;;16859:379;;;:::o;17244:85::-;17289:7;17318:5;17307:16;;17244:85;;;:::o;17335:158::-;17393:9;17426:61;17444:42;17453:32;17479:5;17453:32;:::i;:::-;17444:42;:::i;:::-;17426:61;:::i;:::-;17413:74;;17335:158;;;:::o;17499:147::-;17594:45;17633:5;17594:45;:::i;:::-;17589:3;17582:58;17499:147;;:::o;17652:807::-;17901:4;17939:3;17928:9;17924:19;17916:27;;17953:71;18021:1;18010:9;18006:17;17997:6;17953:71;:::i;:::-;18034:72;18102:2;18091:9;18087:18;18078:6;18034:72;:::i;:::-;18116:80;18192:2;18181:9;18177:18;18168:6;18116:80;:::i;:::-;18206;18282:2;18271:9;18267:18;18258:6;18206:80;:::i;:::-;18296:73;18364:3;18353:9;18349:19;18340:6;18296:73;:::i;:::-;18379;18447:3;18436:9;18432:19;18423:6;18379:73;:::i;:::-;17652:807;;;;;;;;;:::o;18465:143::-;18522:5;18553:6;18547:13;18538:22;;18569:33;18596:5;18569:33;:::i;:::-;18465:143;;;;:::o;18614:663::-;18702:6;18710;18718;18767:2;18755:9;18746:7;18742:23;18738:32;18735:119;;;18773:79;;:::i;:::-;18735:119;18893:1;18918:64;18974:7;18965:6;18954:9;18950:22;18918:64;:::i;:::-;18908:74;;18864:128;19031:2;19057:64;19113:7;19104:6;19093:9;19089:22;19057:64;:::i;:::-;19047:74;;19002:129;19170:2;19196:64;19252:7;19243:6;19232:9;19228:22;19196:64;:::i;:::-;19186:74;;19141:129;18614:663;;;;;:::o;19283:332::-;19404:4;19442:2;19431:9;19427:18;19419:26;;19455:71;19523:1;19512:9;19508:17;19499:6;19455:71;:::i;:::-;19536:72;19604:2;19593:9;19589:18;19580:6;19536:72;:::i;:::-;19283:332;;;;;:::o;19621:137::-;19675:5;19706:6;19700:13;19691:22;;19722:30;19746:5;19722:30;:::i;:::-;19621:137;;;;:::o;19764:345::-;19831:6;19880:2;19868:9;19859:7;19855:23;19851:32;19848:119;;;19886:79;;:::i;:::-;19848:119;20006:1;20031:61;20084:7;20075:6;20064:9;20060:22;20031:61;:::i;:::-;20021:71;;19977:125;19764:345;;;;:::o;20115:162::-;20255:14;20251:1;20243:6;20239:14;20232:38;20115:162;:::o;20283:366::-;20425:3;20446:67;20510:2;20505:3;20446:67;:::i;:::-;20439:74;;20522:93;20611:3;20522:93;:::i;:::-;20640:2;20635:3;20631:12;20624:19;;20283:366;;;:::o;20655:419::-;20821:4;20859:2;20848:9;20844:18;20836:26;;20908:9;20902:4;20898:20;20894:1;20883:9;20879:17;20872:47;20936:131;21062:4;20936:131;:::i;:::-;20928:139;;20655:419;;;:::o;21080:244::-;21220:34;21216:1;21208:6;21204:14;21197:58;21289:27;21284:2;21276:6;21272:15;21265:52;21080:244;:::o;21330:366::-;21472:3;21493:67;21557:2;21552:3;21493:67;:::i;:::-;21486:74;;21569:93;21658:3;21569:93;:::i;:::-;21687:2;21682:3;21678:12;21671:19;;21330:366;;;:::o;21702:419::-;21868:4;21906:2;21895:9;21891:18;21883:26;;21955:9;21949:4;21945:20;21941:1;21930:9;21926:17;21919:47;21983:131;22109:4;21983:131;:::i;:::-;21975:139;;21702:419;;;:::o;22127:224::-;22267:34;22263:1;22255:6;22251:14;22244:58;22336:7;22331:2;22323:6;22319:15;22312:32;22127:224;:::o;22357:366::-;22499:3;22520:67;22584:2;22579:3;22520:67;:::i;:::-;22513:74;;22596:93;22685:3;22596:93;:::i;:::-;22714:2;22709:3;22705:12;22698:19;;22357:366;;;:::o;22729:419::-;22895:4;22933:2;22922:9;22918:18;22910:26;;22982:9;22976:4;22972:20;22968:1;22957:9;22953:17;22946:47;23010:131;23136:4;23010:131;:::i;:::-;23002:139;;22729:419;;;:::o;23154:223::-;23294:34;23290:1;23282:6;23278:14;23271:58;23363:6;23358:2;23350:6;23346:15;23339:31;23154:223;:::o;23383:366::-;23525:3;23546:67;23610:2;23605:3;23546:67;:::i;:::-;23539:74;;23622:93;23711:3;23622:93;:::i;:::-;23740:2;23735:3;23731:12;23724:19;;23383:366;;;:::o;23755:419::-;23921:4;23959:2;23948:9;23944:18;23936:26;;24008:9;24002:4;23998:20;23994:1;23983:9;23979:17;23972:47;24036:131;24162:4;24036:131;:::i;:::-;24028:139;;23755:419;;;:::o;24180:225::-;24320:34;24316:1;24308:6;24304:14;24297:58;24389:8;24384:2;24376:6;24372:15;24365:33;24180:225;:::o;24411:366::-;24553:3;24574:67;24638:2;24633:3;24574:67;:::i;:::-;24567:74;;24650:93;24739:3;24650:93;:::i;:::-;24768:2;24763:3;24759:12;24752:19;;24411:366;;;:::o;24783:419::-;24949:4;24987:2;24976:9;24972:18;24964:26;;25036:9;25030:4;25026:20;25022:1;25011:9;25007:17;25000:47;25064:131;25190:4;25064:131;:::i;:::-;25056:139;;24783:419;;;:::o;25208:223::-;25348:34;25344:1;25336:6;25332:14;25325:58;25417:6;25412:2;25404:6;25400:15;25393:31;25208:223;:::o;25437:366::-;25579:3;25600:67;25664:2;25659:3;25600:67;:::i;:::-;25593:74;;25676:93;25765:3;25676:93;:::i;:::-;25794:2;25789:3;25785:12;25778:19;;25437:366;;;:::o;25809:419::-;25975:4;26013:2;26002:9;25998:18;25990:26;;26062:9;26056:4;26052:20;26048:1;26037:9;26033:17;26026:47;26090:131;26216:4;26090:131;:::i;:::-;26082:139;;25809:419;;;:::o;26234:221::-;26374:34;26370:1;26362:6;26358:14;26351:58;26443:4;26438:2;26430:6;26426:15;26419:29;26234:221;:::o;26461:366::-;26603:3;26624:67;26688:2;26683:3;26624:67;:::i;:::-;26617:74;;26700:93;26789:3;26700:93;:::i;:::-;26818:2;26813:3;26809:12;26802:19;;26461:366;;;:::o;26833:419::-;26999:4;27037:2;27026:9;27022:18;27014:26;;27086:9;27080:4;27076:20;27072:1;27061:9;27057:17;27050:47;27114:131;27240:4;27114:131;:::i;:::-;27106:139;;26833:419;;;:::o;27258:224::-;27398:34;27394:1;27386:6;27382:14;27375:58;27467:7;27462:2;27454:6;27450:15;27443:32;27258:224;:::o;27488:366::-;27630:3;27651:67;27715:2;27710:3;27651:67;:::i;:::-;27644:74;;27727:93;27816:3;27727:93;:::i;:::-;27845:2;27840:3;27836:12;27829:19;;27488:366;;;:::o;27860:419::-;28026:4;28064:2;28053:9;28049:18;28041:26;;28113:9;28107:4;28103:20;28099:1;28088:9;28084:17;28077:47;28141:131;28267:4;28141:131;:::i;:::-;28133:139;;27860:419;;;:::o;28285:222::-;28425:34;28421:1;28413:6;28409:14;28402:58;28494:5;28489:2;28481:6;28477:15;28470:30;28285:222;:::o;28513:366::-;28655:3;28676:67;28740:2;28735:3;28676:67;:::i;:::-;28669:74;;28752:93;28841:3;28752:93;:::i;:::-;28870:2;28865:3;28861:12;28854:19;;28513:366;;;:::o;28885:419::-;29051:4;29089:2;29078:9;29074:18;29066:26;;29138:9;29132:4;29128:20;29124:1;29113:9;29109:17;29102:47;29166:131;29292:4;29166:131;:::i;:::-;29158:139;;28885:419;;;:::o;29310:172::-;29450:24;29446:1;29438:6;29434:14;29427:48;29310:172;:::o;29488:366::-;29630:3;29651:67;29715:2;29710:3;29651:67;:::i;:::-;29644:74;;29727:93;29816:3;29727:93;:::i;:::-;29845:2;29840:3;29836:12;29829:19;;29488:366;;;:::o;29860:419::-;30026:4;30064:2;30053:9;30049:18;30041:26;;30113:9;30107:4;30103:20;30099:1;30088:9;30084:17;30077:47;30141:131;30267:4;30141:131;:::i;:::-;30133:139;;29860:419;;;:::o;30285:240::-;30425:34;30421:1;30413:6;30409:14;30402:58;30494:23;30489:2;30481:6;30477:15;30470:48;30285:240;:::o;30531:366::-;30673:3;30694:67;30758:2;30753:3;30694:67;:::i;:::-;30687:74;;30770:93;30859:3;30770:93;:::i;:::-;30888:2;30883:3;30879:12;30872:19;;30531:366;;;:::o;30903:419::-;31069:4;31107:2;31096:9;31092:18;31084:26;;31156:9;31150:4;31146:20;31142:1;31131:9;31127:17;31120:47;31184:131;31310:4;31184:131;:::i;:::-;31176:139;;30903:419;;;:::o;31328:169::-;31468:21;31464:1;31456:6;31452:14;31445:45;31328:169;:::o;31503:366::-;31645:3;31666:67;31730:2;31725:3;31666:67;:::i;:::-;31659:74;;31742:93;31831:3;31742:93;:::i;:::-;31860:2;31855:3;31851:12;31844:19;;31503:366;;;:::o;31875:419::-;32041:4;32079:2;32068:9;32064:18;32056:26;;32128:9;32122:4;32118:20;32114:1;32103:9;32099:17;32092:47;32156:131;32282:4;32156:131;:::i;:::-;32148:139;;31875:419;;;:::o;32300:241::-;32440:34;32436:1;32428:6;32424:14;32417:58;32509:24;32504:2;32496:6;32492:15;32485:49;32300:241;:::o;32547:366::-;32689:3;32710:67;32774:2;32769:3;32710:67;:::i;:::-;32703:74;;32786:93;32875:3;32786:93;:::i;:::-;32904:2;32899:3;32895:12;32888:19;;32547:366;;;:::o;32919:419::-;33085:4;33123:2;33112:9;33108:18;33100:26;;33172:9;33166:4;33162:20;33158:1;33147:9;33143:17;33136:47;33200:131;33326:4;33200:131;:::i;:::-;33192:139;;32919:419;;;:::o;33344:194::-;33384:4;33404:20;33422:1;33404:20;:::i;:::-;33399:25;;33438:20;33456:1;33438:20;:::i;:::-;33433:25;;33482:1;33479;33475:9;33467:17;;33506:1;33500:4;33497:11;33494:37;;;33511:18;;:::i;:::-;33494:37;33344:194;;;;:::o;33544:180::-;33592:77;33589:1;33582:88;33689:4;33686:1;33679:15;33713:4;33710:1;33703:15;33730:143;33787:5;33818:6;33812:13;33803:22;;33834:33;33861:5;33834:33;:::i;:::-;33730:143;;;;:::o;33879:351::-;33949:6;33998:2;33986:9;33977:7;33973:23;33969:32;33966:119;;;34004:79;;:::i;:::-;33966:119;34124:1;34149:64;34205:7;34196:6;34185:9;34181:22;34149:64;:::i;:::-;34139:74;;34095:128;33879:351;;;;:::o;34236:114::-;34303:6;34337:5;34331:12;34321:22;;34236:114;;;:::o;34356:184::-;34455:11;34489:6;34484:3;34477:19;34529:4;34524:3;34520:14;34505:29;;34356:184;;;;:::o;34546:132::-;34613:4;34636:3;34628:11;;34666:4;34661:3;34657:14;34649:22;;34546:132;;;:::o;34684:108::-;34761:24;34779:5;34761:24;:::i;:::-;34756:3;34749:37;34684:108;;:::o;34798:179::-;34867:10;34888:46;34930:3;34922:6;34888:46;:::i;:::-;34966:4;34961:3;34957:14;34943:28;;34798:179;;;;:::o;34983:113::-;35053:4;35085;35080:3;35076:14;35068:22;;34983:113;;;:::o;35132:732::-;35251:3;35280:54;35328:5;35280:54;:::i;:::-;35350:86;35429:6;35424:3;35350:86;:::i;:::-;35343:93;;35460:56;35510:5;35460:56;:::i;:::-;35539:7;35570:1;35555:284;35580:6;35577:1;35574:13;35555:284;;;35656:6;35650:13;35683:63;35742:3;35727:13;35683:63;:::i;:::-;35676:70;;35769:60;35822:6;35769:60;:::i;:::-;35759:70;;35615:224;35602:1;35599;35595:9;35590:14;;35555:284;;;35559:14;35855:3;35848:10;;35256:608;;;35132:732;;;;:::o;35870:831::-;36133:4;36171:3;36160:9;36156:19;36148:27;;36185:71;36253:1;36242:9;36238:17;36229:6;36185:71;:::i;:::-;36266:80;36342:2;36331:9;36327:18;36318:6;36266:80;:::i;:::-;36393:9;36387:4;36383:20;36378:2;36367:9;36363:18;36356:48;36421:108;36524:4;36515:6;36421:108;:::i;:::-;36413:116;;36539:72;36607:2;36596:9;36592:18;36583:6;36539:72;:::i;:::-;36621:73;36689:3;36678:9;36674:19;36665:6;36621:73;:::i;:::-;35870:831;;;;;;;;:::o;36707:225::-;36847:34;36843:1;36835:6;36831:14;36824:58;36916:8;36911:2;36903:6;36899:15;36892:33;36707:225;:::o;36938:366::-;37080:3;37101:67;37165:2;37160:3;37101:67;:::i;:::-;37094:74;;37177:93;37266:3;37177:93;:::i;:::-;37295:2;37290:3;37286:12;37279:19;;36938:366;;;:::o;37310:419::-;37476:4;37514:2;37503:9;37499:18;37491:26;;37563:9;37557:4;37553:20;37549:1;37538:9;37534:17;37527:47;37591:131;37717:4;37591:131;:::i;:::-;37583:139;;37310:419;;;:::o
Swarm Source
ipfs://c2dfeed3d257490bddbb0e6ffaf83c0b62a2404cf7794d7045a78c1c5048d1cc
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.