ERC-20
Overview
Max Total Supply
10,000,000 OAT
Holders
33
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
84,124.411352777402779113 OATValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OATNetwork
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-18 */ /* Oat Network socials : Website : https://www.oatchain.io/ Telegram : https://t.me/OatPortal Twitter : https://twitter.com/OatLayer2 Docs : https://oat-chain.gitbook.io/oat-network */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /* Abstract Contracts */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } 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); } } /* Library Definitions */ 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; } } } /* Interface Definitions */ interface IAntiDrainer { function isEnabled(address token) external view returns (bool); function check(address from, address to, address pair, uint256 maximumWalletAmt, uint256 maximumTransactionAmtAmount, uint256 taxSwapThreshold) external returns (bool); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address 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); } contract ERC20 is Context, IERC20 { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function 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 transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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 _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 _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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /* Main Contract */ contract OATNetwork is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapRouter; address public uniswapPair; address public mw; address public dw; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint256 public maximumTransactionAmt; uint256 public taxSwapThreshold; uint256 public maximumWalletAmt; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellDevFee; uint256 public tokensForMarket; uint256 public tokensForDev; address private antiDrainer; bool private swapping; mapping(address => bool) private isBlackList; mapping(address => bool) public isExcludedFromFees; mapping(address => bool) public isExcludemaximumTransactionAmt; mapping(address => bool) public ammPairs; constructor() ERC20("Oat Network", "OAT") { uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH()); //antiDrainer = ; mw = address(0x637F19476023D08bCA6CFd3a2F3aAB39Bd70fe17); dw = address(0x1AA403E711b2f78494B5b13B771b8A1679F45924); isExcludemaximumTransactionAmt[address(uniswapRouter)] = true; isExcludemaximumTransactionAmt[address(uniswapPair)] = true; isExcludemaximumTransactionAmt[owner()] = true; isExcludemaximumTransactionAmt[address(this)] = true; isExcludemaximumTransactionAmt[address(0xdead)] = true; isExcludedFromFees[owner()] = true; isExcludedFromFees[address(this)] = true; isExcludedFromFees[address(0xdead)] = true; ammPairs[address(uniswapPair)] = true; uint256 totalSupply = 10_000_000 * 1e18; taxSwapThreshold = (totalSupply * 5) / 50000; // 0.01% swap wallet maximumTransactionAmt = 120_000 * 1e18; // 2% from total supply maximumTransactionAmtTxn maximumWalletAmt = 200_000 * 1e18; // 2% from total supply maximumWalletAmt buyMarketingFee = 20; buyDevFee = 0; buyTotalFees = buyMarketingFee + buyDevFee; sellMarketingFee = 35; sellDevFee = 0; sellTotalFees = sellMarketingFee + sellDevFee; _mint(msg.sender, totalSupply); } receive() external payable {} function openTrade() external onlyOwner { tradingActive = true; swapEnabled = true; } function openTradeWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } function excludeFrommaximumTransactionAmt(address addr, bool value) external onlyOwner { isExcludemaximumTransactionAmt[addr] = value; } function excludeFromFees(address account, bool value) external onlyOwner { isExcludedFromFees[account] = value; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updatemaximumWalletAmts(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maximumWalletAmt lower than 0.5%"); maximumWalletAmt = newNum * (10**18); } function updatetaxSwapThreshold(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); taxSwapThreshold = newAmount; return true; } function updatemaximumTransactionAmts(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maximumTransactionAmt lower than 0.1%"); maximumTransactionAmt = newNum * (10**18); } function updateBuyFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketingFee = newMarketFee; buyDevFee = newDevFee; buyTotalFees = buyMarketingFee + buyDevFee; require(buyTotalFees <= 95, "Must keep fees at 95% or less"); } function updateSellFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketingFee = newMarketFee; sellDevFee = newDevFee; sellTotalFees = sellMarketingFee + sellDevFee; require(sellTotalFees <= 95, "Must keep fees at 95% or less"); } function setAntiDrainer(address newAntiDrainer) external onlyOwner { require(newAntiDrainer != address(0x0), "Invalid anti-drainer"); antiDrainer = newAntiDrainer; } function setAMMPair(address pair, bool value) external onlyOwner { require(pair != uniswapPair, "The pair cannot be removed from ammPairs"); ammPairs[pair] = value; } function setBlackList(address addr, bool enable) external onlyOwner { isBlackList[addr] = enable; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > taxSwapThreshold * 20) contractBalance = taxSwapThreshold * 20; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarket = 0; tokensForDev = 0; (success, ) = address(dw).call{value: ethForDev}(""); (success, ) = address(mw).call{ value: address(this).balance }(""); } 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] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!isBlackList[from], "[from] black list"); require(!isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active."); } //when buy if (ammPairs[from] && !isExcludemaximumTransactionAmt[to]) { require(amount <= maximumTransactionAmt, "Buy transfer amount exceeds the maximumTransactionAmt."); require(amount + balanceOf(to) <= maximumWalletAmt, "Max wallet exceeded"); } //when sell else if (ammPairs[to] && !isExcludemaximumTransactionAmt[from]) { require(amount <= maximumTransactionAmt, "Sell transfer amount exceeds the maximumTransactionAmt."); } else if (!isExcludemaximumTransactionAmt[to]) { require(amount + balanceOf(to) <= maximumWalletAmt, "Max wallet exceeded"); } } } if (antiDrainer != address(0) && IAntiDrainer(antiDrainer).isEnabled(address(this))) { bool check = IAntiDrainer(antiDrainer).check(from, to, address(uniswapPair), maximumWalletAmt, maximumTransactionAmt, taxSwapThreshold); require(check, "Anti Drainer Enabled"); } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= taxSwapThreshold; if (canSwap && swapEnabled && !swapping && !ammPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (isExcludedFromFees[from] || isExcludedFromFees[to]) takeFee = false; uint256 fee = 0; if (takeFee) { // on sell if (ammPairs[to] && sellTotalFees > 0) { fee = amount.mul(sellTotalFees).div(100); tokensForDev += (fee * sellDevFee) / sellTotalFees; tokensForMarket += (fee * sellMarketingFee) / sellTotalFees; } // on buy else if (ammPairs[from] && buyTotalFees > 0) { fee = amount.mul(buyTotalFees).div(100); tokensForDev += (fee * buyDevFee) / buyTotalFees; tokensForMarket += (fee * buyMarketingFee) / buyTotalFees; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dw","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFrommaximumTransactionAmt","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaximumTransactionAmt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTransactionAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mw","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradeWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAntiDrainer","type":"address"}],"name":"setAntiDrainer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","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":"newNum","type":"uint256"}],"name":"updatemaximumTransactionAmts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaximumWalletAmts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatetaxSwapThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526000600860146101000a81548160ff0219169083151502179055506000600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600b81526020017f4f6174204e6574776f726b0000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4f415400000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000e792919062000a79565b5080600190805190602001906200010092919062000a79565b5050506200012362000117620007fd60201b60201c565b6200080560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df919062000b93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f919062000b93565b6040518363ffffffff1660e01b81526004016200028e92919062000bd6565b6020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000b93565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073637f19476023d08bca6cfd3a2f3aab39bd70fe17600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731aa403e711b2f78494b5b13b771b8a1679f45924600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016017600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000620004a8620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000620005c1620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016016600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006a084595161401484a000000905061c35060058262000760919062000c3c565b6200076c919062000ccc565b600a81905550691969368974c05b000000600981905550692a5a058fc295ed000000600b819055506014600d819055506000600e81905550600e54600d54620007b6919062000d04565b600c8190555060236010819055506000601181905550601154601054620007de919062000d04565b600f81905550620007f63382620008f560201b60201c565b5062000e77565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200095f9062000dc2565b60405180910390fd5b6200097c6000838362000a6f60201b60201c565b806002600082825462000990919062000d04565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009e8919062000d04565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a4f919062000df5565b60405180910390a362000a6b6000838362000a7460201b60201c565b5050565b505050565b505050565b82805462000a879062000e41565b90600052602060002090601f01602090048101928262000aab576000855562000af7565b82601f1062000ac657805160ff191683800117855562000af7565b8280016001018555821562000af7579182015b8281111562000af657825182559160200191906001019062000ad9565b5b50905062000b06919062000b0a565b5090565b5b8082111562000b2557600081600090555060010162000b0b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b5b8262000b2e565b9050919050565b62000b6d8162000b4e565b811462000b7957600080fd5b50565b60008151905062000b8d8162000b62565b92915050565b60006020828403121562000bac5762000bab62000b29565b5b600062000bbc8482850162000b7c565b91505092915050565b62000bd08162000b4e565b82525050565b600060408201905062000bed600083018562000bc5565b62000bfc602083018462000bc5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c498262000c03565b915062000c568362000c03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c925762000c9162000c0d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd98262000c03565b915062000ce68362000c03565b92508262000cf95762000cf862000c9d565b5b828204905092915050565b600062000d118262000c03565b915062000d1e8362000c03565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d565762000d5562000c0d565b5b828201905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000daa601f8362000d61565b915062000db78262000d72565b602082019050919050565b6000602082019050818103600083015262000ddd8162000d9b565b9050919050565b62000def8162000c03565b82525050565b600060208201905062000e0c600083018462000de4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5a57607f821691505b6020821081141562000e715762000e7062000e12565b5b50919050565b60805161518062000ea86000396000818161134a015281816137b50152818161389601526138bd01526151806000f3fe6080604052600436106102b25760003560e01c80638655100c11610175578063a742d78c116100dc578063c2c8f1f511610095578063d85ba0631161006f578063d85ba06314610ad7578063dd62ed3e14610b02578063f2fde38b14610b3f578063fb201b1d14610b68576102b9565b8063c2c8f1f514610a46578063c816841b14610a6f578063cb9ebe0514610a9a576102b9565b8063a742d78c14610936578063a9059cbb14610961578063ad6312f21461099e578063bae14e1d146109c9578063bbc0c742146109f2578063c024666814610a1d576102b9565b80639fccce321161012e5780639fccce3214610812578063a0d82dc51461083d578063a108b96314610868578063a457c2d714610891578063a4c445fd146108ce578063a72905a2146108f9576102b9565b80638655100c146107145780638da5cb5b1461073d5780639213691314610768578063924de9b71461079357806395d89b41146107bc5780639c3b4fdc146107e7576102b9565b80635e7b655c1161021957806370a08231116101d257806370a0823114610616578063715018a614610653578063735de9f71461066a578063751039fc146106955780637afb6cae146106c05780637bce5a04146106e9576102b9565b80635e7b655c146105185780636664fed41461054357806366ca9b831461056e57806368092bd9146105975780636a486a8e146105c05780636ddd1713146105eb576102b9565b80632d99d32e1161026b5780632d99d32e146103e2578063313ce5671461040b57806339509351146104365780634a62bb65146104735780634fbee1931461049e578063588f60e5146104db576102b9565b806302dbd8f8146102be57806306fdde03146102e7578063095ea7b31461031257806318160ddd1461034f5780631f7ea8da1461037a57806323b872dd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e091906139a4565b610b7f565b005b3480156102f357600080fd5b506102fc610c69565b6040516103099190613a7d565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613afd565b610cfb565b6040516103469190613b58565b60405180910390f35b34801561035b57600080fd5b50610364610d19565b6040516103719190613b82565b60405180910390f35b34801561038657600080fd5b5061038f610d23565b60405161039c9190613b82565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613b9d565b610d29565b6040516103d99190613b58565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c1c565b610e21565b005b34801561041757600080fd5b50610420610f89565b60405161042d9190613c78565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613afd565b610f92565b60405161046a9190613b58565b60405180910390f35b34801561047f57600080fd5b5061048861103e565b6040516104959190613b58565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613c93565b611051565b6040516104d29190613b58565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190613c93565b611071565b60405161050f9190613b58565b60405180910390f35b34801561052457600080fd5b5061052d611091565b60405161053a9190613b82565b60405180910390f35b34801561054f57600080fd5b50610558611097565b6040516105659190613b82565b60405180910390f35b34801561057a57600080fd5b50610595600480360381019061059091906139a4565b61109d565b005b3480156105a357600080fd5b506105be60048036038101906105b99190613c1c565b611187565b005b3480156105cc57600080fd5b506105d561125e565b6040516105e29190613b82565b60405180910390f35b3480156105f757600080fd5b50610600611264565b60405161060d9190613b58565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613c93565b611277565b60405161064a9190613b82565b60405180910390f35b34801561065f57600080fd5b506106686112c0565b005b34801561067657600080fd5b5061067f611348565b60405161068c9190613d1f565b60405180910390f35b3480156106a157600080fd5b506106aa61136c565b6040516106b79190613b58565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613d3a565b61140c565b005b3480156106f557600080fd5b506106fe61151b565b60405161070b9190613b82565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190613c1c565b611521565b005b34801561074957600080fd5b506107526115f8565b60405161075f9190613d76565b60405180910390f35b34801561077457600080fd5b5061077d611622565b60405161078a9190613b82565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613d91565b611628565b005b3480156107c857600080fd5b506107d16116c1565b6040516107de9190613a7d565b60405180910390f35b3480156107f357600080fd5b506107fc611753565b6040516108099190613b82565b60405180910390f35b34801561081e57600080fd5b50610827611759565b6040516108349190613b82565b60405180910390f35b34801561084957600080fd5b5061085261175f565b60405161085f9190613b82565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190613e20565b611765565b005b34801561089d57600080fd5b506108b860048036038101906108b39190613afd565b6119f0565b6040516108c59190613b58565b60405180910390f35b3480156108da57600080fd5b506108e3611adb565b6040516108f09190613b82565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b9190613c93565b611ae1565b60405161092d9190613b58565b60405180910390f35b34801561094257600080fd5b5061094b611b01565b6040516109589190613d76565b60405180910390f35b34801561096d57600080fd5b5061098860048036038101906109839190613afd565b611b27565b6040516109959190613b58565b60405180910390f35b3480156109aa57600080fd5b506109b3611b45565b6040516109c09190613d76565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb9190613c93565b611b6b565b005b3480156109fe57600080fd5b50610a07611c9b565b604051610a149190613b58565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613c1c565b611cae565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613d3a565b611d85565b005b348015610a7b57600080fd5b50610a84611e94565b604051610a919190613d76565b60405180910390f35b348015610aa657600080fd5b50610ac16004803603810190610abc9190613d3a565b611eba565b604051610ace9190613b58565b60405180910390f35b348015610ae357600080fd5b50610aec61200f565b604051610af99190613b82565b60405180910390f35b348015610b0e57600080fd5b50610b296004803603810190610b249190613e73565b612015565b604051610b369190613b82565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b619190613c93565b61209c565b005b348015610b7457600080fd5b50610b7d612194565b005b610b87612248565b73ffffffffffffffffffffffffffffffffffffffff16610ba56115f8565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613eff565b60405180910390fd5b8160108190555080601181905550601154601054610c199190613f4e565b600f81905550605f600f541115610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613ff0565b60405180910390fd5b5050565b606060008054610c789061403f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca49061403f565b8015610cf15780601f10610cc657610100808354040283529160200191610cf1565b820191906000526020600020905b815481529060010190602001808311610cd457829003601f168201915b5050505050905090565b6000610d0f610d08612248565b8484612250565b6001905092915050565b6000600254905090565b60125481565b6000610d3684848461241b565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d81612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906140e3565b60405180910390fd5b610e1585610e0d612248565b858403612250565b60019150509392505050565b610e29612248565b73ffffffffffffffffffffffffffffffffffffffff16610e476115f8565b73ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490613eff565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590614175565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6000611034610f9f612248565b848460046000610fad612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9190613f4e565b612250565b6001905092915050565b600860169054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b600a5481565b600b5481565b6110a5612248565b73ffffffffffffffffffffffffffffffffffffffff166110c36115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613eff565b60405180910390fd5b81600d8190555080600e81905550600e54600d546111379190613f4e565b600c81905550605f600c541115611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90613ff0565b60405180910390fd5b5050565b61118f612248565b73ffffffffffffffffffffffffffffffffffffffff166111ad6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613eff565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c8612248565b73ffffffffffffffffffffffffffffffffffffffff166112e66115f8565b73ffffffffffffffffffffffffffffffffffffffff161461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390613eff565b60405180910390fd5b61134660006131ab565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611376612248565b73ffffffffffffffffffffffffffffffffffffffff166113946115f8565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e190613eff565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b611414612248565b73ffffffffffffffffffffffffffffffffffffffff166114326115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90613eff565b60405180910390fd5b670de0b6b3a76400006103e8600561149e610d19565b6114a89190614195565b6114b2919061421e565b6114bc919061421e565b8110156114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f5906142c1565b60405180910390fd5b670de0b6b3a7640000816115129190614195565b600b8190555050565b600d5481565b611529612248565b73ffffffffffffffffffffffffffffffffffffffff166115476115f8565b73ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613eff565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b611630612248565b73ffffffffffffffffffffffffffffffffffffffff1661164e6115f8565b73ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613eff565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b6060600180546116d09061403f565b80601f01602080910402602001604051908101604052809291908181526020018280546116fc9061403f565b80156117495780601f1061171e57610100808354040283529160200191611749565b820191906000526020600020905b81548152906001019060200180831161172c57829003601f168201915b5050505050905090565b600e5481565b60135481565b60115481565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016118189594939291906142f0565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e670000000000000000000000000000000000008152508051906020012060006040516020016118a493929190614343565b604051602081830303815290604052805190602001209050600082826040516020016118d19291906143f2565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161190e9493929190614429565b6020604051602081039080840390855afa158015611930573d6000803e3d6000fd5b5050506020604051035190506119446115f8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906144ba565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600080600460006119ff612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab39061454c565b60405180910390fd5b611ad0611ac7612248565b85858403612250565b600191505092915050565b60095481565b60186020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b3b611b34612248565b848461241b565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b73612248565b73ffffffffffffffffffffffffffffffffffffffff16611b916115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90613eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e906145b8565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860149054906101000a900460ff1681565b611cb6612248565b73ffffffffffffffffffffffffffffffffffffffff16611cd46115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190613eff565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d8d612248565b73ffffffffffffffffffffffffffffffffffffffff16611dab6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890613eff565b60405180910390fd5b670de0b6b3a76400006103e86001611e17610d19565b611e219190614195565b611e2b919061421e565b611e35919061421e565b811015611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e9061464a565b60405180910390fd5b670de0b6b3a764000081611e8b9190614195565b60098190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ec4612248565b73ffffffffffffffffffffffffffffffffffffffff16611ee26115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f90613eff565b60405180910390fd5b620186a06001611f46610d19565b611f509190614195565b611f5a919061421e565b821015611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f93906146dc565b60405180910390fd5b6103e86005611fa9610d19565b611fb39190614195565b611fbd919061421e565b821115611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff69061476e565b60405180910390fd5b81600a8190555060019050919050565b600c5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120a4612248565b73ffffffffffffffffffffffffffffffffffffffff166120c26115f8565b73ffffffffffffffffffffffffffffffffffffffff1614612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f90614800565b60405180910390fd5b612191816131ab565b50565b61219c612248565b73ffffffffffffffffffffffffffffffffffffffff166121ba6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220790613eff565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790614892565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790614924565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161240e9190613b82565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561248b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612482906149b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f290614a48565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257f90614ab4565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90614b20565b60405180910390fd5b600081141561262f5761262a83836000613271565b6131a6565b600860169054906101000a900460ff1615612b285761264c6115f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126ba575061268a6115f8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126f35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561272d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612744575060148054906101000a900460ff16155b15612b2757600860149054906101000a900460ff1661283e57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127fe5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283490614b8c565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e15750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129885760095481111561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292290614c1e565b60405180910390fd5b600b5461293783611277565b826129429190613f4e565b1115612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a90614c8a565b60405180910390fd5b612b26565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a7a57600954811115612a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6c90614d1c565b60405180910390fd5b612b25565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b2457600b54612ad783611277565b82612ae29190613f4e565b1115612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90614c8a565b60405180910390fd5b5b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612c1f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639015d371306040518263ffffffff1660e01b8152600401612bdd9190613d76565b602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614d51565b5b15612d3a576000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a20527fc8585600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54600954600a546040518763ffffffff1660e01b8152600401612cb396959493929190614d7e565b6020604051808303816000875af1158015612cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf69190614d51565b905080612d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2f90614e2b565b60405180910390fd5b505b6000612d4530611277565b90506000600a548210159050808015612d6a5750600860159054906101000a900460ff165b8015612d81575060148054906101000a900460ff16155b8015612dd75750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e2d5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e835750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ec55760016014806101000a81548160ff021916908315150217905550612eaa6134f5565b60006014806101000a81548160ff0219169083151502179055505b600060148054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f795750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f8357600090505b6000811561319657601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612fe657506000600f54115b15613080576130136064613005600f54886136e090919063ffffffff16565b6136f690919063ffffffff16565b9050600f54601154826130269190614195565b613030919061421e565b601360008282546130419190613f4e565b92505081905550600f54601054826130599190614195565b613063919061421e565b601260008282546130749190613f4e565b92505081905550613172565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130db57506000600c54115b156131715761310860646130fa600c54886136e090919063ffffffff16565b6136f690919063ffffffff16565b9050600c54600e548261311b9190614195565b613125919061421e565b601360008282546131369190613f4e565b92505081905550600c54600d548261314e9190614195565b613158919061421e565b601260008282546131699190613f4e565b925050819055505b5b600081111561318757613186873083613271565b5b80856131939190614e4b565b94505b6131a1878787613271565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156132e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d8906149b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334890614a48565b60405180910390fd5b61335c83838361370c565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133da90614ef1565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134789190613f4e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134dc9190613b82565b60405180910390a36134ef848484613711565b50505050565b600061350030611277565b905060006013546012546135149190613f4e565b90506000808314806135265750600082145b15613533575050506136de565b6014600a546135429190614195565b83111561355b576014600a546135589190614195565b92505b600047905061356984613716565b600061357e824761395390919063ffffffff16565b905060006135a98561359b601354856136e090919063ffffffff16565b6136f690919063ffffffff16565b905060006012819055506000601381905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161360190614f42565b60006040518083038185875af1925050503d806000811461363e576040519150601f19603f3d011682016040523d82523d6000602084013e613643565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161368f90614f42565b60006040518083038185875af1925050503d80600081146136cc576040519150601f19603f3d011682016040523d82523d6000602084013e6136d1565b606091505b5050809450505050505050505b565b600081836136ee9190614195565b905092915050565b60008183613704919061421e565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561373357613732614f57565b5b6040519080825280602002602001820160405280156137615781602001602082028036833780820191505090505b509050308160008151811061377957613778614f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561381e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138429190614fca565b8160018151811061385657613855614f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138bb307f000000000000000000000000000000000000000000000000000000000000000084612250565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161391d9594939291906150f0565b600060405180830381600087803b15801561393757600080fd5b505af115801561394b573d6000803e3d6000fd5b505050505050565b600081836139619190614e4b565b905092915050565b600080fd5b6000819050919050565b6139818161396e565b811461398c57600080fd5b50565b60008135905061399e81613978565b92915050565b600080604083850312156139bb576139ba613969565b5b60006139c98582860161398f565b92505060206139da8582860161398f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a1e578082015181840152602081019050613a03565b83811115613a2d576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a4f826139e4565b613a5981856139ef565b9350613a69818560208601613a00565b613a7281613a33565b840191505092915050565b60006020820190508181036000830152613a978184613a44565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613aca82613a9f565b9050919050565b613ada81613abf565b8114613ae557600080fd5b50565b600081359050613af781613ad1565b92915050565b60008060408385031215613b1457613b13613969565b5b6000613b2285828601613ae8565b9250506020613b338582860161398f565b9150509250929050565b60008115159050919050565b613b5281613b3d565b82525050565b6000602082019050613b6d6000830184613b49565b92915050565b613b7c8161396e565b82525050565b6000602082019050613b976000830184613b73565b92915050565b600080600060608486031215613bb657613bb5613969565b5b6000613bc486828701613ae8565b9350506020613bd586828701613ae8565b9250506040613be68682870161398f565b9150509250925092565b613bf981613b3d565b8114613c0457600080fd5b50565b600081359050613c1681613bf0565b92915050565b60008060408385031215613c3357613c32613969565b5b6000613c4185828601613ae8565b9250506020613c5285828601613c07565b9150509250929050565b600060ff82169050919050565b613c7281613c5c565b82525050565b6000602082019050613c8d6000830184613c69565b92915050565b600060208284031215613ca957613ca8613969565b5b6000613cb784828501613ae8565b91505092915050565b6000819050919050565b6000613ce5613ce0613cdb84613a9f565b613cc0565b613a9f565b9050919050565b6000613cf782613cca565b9050919050565b6000613d0982613cec565b9050919050565b613d1981613cfe565b82525050565b6000602082019050613d346000830184613d10565b92915050565b600060208284031215613d5057613d4f613969565b5b6000613d5e8482850161398f565b91505092915050565b613d7081613abf565b82525050565b6000602082019050613d8b6000830184613d67565b92915050565b600060208284031215613da757613da6613969565b5b6000613db584828501613c07565b91505092915050565b613dc781613c5c565b8114613dd257600080fd5b50565b600081359050613de481613dbe565b92915050565b6000819050919050565b613dfd81613dea565b8114613e0857600080fd5b50565b600081359050613e1a81613df4565b92915050565b600080600060608486031215613e3957613e38613969565b5b6000613e4786828701613dd5565b9350506020613e5886828701613e0b565b9250506040613e6986828701613e0b565b9150509250925092565b60008060408385031215613e8a57613e89613969565b5b6000613e9885828601613ae8565b9250506020613ea985828601613ae8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ee96020836139ef565b9150613ef482613eb3565b602082019050919050565b60006020820190508181036000830152613f1881613edc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f598261396e565b9150613f648361396e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f9957613f98613f1f565b5b828201905092915050565b7f4d757374206b656570206665657320617420393525206f72206c657373000000600082015250565b6000613fda601d836139ef565b9150613fe582613fa4565b602082019050919050565b6000602082019050818103600083015261400981613fcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061405757607f821691505b6020821081141561406b5761406a614010565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006140cd6028836139ef565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b600061415f6028836139ef565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b60006141a08261396e565b91506141ab8361396e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141e4576141e3613f1f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142298261396e565b91506142348361396e565b925082614244576142436141ef565b5b828204905092915050565b7f43616e6e6f7420736574206d6178696d756d57616c6c6574416d74206c6f776560008201527f72207468616e20302e3525000000000000000000000000000000000000000000602082015250565b60006142ab602b836139ef565b91506142b68261424f565b604082019050919050565b600060208201905081810360008301526142da8161429e565b9050919050565b6142ea81613dea565b82525050565b600060a08201905061430560008301886142e1565b61431260208301876142e1565b61431f60408301866142e1565b61432c6060830185613b73565b6143396080830184613d67565b9695505050505050565b600060608201905061435860008301866142e1565b61436560208301856142e1565b6143726040830184613b73565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006143bb60028361437a565b91506143c682614385565b600282019050919050565b6000819050919050565b6143ec6143e782613dea565b6143d1565b82525050565b60006143fd826143ae565b915061440982856143db565b60208201915061441982846143db565b6020820191508190509392505050565b600060808201905061443e60008301876142e1565b61444b6020830186613c69565b61445860408301856142e1565b61446560608301846142e1565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006144a46011836139ef565b91506144af8261446e565b602082019050919050565b600060208201905081810360008301526144d381614497565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006145366025836139ef565b9150614541826144da565b604082019050919050565b6000602082019050818103600083015261456581614529565b9050919050565b7f496e76616c696420616e74692d647261696e6572000000000000000000000000600082015250565b60006145a26014836139ef565b91506145ad8261456c565b602082019050919050565b600060208201905081810360008301526145d181614595565b9050919050565b7f43616e6e6f7420736574206d6178696d756d5472616e73616374696f6e416d7460008201527f206c6f776572207468616e20302e312500000000000000000000000000000000602082015250565b60006146346030836139ef565b915061463f826145d8565b604082019050919050565b6000602082019050818103600083015261466381614627565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006146c66035836139ef565b91506146d18261466a565b604082019050919050565b600060208201905081810360008301526146f5816146b9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006147586034836139ef565b9150614763826146fc565b604082019050919050565b600060208201905081810360008301526147878161474b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147ea6026836139ef565b91506147f58261478e565b604082019050919050565b60006020820190508181036000830152614819816147dd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061487c6024836139ef565b915061488782614820565b604082019050919050565b600060208201905081810360008301526148ab8161486f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061490e6022836139ef565b9150614919826148b2565b604082019050919050565b6000602082019050818103600083015261493d81614901565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149a06025836139ef565b91506149ab82614944565b604082019050919050565b600060208201905081810360008301526149cf81614993565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a326023836139ef565b9150614a3d826149d6565b604082019050919050565b60006020820190508181036000830152614a6181614a25565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b6000614a9e6011836139ef565b9150614aa982614a68565b602082019050919050565b60006020820190508181036000830152614acd81614a91565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614b0a600f836139ef565b9150614b1582614ad4565b602082019050919050565b60006020820190508181036000830152614b3981614afd565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614b766016836139ef565b9150614b8182614b40565b602082019050919050565b60006020820190508181036000830152614ba581614b69565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178696d756d5472616e73616374696f6e416d742e00000000000000000000602082015250565b6000614c086036836139ef565b9150614c1382614bac565b604082019050919050565b60006020820190508181036000830152614c3781614bfb565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614c746013836139ef565b9150614c7f82614c3e565b602082019050919050565b60006020820190508181036000830152614ca381614c67565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178696d756d5472616e73616374696f6e416d742e000000000000000000602082015250565b6000614d066037836139ef565b9150614d1182614caa565b604082019050919050565b60006020820190508181036000830152614d3581614cf9565b9050919050565b600081519050614d4b81613bf0565b92915050565b600060208284031215614d6757614d66613969565b5b6000614d7584828501614d3c565b91505092915050565b600060c082019050614d936000830189613d67565b614da06020830188613d67565b614dad6040830187613d67565b614dba6060830186613b73565b614dc76080830185613b73565b614dd460a0830184613b73565b979650505050505050565b7f416e746920447261696e657220456e61626c6564000000000000000000000000600082015250565b6000614e156014836139ef565b9150614e2082614ddf565b602082019050919050565b60006020820190508181036000830152614e4481614e08565b9050919050565b6000614e568261396e565b9150614e618361396e565b925082821015614e7457614e73613f1f565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614edb6026836139ef565b9150614ee682614e7f565b604082019050919050565b60006020820190508181036000830152614f0a81614ece565b9050919050565b600081905092915050565b50565b6000614f2c600083614f11565b9150614f3782614f1c565b600082019050919050565b6000614f4d82614f1f565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614fc481613ad1565b92915050565b600060208284031215614fe057614fdf613969565b5b6000614fee84828501614fb5565b91505092915050565b6000819050919050565b600061501c61501761501284614ff7565b613cc0565b61396e565b9050919050565b61502c81615001565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61506781613abf565b82525050565b6000615079838361505e565b60208301905092915050565b6000602082019050919050565b600061509d82615032565b6150a7818561503d565b93506150b28361504e565b8060005b838110156150e35781516150ca888261506d565b97506150d583615085565b9250506001810190506150b6565b5085935050505092915050565b600060a0820190506151056000830188613b73565b6151126020830187615023565b81810360408301526151248186615092565b90506151336060830185613d67565b6151406080830184613b73565b969550505050505056fea264697066735822122055b332e9006a1ae3046ed3a7a523ab374dea7623ded2f4a7b1c5fc11682122df64736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c80638655100c11610175578063a742d78c116100dc578063c2c8f1f511610095578063d85ba0631161006f578063d85ba06314610ad7578063dd62ed3e14610b02578063f2fde38b14610b3f578063fb201b1d14610b68576102b9565b8063c2c8f1f514610a46578063c816841b14610a6f578063cb9ebe0514610a9a576102b9565b8063a742d78c14610936578063a9059cbb14610961578063ad6312f21461099e578063bae14e1d146109c9578063bbc0c742146109f2578063c024666814610a1d576102b9565b80639fccce321161012e5780639fccce3214610812578063a0d82dc51461083d578063a108b96314610868578063a457c2d714610891578063a4c445fd146108ce578063a72905a2146108f9576102b9565b80638655100c146107145780638da5cb5b1461073d5780639213691314610768578063924de9b71461079357806395d89b41146107bc5780639c3b4fdc146107e7576102b9565b80635e7b655c1161021957806370a08231116101d257806370a0823114610616578063715018a614610653578063735de9f71461066a578063751039fc146106955780637afb6cae146106c05780637bce5a04146106e9576102b9565b80635e7b655c146105185780636664fed41461054357806366ca9b831461056e57806368092bd9146105975780636a486a8e146105c05780636ddd1713146105eb576102b9565b80632d99d32e1161026b5780632d99d32e146103e2578063313ce5671461040b57806339509351146104365780634a62bb65146104735780634fbee1931461049e578063588f60e5146104db576102b9565b806302dbd8f8146102be57806306fdde03146102e7578063095ea7b31461031257806318160ddd1461034f5780631f7ea8da1461037a57806323b872dd146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e091906139a4565b610b7f565b005b3480156102f357600080fd5b506102fc610c69565b6040516103099190613a7d565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613afd565b610cfb565b6040516103469190613b58565b60405180910390f35b34801561035b57600080fd5b50610364610d19565b6040516103719190613b82565b60405180910390f35b34801561038657600080fd5b5061038f610d23565b60405161039c9190613b82565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190613b9d565b610d29565b6040516103d99190613b58565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c1c565b610e21565b005b34801561041757600080fd5b50610420610f89565b60405161042d9190613c78565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613afd565b610f92565b60405161046a9190613b58565b60405180910390f35b34801561047f57600080fd5b5061048861103e565b6040516104959190613b58565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613c93565b611051565b6040516104d29190613b58565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190613c93565b611071565b60405161050f9190613b58565b60405180910390f35b34801561052457600080fd5b5061052d611091565b60405161053a9190613b82565b60405180910390f35b34801561054f57600080fd5b50610558611097565b6040516105659190613b82565b60405180910390f35b34801561057a57600080fd5b50610595600480360381019061059091906139a4565b61109d565b005b3480156105a357600080fd5b506105be60048036038101906105b99190613c1c565b611187565b005b3480156105cc57600080fd5b506105d561125e565b6040516105e29190613b82565b60405180910390f35b3480156105f757600080fd5b50610600611264565b60405161060d9190613b58565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613c93565b611277565b60405161064a9190613b82565b60405180910390f35b34801561065f57600080fd5b506106686112c0565b005b34801561067657600080fd5b5061067f611348565b60405161068c9190613d1f565b60405180910390f35b3480156106a157600080fd5b506106aa61136c565b6040516106b79190613b58565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613d3a565b61140c565b005b3480156106f557600080fd5b506106fe61151b565b60405161070b9190613b82565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190613c1c565b611521565b005b34801561074957600080fd5b506107526115f8565b60405161075f9190613d76565b60405180910390f35b34801561077457600080fd5b5061077d611622565b60405161078a9190613b82565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613d91565b611628565b005b3480156107c857600080fd5b506107d16116c1565b6040516107de9190613a7d565b60405180910390f35b3480156107f357600080fd5b506107fc611753565b6040516108099190613b82565b60405180910390f35b34801561081e57600080fd5b50610827611759565b6040516108349190613b82565b60405180910390f35b34801561084957600080fd5b5061085261175f565b60405161085f9190613b82565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190613e20565b611765565b005b34801561089d57600080fd5b506108b860048036038101906108b39190613afd565b6119f0565b6040516108c59190613b58565b60405180910390f35b3480156108da57600080fd5b506108e3611adb565b6040516108f09190613b82565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b9190613c93565b611ae1565b60405161092d9190613b58565b60405180910390f35b34801561094257600080fd5b5061094b611b01565b6040516109589190613d76565b60405180910390f35b34801561096d57600080fd5b5061098860048036038101906109839190613afd565b611b27565b6040516109959190613b58565b60405180910390f35b3480156109aa57600080fd5b506109b3611b45565b6040516109c09190613d76565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb9190613c93565b611b6b565b005b3480156109fe57600080fd5b50610a07611c9b565b604051610a149190613b58565b60405180910390f35b348015610a2957600080fd5b50610a446004803603810190610a3f9190613c1c565b611cae565b005b348015610a5257600080fd5b50610a6d6004803603810190610a689190613d3a565b611d85565b005b348015610a7b57600080fd5b50610a84611e94565b604051610a919190613d76565b60405180910390f35b348015610aa657600080fd5b50610ac16004803603810190610abc9190613d3a565b611eba565b604051610ace9190613b58565b60405180910390f35b348015610ae357600080fd5b50610aec61200f565b604051610af99190613b82565b60405180910390f35b348015610b0e57600080fd5b50610b296004803603810190610b249190613e73565b612015565b604051610b369190613b82565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b619190613c93565b61209c565b005b348015610b7457600080fd5b50610b7d612194565b005b610b87612248565b73ffffffffffffffffffffffffffffffffffffffff16610ba56115f8565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613eff565b60405180910390fd5b8160108190555080601181905550601154601054610c199190613f4e565b600f81905550605f600f541115610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613ff0565b60405180910390fd5b5050565b606060008054610c789061403f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca49061403f565b8015610cf15780601f10610cc657610100808354040283529160200191610cf1565b820191906000526020600020905b815481529060010190602001808311610cd457829003601f168201915b5050505050905090565b6000610d0f610d08612248565b8484612250565b6001905092915050565b6000600254905090565b60125481565b6000610d3684848461241b565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d81612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906140e3565b60405180910390fd5b610e1585610e0d612248565b858403612250565b60019150509392505050565b610e29612248565b73ffffffffffffffffffffffffffffffffffffffff16610e476115f8565b73ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490613eff565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590614175565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6000611034610f9f612248565b848460046000610fad612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9190613f4e565b612250565b6001905092915050565b600860169054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b600a5481565b600b5481565b6110a5612248565b73ffffffffffffffffffffffffffffffffffffffff166110c36115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613eff565b60405180910390fd5b81600d8190555080600e81905550600e54600d546111379190613f4e565b600c81905550605f600c541115611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90613ff0565b60405180910390fd5b5050565b61118f612248565b73ffffffffffffffffffffffffffffffffffffffff166111ad6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613eff565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c8612248565b73ffffffffffffffffffffffffffffffffffffffff166112e66115f8565b73ffffffffffffffffffffffffffffffffffffffff161461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390613eff565b60405180910390fd5b61134660006131ab565b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000611376612248565b73ffffffffffffffffffffffffffffffffffffffff166113946115f8565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e190613eff565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b611414612248565b73ffffffffffffffffffffffffffffffffffffffff166114326115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90613eff565b60405180910390fd5b670de0b6b3a76400006103e8600561149e610d19565b6114a89190614195565b6114b2919061421e565b6114bc919061421e565b8110156114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f5906142c1565b60405180910390fd5b670de0b6b3a7640000816115129190614195565b600b8190555050565b600d5481565b611529612248565b73ffffffffffffffffffffffffffffffffffffffff166115476115f8565b73ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613eff565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b611630612248565b73ffffffffffffffffffffffffffffffffffffffff1661164e6115f8565b73ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613eff565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b6060600180546116d09061403f565b80601f01602080910402602001604051908101604052809291908181526020018280546116fc9061403f565b80156117495780601f1061171e57610100808354040283529160200191611749565b820191906000526020600020905b81548152906001019060200180831161172c57829003601f168201915b5050505050905090565b600e5481565b60135481565b60115481565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016118189594939291906142f0565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e670000000000000000000000000000000000008152508051906020012060006040516020016118a493929190614343565b604051602081830303815290604052805190602001209050600082826040516020016118d19291906143f2565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161190e9493929190614429565b6020604051602081039080840390855afa158015611930573d6000803e3d6000fd5b5050506020604051035190506119446115f8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906144ba565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600080600460006119ff612248565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab39061454c565b60405180910390fd5b611ad0611ac7612248565b85858403612250565b600191505092915050565b60095481565b60186020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b3b611b34612248565b848461241b565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b73612248565b73ffffffffffffffffffffffffffffffffffffffff16611b916115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90613eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e906145b8565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860149054906101000a900460ff1681565b611cb6612248565b73ffffffffffffffffffffffffffffffffffffffff16611cd46115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190613eff565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d8d612248565b73ffffffffffffffffffffffffffffffffffffffff16611dab6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df890613eff565b60405180910390fd5b670de0b6b3a76400006103e86001611e17610d19565b611e219190614195565b611e2b919061421e565b611e35919061421e565b811015611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e9061464a565b60405180910390fd5b670de0b6b3a764000081611e8b9190614195565b60098190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ec4612248565b73ffffffffffffffffffffffffffffffffffffffff16611ee26115f8565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f90613eff565b60405180910390fd5b620186a06001611f46610d19565b611f509190614195565b611f5a919061421e565b821015611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f93906146dc565b60405180910390fd5b6103e86005611fa9610d19565b611fb39190614195565b611fbd919061421e565b821115611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff69061476e565b60405180910390fd5b81600a8190555060019050919050565b600c5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120a4612248565b73ffffffffffffffffffffffffffffffffffffffff166120c26115f8565b73ffffffffffffffffffffffffffffffffffffffff1614612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217f90614800565b60405180910390fd5b612191816131ab565b50565b61219c612248565b73ffffffffffffffffffffffffffffffffffffffff166121ba6115f8565b73ffffffffffffffffffffffffffffffffffffffff1614612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220790613eff565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790614892565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232790614924565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161240e9190613b82565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561248b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612482906149b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f290614a48565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257f90614ab4565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90614b20565b60405180910390fd5b600081141561262f5761262a83836000613271565b6131a6565b600860169054906101000a900460ff1615612b285761264c6115f8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126ba575061268a6115f8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126f35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561272d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612744575060148054906101000a900460ff16155b15612b2757600860149054906101000a900460ff1661283e57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127fe5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283490614b8c565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128e15750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129885760095481111561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292290614c1e565b60405180910390fd5b600b5461293783611277565b826129429190613f4e565b1115612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a90614c8a565b60405180910390fd5b612b26565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a2b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a7a57600954811115612a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6c90614d1c565b60405180910390fd5b612b25565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b2457600b54612ad783611277565b82612ae29190613f4e565b1115612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90614c8a565b60405180910390fd5b5b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612c1f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639015d371306040518263ffffffff1660e01b8152600401612bdd9190613d76565b602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614d51565b5b15612d3a576000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a20527fc8585600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54600954600a546040518763ffffffff1660e01b8152600401612cb396959493929190614d7e565b6020604051808303816000875af1158015612cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf69190614d51565b905080612d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2f90614e2b565b60405180910390fd5b505b6000612d4530611277565b90506000600a548210159050808015612d6a5750600860159054906101000a900460ff165b8015612d81575060148054906101000a900460ff16155b8015612dd75750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e2d5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e835750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ec55760016014806101000a81548160ff021916908315150217905550612eaa6134f5565b60006014806101000a81548160ff0219169083151502179055505b600060148054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f795750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f8357600090505b6000811561319657601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612fe657506000600f54115b15613080576130136064613005600f54886136e090919063ffffffff16565b6136f690919063ffffffff16565b9050600f54601154826130269190614195565b613030919061421e565b601360008282546130419190613f4e565b92505081905550600f54601054826130599190614195565b613063919061421e565b601260008282546130749190613f4e565b92505081905550613172565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156130db57506000600c54115b156131715761310860646130fa600c54886136e090919063ffffffff16565b6136f690919063ffffffff16565b9050600c54600e548261311b9190614195565b613125919061421e565b601360008282546131369190613f4e565b92505081905550600c54600d548261314e9190614195565b613158919061421e565b601260008282546131699190613f4e565b925050819055505b5b600081111561318757613186873083613271565b5b80856131939190614e4b565b94505b6131a1878787613271565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156132e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d8906149b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334890614a48565b60405180910390fd5b61335c83838361370c565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133da90614ef1565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134789190613f4e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134dc9190613b82565b60405180910390a36134ef848484613711565b50505050565b600061350030611277565b905060006013546012546135149190613f4e565b90506000808314806135265750600082145b15613533575050506136de565b6014600a546135429190614195565b83111561355b576014600a546135589190614195565b92505b600047905061356984613716565b600061357e824761395390919063ffffffff16565b905060006135a98561359b601354856136e090919063ffffffff16565b6136f690919063ffffffff16565b905060006012819055506000601381905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161360190614f42565b60006040518083038185875af1925050503d806000811461363e576040519150601f19603f3d011682016040523d82523d6000602084013e613643565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161368f90614f42565b60006040518083038185875af1925050503d80600081146136cc576040519150601f19603f3d011682016040523d82523d6000602084013e6136d1565b606091505b5050809450505050505050505b565b600081836136ee9190614195565b905092915050565b60008183613704919061421e565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561373357613732614f57565b5b6040519080825280602002602001820160405280156137615781602001602082028036833780820191505090505b509050308160008151811061377957613778614f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561381e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138429190614fca565b8160018151811061385657613855614f86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138bb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612250565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161391d9594939291906150f0565b600060405180830381600087803b15801561393757600080fd5b505af115801561394b573d6000803e3d6000fd5b505050505050565b600081836139619190614e4b565b905092915050565b600080fd5b6000819050919050565b6139818161396e565b811461398c57600080fd5b50565b60008135905061399e81613978565b92915050565b600080604083850312156139bb576139ba613969565b5b60006139c98582860161398f565b92505060206139da8582860161398f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a1e578082015181840152602081019050613a03565b83811115613a2d576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a4f826139e4565b613a5981856139ef565b9350613a69818560208601613a00565b613a7281613a33565b840191505092915050565b60006020820190508181036000830152613a978184613a44565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613aca82613a9f565b9050919050565b613ada81613abf565b8114613ae557600080fd5b50565b600081359050613af781613ad1565b92915050565b60008060408385031215613b1457613b13613969565b5b6000613b2285828601613ae8565b9250506020613b338582860161398f565b9150509250929050565b60008115159050919050565b613b5281613b3d565b82525050565b6000602082019050613b6d6000830184613b49565b92915050565b613b7c8161396e565b82525050565b6000602082019050613b976000830184613b73565b92915050565b600080600060608486031215613bb657613bb5613969565b5b6000613bc486828701613ae8565b9350506020613bd586828701613ae8565b9250506040613be68682870161398f565b9150509250925092565b613bf981613b3d565b8114613c0457600080fd5b50565b600081359050613c1681613bf0565b92915050565b60008060408385031215613c3357613c32613969565b5b6000613c4185828601613ae8565b9250506020613c5285828601613c07565b9150509250929050565b600060ff82169050919050565b613c7281613c5c565b82525050565b6000602082019050613c8d6000830184613c69565b92915050565b600060208284031215613ca957613ca8613969565b5b6000613cb784828501613ae8565b91505092915050565b6000819050919050565b6000613ce5613ce0613cdb84613a9f565b613cc0565b613a9f565b9050919050565b6000613cf782613cca565b9050919050565b6000613d0982613cec565b9050919050565b613d1981613cfe565b82525050565b6000602082019050613d346000830184613d10565b92915050565b600060208284031215613d5057613d4f613969565b5b6000613d5e8482850161398f565b91505092915050565b613d7081613abf565b82525050565b6000602082019050613d8b6000830184613d67565b92915050565b600060208284031215613da757613da6613969565b5b6000613db584828501613c07565b91505092915050565b613dc781613c5c565b8114613dd257600080fd5b50565b600081359050613de481613dbe565b92915050565b6000819050919050565b613dfd81613dea565b8114613e0857600080fd5b50565b600081359050613e1a81613df4565b92915050565b600080600060608486031215613e3957613e38613969565b5b6000613e4786828701613dd5565b9350506020613e5886828701613e0b565b9250506040613e6986828701613e0b565b9150509250925092565b60008060408385031215613e8a57613e89613969565b5b6000613e9885828601613ae8565b9250506020613ea985828601613ae8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ee96020836139ef565b9150613ef482613eb3565b602082019050919050565b60006020820190508181036000830152613f1881613edc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f598261396e565b9150613f648361396e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f9957613f98613f1f565b5b828201905092915050565b7f4d757374206b656570206665657320617420393525206f72206c657373000000600082015250565b6000613fda601d836139ef565b9150613fe582613fa4565b602082019050919050565b6000602082019050818103600083015261400981613fcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061405757607f821691505b6020821081141561406b5761406a614010565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006140cd6028836139ef565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b600061415f6028836139ef565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b60006141a08261396e565b91506141ab8361396e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141e4576141e3613f1f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142298261396e565b91506142348361396e565b925082614244576142436141ef565b5b828204905092915050565b7f43616e6e6f7420736574206d6178696d756d57616c6c6574416d74206c6f776560008201527f72207468616e20302e3525000000000000000000000000000000000000000000602082015250565b60006142ab602b836139ef565b91506142b68261424f565b604082019050919050565b600060208201905081810360008301526142da8161429e565b9050919050565b6142ea81613dea565b82525050565b600060a08201905061430560008301886142e1565b61431260208301876142e1565b61431f60408301866142e1565b61432c6060830185613b73565b6143396080830184613d67565b9695505050505050565b600060608201905061435860008301866142e1565b61436560208301856142e1565b6143726040830184613b73565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006143bb60028361437a565b91506143c682614385565b600282019050919050565b6000819050919050565b6143ec6143e782613dea565b6143d1565b82525050565b60006143fd826143ae565b915061440982856143db565b60208201915061441982846143db565b6020820191508190509392505050565b600060808201905061443e60008301876142e1565b61444b6020830186613c69565b61445860408301856142e1565b61446560608301846142e1565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006144a46011836139ef565b91506144af8261446e565b602082019050919050565b600060208201905081810360008301526144d381614497565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006145366025836139ef565b9150614541826144da565b604082019050919050565b6000602082019050818103600083015261456581614529565b9050919050565b7f496e76616c696420616e74692d647261696e6572000000000000000000000000600082015250565b60006145a26014836139ef565b91506145ad8261456c565b602082019050919050565b600060208201905081810360008301526145d181614595565b9050919050565b7f43616e6e6f7420736574206d6178696d756d5472616e73616374696f6e416d7460008201527f206c6f776572207468616e20302e312500000000000000000000000000000000602082015250565b60006146346030836139ef565b915061463f826145d8565b604082019050919050565b6000602082019050818103600083015261466381614627565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006146c66035836139ef565b91506146d18261466a565b604082019050919050565b600060208201905081810360008301526146f5816146b9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006147586034836139ef565b9150614763826146fc565b604082019050919050565b600060208201905081810360008301526147878161474b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147ea6026836139ef565b91506147f58261478e565b604082019050919050565b60006020820190508181036000830152614819816147dd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061487c6024836139ef565b915061488782614820565b604082019050919050565b600060208201905081810360008301526148ab8161486f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061490e6022836139ef565b9150614919826148b2565b604082019050919050565b6000602082019050818103600083015261493d81614901565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149a06025836139ef565b91506149ab82614944565b604082019050919050565b600060208201905081810360008301526149cf81614993565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a326023836139ef565b9150614a3d826149d6565b604082019050919050565b60006020820190508181036000830152614a6181614a25565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b6000614a9e6011836139ef565b9150614aa982614a68565b602082019050919050565b60006020820190508181036000830152614acd81614a91565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614b0a600f836139ef565b9150614b1582614ad4565b602082019050919050565b60006020820190508181036000830152614b3981614afd565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614b766016836139ef565b9150614b8182614b40565b602082019050919050565b60006020820190508181036000830152614ba581614b69565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178696d756d5472616e73616374696f6e416d742e00000000000000000000602082015250565b6000614c086036836139ef565b9150614c1382614bac565b604082019050919050565b60006020820190508181036000830152614c3781614bfb565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614c746013836139ef565b9150614c7f82614c3e565b602082019050919050565b60006020820190508181036000830152614ca381614c67565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178696d756d5472616e73616374696f6e416d742e000000000000000000602082015250565b6000614d066037836139ef565b9150614d1182614caa565b604082019050919050565b60006020820190508181036000830152614d3581614cf9565b9050919050565b600081519050614d4b81613bf0565b92915050565b600060208284031215614d6757614d66613969565b5b6000614d7584828501614d3c565b91505092915050565b600060c082019050614d936000830189613d67565b614da06020830188613d67565b614dad6040830187613d67565b614dba6060830186613b73565b614dc76080830185613b73565b614dd460a0830184613b73565b979650505050505050565b7f416e746920447261696e657220456e61626c6564000000000000000000000000600082015250565b6000614e156014836139ef565b9150614e2082614ddf565b602082019050919050565b60006020820190508181036000830152614e4481614e08565b9050919050565b6000614e568261396e565b9150614e618361396e565b925082821015614e7457614e73613f1f565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614edb6026836139ef565b9150614ee682614e7f565b604082019050919050565b60006020820190508181036000830152614f0a81614ece565b9050919050565b600081905092915050565b50565b6000614f2c600083614f11565b9150614f3782614f1c565b600082019050919050565b6000614f4d82614f1f565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614fc481613ad1565b92915050565b600060208284031215614fe057614fdf613969565b5b6000614fee84828501614fb5565b91505092915050565b6000819050919050565b600061501c61501761501284614ff7565b613cc0565b61396e565b9050919050565b61502c81615001565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61506781613abf565b82525050565b6000615079838361505e565b60208301905092915050565b6000602082019050919050565b600061509d82615032565b6150a7818561503d565b93506150b28361504e565b8060005b838110156150e35781516150ca888261506d565b97506150d583615085565b9250506001810190506150b6565b5085935050505092915050565b600060a0820190506151056000830188613b73565b6151126020830187615023565b81810360408301526151248186615092565b90506151336060830185613d67565b6151406080830184613b73565b969550505050505056fea264697066735822122055b332e9006a1ae3046ed3a7a523ab374dea7623ded2f4a7b1c5fc11682122df64736f6c634300080a0033
Deployed Bytecode Sourcemap
15597:11288:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21148:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10910:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11647:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11234:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16277:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21649:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11132:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12512:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15899:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16467:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16524:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15985:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16023;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20851:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21847:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16169:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15861:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11351:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1042:103;;;;;;;;;;;;;:::i;:::-;;15678:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19713:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19952:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16098:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19418:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;817:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16204:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19843:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11019:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16135:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16314:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16242:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18347:1062;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12736:414;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15942:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16596:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15770:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11825:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15794:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21452:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15821:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19577:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20592:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15734:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20196:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16064:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11487:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1154:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18230:108;;;;;;;;;;;;;:::i;:::-;;21148:295;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21262:12:::1;21243:16;:31;;;;21298:9;21285:10;:22;;;;21353:10;;21334:16;;:29;;;;:::i;:::-;21318:13;:45;;;;21399:2;21382:13;;:19;;21374:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21148:295:::0;;:::o;10910:100::-;10964:13;10997:5;10990:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10910:100;:::o;11647:169::-;11730:4;11747:39;11756:12;:10;:12::i;:::-;11770:7;11779:6;11747:8;:39::i;:::-;11804:4;11797:11;;11647:169;;;;:::o;11234:108::-;11295:7;11322:12;;11315:19;;11234:108;:::o;16277:30::-;;;;:::o;12009:494::-;12149:4;12166:36;12176:6;12184:9;12195:6;12166:9;:36::i;:::-;12216:24;12243:11;:19;12255:6;12243:19;;;;;;;;;;;;;;;:33;12263:12;:10;:12::i;:::-;12243:33;;;;;;;;;;;;;;;;12216:60;;12315:6;12295:16;:26;;12287:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12402:57;12411:6;12419:12;:10;:12::i;:::-;12452:6;12433:16;:25;12402:8;:57::i;:::-;12491:4;12484:11;;;12009:494;;;;;:::o;21649:189::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21741:11:::1;;;;;;;;;;;21733:19;;:4;:19;;;;21725:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21825:5;21808:8;:14;21817:4;21808:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21649:189:::0;;:::o;11132:93::-;11190:5;11215:2;11208:9;;11132:93;:::o;12512:215::-;12600:4;12617:80;12626:12;:10;:12::i;:::-;12640:7;12686:10;12649:11;:25;12661:12;:10;:12::i;:::-;12649:25;;;;;;;;;;;;;;;:34;12675:7;12649:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12617:8;:80::i;:::-;12715:4;12708:11;;12512:215;;;;:::o;15899:33::-;;;;;;;;;;;;;:::o;16467:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;16524:62::-;;;;;;;;;;;;;;;;;;;;;;:::o;15985:31::-;;;;:::o;16023:::-;;;;:::o;20851:288::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20963:12:::1;20945:15;:30;;;;20998:9;20986;:21;;;;21051:9;;21033:15;;:27;;;;:::i;:::-;21018:12;:42;;;;21095:2;21079:12;;:18;;21071:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20851:288:::0;;:::o;21847:113::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21946:6:::1;21926:11;:17;21938:4;21926:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21847:113:::0;;:::o;16169:28::-;;;;:::o;15861:31::-;;;;;;;;;;;;;:::o;11351:127::-;11425:7;11452:9;:18;11462:7;11452:18;;;;;;;;;;;;;;;;11445:25;;11351:127;;;:::o;1042:103::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:30:::1;1134:1;1107:18;:30::i;:::-;1042:103::o:0;15678:49::-;;;:::o;19713:121::-;19765:4;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19799:5:::1;19782:14;;:22;;;;;;;;;;;;;;;;;;19822:4;19815:11;;19713:121:::0;:::o;19952:235::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20080:4:::1;20072;20067:1;20051:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20050:26;;;;:::i;:::-;20049:35;;;;:::i;:::-;20039:6;:45;;20031:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;20172:6;20162;:17;;;;:::i;:::-;20143:16;:36;;;;19952:235:::0;:::o;16098:30::-;;;;:::o;19418:150::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19555:5:::1;19516:30;:36;19547:4;19516:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;19418:150:::0;;:::o;817:87::-;863:7;890:6;;;;;;;;;;;883:13;;817:87;:::o;16204:31::-;;;;:::o;19843:100::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19928:7:::1;19914:11;;:21;;;;;;;;;;;;;;;;;;19843:100:::0;:::o;11019:104::-;11075:13;11108:7;11101:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11019:104;:::o;16135:24::-;;;;:::o;16314:27::-;;;;:::o;16242:25::-;;;;:::o;18347:1062::-;18427:18;18501:95;18625:22;;;;;;;;;;;;;;;;;18615:33;;;;;;18677:10;;;;;;;;;;;;;;;;;18667:21;;;;;;18707:13;18747:4;18472:295;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18448:330;;;;;;18427:351;;18792:18;18866:49;18944:23;;;;;;;;;;;;;;;;;18934:34;;;;;;18995:1;18837:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18813:210;;;;;;18792:231;;19037:14;19142:10;19171;19078:134;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19054:169;;;;;;19037:186;;19237:14;19254:26;19264:6;19272:1;19275;19278;19254:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19237:43;;19309:7;:5;:7::i;:::-;19299:17;;:6;:17;;;19291:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19368:4;19352:13;;:20;;;;;;;;;;;;;;;;;;19397:4;19383:11;;:18;;;;;;;;;;;;;;;;;;18416:993;;;;18347:1062;;;:::o;12736:414::-;12829:4;12846:24;12873:11;:25;12885:12;:10;:12::i;:::-;12873:25;;;;;;;;;;;;;;;:34;12899:7;12873:34;;;;;;;;;;;;;;;;12846:61;;12946:15;12926:16;:35;;12918:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13039:67;13048:12;:10;:12::i;:::-;13062:7;13090:15;13071:16;:34;13039:8;:67::i;:::-;13138:4;13131:11;;;12736:414;;;;:::o;15942:36::-;;;;:::o;16596:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;15770:17::-;;;;;;;;;;;;;:::o;11825:175::-;11911:4;11928:42;11938:12;:10;:12::i;:::-;11952:9;11963:6;11928:9;:42::i;:::-;11988:4;11981:11;;11825:175;;;;:::o;15794:17::-;;;;;;;;;;;;;:::o;21452:188::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21564:3:::1;21538:30;;:14;:30;;;;21530:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21618:14;21604:11;;:28;;;;;;;;;;;;;;;;;;21452:188:::0;:::o;15821:33::-;;;;;;;;;;;;;:::o;19577:127::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19691:5:::1;19661:18;:27;19680:7;19661:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19577:127:::0;;:::o;20592:250::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20725:4:::1;20717;20712:1;20696:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20695:26;;;;:::i;:::-;20694:35;;;;:::i;:::-;20684:6;:45;;20676:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;20827:6;20817;:17;;;;:::i;:::-;20793:21;:41;;;;20592:250:::0;:::o;15734:26::-;;;;;;;;;;;;;:::o;20196:387::-;20275:4;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20335:6:::1;20330:1;20314:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20313:28;;;;:::i;:::-;20300:9;:41;;20292:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;20453:4;20448:1;20432:13;:11;:13::i;:::-;:17;;;;:::i;:::-;20431:26;;;;:::i;:::-;20418:9;:39;;20410:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;20544:9;20525:16;:28;;;;20571:4;20564:11;;20196:387:::0;;;:::o;16064:27::-;;;;:::o;11487:151::-;11576:7;11603:11;:18;11615:5;11603:18;;;;;;;;;;;;;;;:27;11622:7;11603:27;;;;;;;;;;;;;;;;11596:34;;11487:151;;;;:::o;1154:201::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1263:1:::1;1243:22;;:8;:22;;;;1235:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1319:28;1338:8;1319:18;:28::i;:::-;1154:201:::0;:::o;18230:108::-;964:12;:10;:12::i;:::-;953:23;;:7;:5;:7::i;:::-;:23;;;945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18297:4:::1;18281:13;;:20;;;;;;;;;;;;;;;;;;18326:4;18312:11;;:18;;;;;;;;;;;;;;;;;;18230:108::o:0;358:98::-;411:7;438:10;431:17;;358:98;:::o;14174:381::-;14327:1;14310:19;;:5;:19;;;;14302:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14408:1;14389:21;;:7;:21;;;;14381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14493:6;14463:11;:18;14475:5;14463:18;;;;;;;;;;;;;;;:27;14482:7;14463:27;;;;;;;;;;;;;;;:36;;;;14531:7;14515:32;;14524:5;14515:32;;;14540:6;14515:32;;;;;;:::i;:::-;;;;;;;;14174:381;;;:::o;23428:3338::-;23542:1;23526:18;;:4;:18;;;;23518:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23619:1;23605:16;;:2;:16;;;;23597:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23681:11;:17;23693:4;23681:17;;;;;;;;;;;;;;;;;;;;;;;;;23680:18;23672:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23740:11;:15;23752:2;23740:15;;;;;;;;;;;;;;;;;;;;;;;;;23739:16;23731:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;23803:1;23793:6;:11;23789:93;;;23821:28;23837:4;23843:2;23847:1;23821:15;:28::i;:::-;23864:7;;23789:93;23899:14;;;;;;;;;;;23895:1172;;;23942:7;:5;:7::i;:::-;23934:15;;:4;:15;;;;:49;;;;;23976:7;:5;:7::i;:::-;23970:13;;:2;:13;;;;23934:49;:86;;;;;24018:1;24004:16;;:2;:16;;;;23934:86;:128;;;;;24055:6;24041:21;;:2;:21;;;;23934:128;:158;;;;;24084:8;;;;;;;;;;24083:9;23934:158;23930:1126;;;24118:13;;;;;;;;;;;24113:148;;24164:18;:24;24183:4;24164:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;24192:18;:22;24211:2;24192:22;;;;;;;;;;;;;;;;;;;;;;;;;24164:50;24156:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;24113:148;24314:8;:14;24323:4;24314:14;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;;24333:30;:34;24364:2;24333:34;;;;;;;;;;;;;;;;;;;;;;;;;24332:35;24314:53;24310:731;;;24410:21;;24400:6;:31;;24392:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;24547:16;;24530:13;24540:2;24530:9;:13::i;:::-;24521:6;:22;;;;:::i;:::-;:42;;24513:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;24310:731;;;24663:8;:12;24672:2;24663:12;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;;24680:30;:36;24711:4;24680:36;;;;;;;;;;;;;;;;;;;;;;;;;24679:37;24663:53;24659:382;;;24759:21;;24749:6;:31;;24741:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;24659:382;;;24888:30;:34;24919:2;24888:34;;;;;;;;;;;;;;;;;;;;;;;;;24883:158;;24981:16;;24964:13;24974:2;24964:9;:13::i;:::-;24955:6;:22;;;;:::i;:::-;:42;;24947:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;24883:158;24659:382;24310:731;23930:1126;23895:1172;25107:1;25084:25;;:11;;;;;;;;;;;:25;;;;:79;;;;;25126:11;;;;;;;;;;;25113:35;;;25157:4;25113:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25084:79;25080:300;;;25180:10;25206:11;;;;;;;;;;;25193:31;;;25225:4;25231:2;25243:11;;;;;;;;;;;25257:16;;25275:21;;25298:16;;25193:122;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25180:135;;25338:5;25330:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25165:215;25080:300;25393:23;25419:24;25437:4;25419:9;:24::i;:::-;25393:50;;25454:12;25488:16;;25469:15;:35;;25454:50;;25519:7;:35;;;;;25543:11;;;;;;;;;;;25519:35;:61;;;;;25572:8;;;;;;;;;;25571:9;25519:61;:93;;;;;25598:8;:14;25607:4;25598:14;;;;;;;;;;;;;;;;;;;;;;;;;25597:15;25519:93;:135;;;;;25630:18;:24;25649:4;25630:24;;;;;;;;;;;;;;;;;;;;;;;;;25629:25;25519:135;:175;;;;;25672:18;:22;25691:2;25672:22;;;;;;;;;;;;;;;;;;;;;;;;;25671:23;25519:175;25515:282;;;25725:4;25714:8;;:15;;;;;;;;;;;;;;;;;;25744:10;:8;:10::i;:::-;25780:5;25769:8;;:16;;;;;;;;;;;;;;;;;;25515:282;25810:12;25826:8;;;;;;;;;;25825:9;25810:24;;25849:18;:24;25868:4;25849:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;25877:18;:22;25896:2;25877:22;;;;;;;;;;;;;;;;;;;;;;;;;25849:50;25845:84;;;25924:5;25914:15;;25845:84;25943:11;25973:7;25969:743;;;26025:8;:12;26034:2;26025:12;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;;26057:1;26041:13;;:17;26025:33;26021:560;;;26085:34;26115:3;26085:25;26096:13;;26085:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;26079:40;;26175:13;;26161:10;;26155:3;:16;;;;:::i;:::-;26154:34;;;;:::i;:::-;26138:12;;:50;;;;;;;:::i;:::-;;;;;;;;26253:13;;26233:16;;26227:3;:22;;;;:::i;:::-;26226:40;;;;:::i;:::-;26207:15;;:59;;;;;;;:::i;:::-;;;;;;;;26021:560;;;26328:8;:14;26337:4;26328:14;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;26361:1;26346:12;;:16;26328:34;26324:257;;;26389:33;26418:3;26389:24;26400:12;;26389:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;26383:39;;26477:12;;26464:9;;26458:3;:15;;;;:::i;:::-;26457:32;;;;:::i;:::-;26441:12;;:48;;;;;;;:::i;:::-;;;;;;;;26553:12;;26534:15;;26528:3;:21;;;;:::i;:::-;26527:38;;;;:::i;:::-;26508:15;;:57;;;;;;;:::i;:::-;;;;;;;;26324:257;26021:560;26608:1;26602:3;:7;26598:71;;;26628:41;26644:4;26658;26665:3;26628:15;:41::i;:::-;26598:71;26697:3;26687:13;;;;;:::i;:::-;;;25969:743;26725:33;26741:4;26747:2;26751:6;26725:15;:33::i;:::-;23507:3259;;;;23428:3338;;;;:::o;1364:191::-;1438:16;1457:6;;;;;;;;;;;1438:25;;1483:8;1474:6;;:17;;;;;;;;;;;;;;;;;;1538:8;1507:40;;1528:8;1507:40;;;;;;;;;;;;1427:128;1364:191;:::o;14564:737::-;14722:1;14704:20;;:6;:20;;;;14696:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14806:1;14785:23;;:9;:23;;;;14777:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14862:47;14883:6;14891:9;14902:6;14862:20;:47::i;:::-;14923:21;14947:9;:17;14957:6;14947:17;;;;;;;;;;;;;;;;14923:41;;15000:6;14983:13;:23;;14975:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15121:6;15105:13;:22;15085:9;:17;15095:6;15085:17;;;;;;;;;;;;;;;:42;;;;15173:6;15149:9;:20;15159:9;15149:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15215:9;15198:35;;15207:6;15198:35;;;15226:6;15198:35;;;;;;:::i;:::-;;;;;;;;15247:46;15267:6;15275:9;15286:6;15247:19;:46::i;:::-;14685:616;14564:737;;;:::o;21969:856::-;22008:23;22034:24;22052:4;22034:9;:24::i;:::-;22008:50;;22069:25;22115:12;;22097:15;;:30;;;;:::i;:::-;22069:58;;22138:12;22187:1;22168:15;:20;:46;;;;22213:1;22192:17;:22;22168:46;22164:72;;;22229:7;;;;;22164:72;22290:2;22271:16;;:21;;;;:::i;:::-;22253:15;:39;22249:97;;;22344:2;22325:16;;:21;;;;:::i;:::-;22307:39;;22249:97;22360:25;22388:21;22360:49;;22420:33;22437:15;22420:16;:33::i;:::-;22467:18;22488:44;22514:17;22488:21;:25;;:44;;;;:::i;:::-;22467:65;;22543:17;22563:51;22596:17;22563:28;22578:12;;22563:10;:14;;:28;;;;:::i;:::-;:32;;:51;;;;:::i;:::-;22543:71;;22646:1;22628:15;:19;;;;22673:1;22658:12;:16;;;;22710:2;;;;;;;;;;;22702:16;;22726:9;22702:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22688:52;;;;;22773:2;;;;;;;;;;;22765:16;;22790:21;22765:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22751:66;;;;;21997:828;;;;;;21969:856;:::o;2952:98::-;3010:7;3041:1;3037;:5;;;;:::i;:::-;3030:12;;2952:98;;;;:::o;3059:::-;3117:7;3148:1;3144;:5;;;;:::i;:::-;3137:12;;3059:98;;;;:::o;15310:125::-;;;;:::o;15444:124::-;;;;:::o;22834:585::-;22960:21;22998:1;22984:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22960:40;;23029:4;23011;23016:1;23011:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23055:13;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23045:4;23050:1;23045:7;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;;;23089:60;23106:4;23121:13;23137:11;23089:8;:60::i;:::-;23189:13;:64;;;23268:11;23294:1;23338:4;23365;23385:15;23189:222;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22889:530;22834:585;:::o;2845:98::-;2903:7;2934:1;2930;:5;;;;:::i;:::-;2923:12;;2845:98;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:118::-;4061:24;4079:5;4061:24;:::i;:::-;4056:3;4049:37;3974:118;;:::o;4098:222::-;4191:4;4229:2;4218:9;4214:18;4206:26;;4242:71;4310:1;4299:9;4295:17;4286:6;4242:71;:::i;:::-;4098:222;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:116::-;5021:21;5036:5;5021:21;:::i;:::-;5014:5;5011:32;5001:60;;5057:1;5054;5047:12;5001:60;4951:116;:::o;5073:133::-;5116:5;5154:6;5141:20;5132:29;;5170:30;5194:5;5170:30;:::i;:::-;5073:133;;;;:::o;5212:468::-;5277:6;5285;5334:2;5322:9;5313:7;5309:23;5305:32;5302:119;;;5340:79;;:::i;:::-;5302:119;5460:1;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5431:117;5587:2;5613:50;5655:7;5646:6;5635:9;5631:22;5613:50;:::i;:::-;5603:60;;5558:115;5212:468;;;;;:::o;5686:86::-;5721:7;5761:4;5754:5;5750:16;5739:27;;5686:86;;;:::o;5778:112::-;5861:22;5877:5;5861:22;:::i;:::-;5856:3;5849:35;5778:112;;:::o;5896:214::-;5985:4;6023:2;6012:9;6008:18;6000:26;;6036:67;6100:1;6089:9;6085:17;6076:6;6036:67;:::i;:::-;5896:214;;;;:::o;6116:329::-;6175:6;6224:2;6212:9;6203:7;6199:23;6195:32;6192:119;;;6230:79;;:::i;:::-;6192:119;6350:1;6375:53;6420:7;6411:6;6400:9;6396:22;6375:53;:::i;:::-;6365:63;;6321:117;6116:329;;;;:::o;6451:60::-;6479:3;6500:5;6493:12;;6451:60;;;:::o;6517:142::-;6567:9;6600:53;6618:34;6627:24;6645:5;6627:24;:::i;:::-;6618:34;:::i;:::-;6600:53;:::i;:::-;6587:66;;6517:142;;;:::o;6665:126::-;6715:9;6748:37;6779:5;6748:37;:::i;:::-;6735:50;;6665:126;;;:::o;6797:152::-;6873:9;6906:37;6937:5;6906:37;:::i;:::-;6893:50;;6797:152;;;:::o;6955:183::-;7068:63;7125:5;7068:63;:::i;:::-;7063:3;7056:76;6955:183;;:::o;7144:274::-;7263:4;7301:2;7290:9;7286:18;7278:26;;7314:97;7408:1;7397:9;7393:17;7384:6;7314:97;:::i;:::-;7144:274;;;;:::o;7424:329::-;7483:6;7532:2;7520:9;7511:7;7507:23;7503:32;7500:119;;;7538:79;;:::i;:::-;7500:119;7658:1;7683:53;7728:7;7719:6;7708:9;7704:22;7683:53;:::i;:::-;7673:63;;7629:117;7424:329;;;;:::o;7759:118::-;7846:24;7864:5;7846:24;:::i;:::-;7841:3;7834:37;7759:118;;:::o;7883:222::-;7976:4;8014:2;8003:9;7999:18;7991:26;;8027:71;8095:1;8084:9;8080:17;8071:6;8027:71;:::i;:::-;7883:222;;;;:::o;8111:323::-;8167:6;8216:2;8204:9;8195:7;8191:23;8187:32;8184:119;;;8222:79;;:::i;:::-;8184:119;8342:1;8367:50;8409:7;8400:6;8389:9;8385:22;8367:50;:::i;:::-;8357:60;;8313:114;8111:323;;;;:::o;8440:118::-;8511:22;8527:5;8511:22;:::i;:::-;8504:5;8501:33;8491:61;;8548:1;8545;8538:12;8491:61;8440:118;:::o;8564:135::-;8608:5;8646:6;8633:20;8624:29;;8662:31;8687:5;8662:31;:::i;:::-;8564:135;;;;:::o;8705:77::-;8742:7;8771:5;8760:16;;8705:77;;;:::o;8788:122::-;8861:24;8879:5;8861:24;:::i;:::-;8854:5;8851:35;8841:63;;8900:1;8897;8890:12;8841:63;8788:122;:::o;8916:139::-;8962:5;9000:6;8987:20;8978:29;;9016:33;9043:5;9016:33;:::i;:::-;8916:139;;;;:::o;9061:615::-;9136:6;9144;9152;9201:2;9189:9;9180:7;9176:23;9172:32;9169:119;;;9207:79;;:::i;:::-;9169:119;9327:1;9352:51;9395:7;9386:6;9375:9;9371:22;9352:51;:::i;:::-;9342:61;;9298:115;9452:2;9478:53;9523:7;9514:6;9503:9;9499:22;9478:53;:::i;:::-;9468:63;;9423:118;9580:2;9606:53;9651:7;9642:6;9631:9;9627:22;9606:53;:::i;:::-;9596:63;;9551:118;9061:615;;;;;:::o;9682:474::-;9750:6;9758;9807:2;9795:9;9786:7;9782:23;9778:32;9775:119;;;9813:79;;:::i;:::-;9775:119;9933:1;9958:53;10003:7;9994:6;9983:9;9979:22;9958:53;:::i;:::-;9948:63;;9904:117;10060:2;10086:53;10131:7;10122:6;10111:9;10107:22;10086:53;:::i;:::-;10076:63;;10031:118;9682:474;;;;;:::o;10162:182::-;10302:34;10298:1;10290:6;10286:14;10279:58;10162:182;:::o;10350:366::-;10492:3;10513:67;10577:2;10572:3;10513:67;:::i;:::-;10506:74;;10589:93;10678:3;10589:93;:::i;:::-;10707:2;10702:3;10698:12;10691:19;;10350:366;;;:::o;10722:419::-;10888:4;10926:2;10915:9;10911:18;10903:26;;10975:9;10969:4;10965:20;10961:1;10950:9;10946:17;10939:47;11003:131;11129:4;11003:131;:::i;:::-;10995:139;;10722:419;;;:::o;11147:180::-;11195:77;11192:1;11185:88;11292:4;11289:1;11282:15;11316:4;11313:1;11306:15;11333:305;11373:3;11392:20;11410:1;11392:20;:::i;:::-;11387:25;;11426:20;11444:1;11426:20;:::i;:::-;11421:25;;11580:1;11512:66;11508:74;11505:1;11502:81;11499:107;;;11586:18;;:::i;:::-;11499:107;11630:1;11627;11623:9;11616:16;;11333:305;;;;:::o;11644:179::-;11784:31;11780:1;11772:6;11768:14;11761:55;11644:179;:::o;11829:366::-;11971:3;11992:67;12056:2;12051:3;11992:67;:::i;:::-;11985:74;;12068:93;12157:3;12068:93;:::i;:::-;12186:2;12181:3;12177:12;12170:19;;11829:366;;;:::o;12201:419::-;12367:4;12405:2;12394:9;12390:18;12382:26;;12454:9;12448:4;12444:20;12440:1;12429:9;12425:17;12418:47;12482:131;12608:4;12482:131;:::i;:::-;12474:139;;12201:419;;;:::o;12626:180::-;12674:77;12671:1;12664:88;12771:4;12768:1;12761:15;12795:4;12792:1;12785:15;12812:320;12856:6;12893:1;12887:4;12883:12;12873:22;;12940:1;12934:4;12930:12;12961:18;12951:81;;13017:4;13009:6;13005:17;12995:27;;12951:81;13079:2;13071:6;13068:14;13048:18;13045:38;13042:84;;;13098:18;;:::i;:::-;13042:84;12863:269;12812:320;;;:::o;13138:227::-;13278:34;13274:1;13266:6;13262:14;13255:58;13347:10;13342:2;13334:6;13330:15;13323:35;13138:227;:::o;13371:366::-;13513:3;13534:67;13598:2;13593:3;13534:67;:::i;:::-;13527:74;;13610:93;13699:3;13610:93;:::i;:::-;13728:2;13723:3;13719:12;13712:19;;13371:366;;;:::o;13743:419::-;13909:4;13947:2;13936:9;13932:18;13924:26;;13996:9;13990:4;13986:20;13982:1;13971:9;13967:17;13960:47;14024:131;14150:4;14024:131;:::i;:::-;14016:139;;13743:419;;;:::o;14168:227::-;14308:34;14304:1;14296:6;14292:14;14285:58;14377:10;14372:2;14364:6;14360:15;14353:35;14168:227;:::o;14401:366::-;14543:3;14564:67;14628:2;14623:3;14564:67;:::i;:::-;14557:74;;14640:93;14729:3;14640:93;:::i;:::-;14758:2;14753:3;14749:12;14742:19;;14401:366;;;:::o;14773:419::-;14939:4;14977:2;14966:9;14962:18;14954:26;;15026:9;15020:4;15016:20;15012:1;15001:9;14997:17;14990:47;15054:131;15180:4;15054:131;:::i;:::-;15046:139;;14773:419;;;:::o;15198:348::-;15238:7;15261:20;15279:1;15261:20;:::i;:::-;15256:25;;15295:20;15313:1;15295:20;:::i;:::-;15290:25;;15483:1;15415:66;15411:74;15408:1;15405:81;15400:1;15393:9;15386:17;15382:105;15379:131;;;15490:18;;:::i;:::-;15379:131;15538:1;15535;15531:9;15520:20;;15198:348;;;;:::o;15552:180::-;15600:77;15597:1;15590:88;15697:4;15694:1;15687:15;15721:4;15718:1;15711:15;15738:185;15778:1;15795:20;15813:1;15795:20;:::i;:::-;15790:25;;15829:20;15847:1;15829:20;:::i;:::-;15824:25;;15868:1;15858:35;;15873:18;;:::i;:::-;15858:35;15915:1;15912;15908:9;15903:14;;15738:185;;;;:::o;15929:230::-;16069:34;16065:1;16057:6;16053:14;16046:58;16138:13;16133:2;16125:6;16121:15;16114:38;15929:230;:::o;16165:366::-;16307:3;16328:67;16392:2;16387:3;16328:67;:::i;:::-;16321:74;;16404:93;16493:3;16404:93;:::i;:::-;16522:2;16517:3;16513:12;16506:19;;16165:366;;;:::o;16537:419::-;16703:4;16741:2;16730:9;16726:18;16718:26;;16790:9;16784:4;16780:20;16776:1;16765:9;16761:17;16754:47;16818:131;16944:4;16818:131;:::i;:::-;16810:139;;16537:419;;;:::o;16962:118::-;17049:24;17067:5;17049:24;:::i;:::-;17044:3;17037:37;16962:118;;:::o;17086:664::-;17291:4;17329:3;17318:9;17314:19;17306:27;;17343:71;17411:1;17400:9;17396:17;17387:6;17343:71;:::i;:::-;17424:72;17492:2;17481:9;17477:18;17468:6;17424:72;:::i;:::-;17506;17574:2;17563:9;17559:18;17550:6;17506:72;:::i;:::-;17588;17656:2;17645:9;17641:18;17632:6;17588:72;:::i;:::-;17670:73;17738:3;17727:9;17723:19;17714:6;17670:73;:::i;:::-;17086:664;;;;;;;;:::o;17756:442::-;17905:4;17943:2;17932:9;17928:18;17920:26;;17956:71;18024:1;18013:9;18009:17;18000:6;17956:71;:::i;:::-;18037:72;18105:2;18094:9;18090:18;18081:6;18037:72;:::i;:::-;18119;18187:2;18176:9;18172:18;18163:6;18119:72;:::i;:::-;17756:442;;;;;;:::o;18204:148::-;18306:11;18343:3;18328:18;;18204:148;;;;:::o;18358:214::-;18498:66;18494:1;18486:6;18482:14;18475:90;18358:214;:::o;18578:400::-;18738:3;18759:84;18841:1;18836:3;18759:84;:::i;:::-;18752:91;;18852:93;18941:3;18852:93;:::i;:::-;18970:1;18965:3;18961:11;18954:18;;18578:400;;;:::o;18984:79::-;19023:7;19052:5;19041:16;;18984:79;;;:::o;19069:157::-;19174:45;19194:24;19212:5;19194:24;:::i;:::-;19174:45;:::i;:::-;19169:3;19162:58;19069:157;;:::o;19232:663::-;19473:3;19495:148;19639:3;19495:148;:::i;:::-;19488:155;;19653:75;19724:3;19715:6;19653:75;:::i;:::-;19753:2;19748:3;19744:12;19737:19;;19766:75;19837:3;19828:6;19766:75;:::i;:::-;19866:2;19861:3;19857:12;19850:19;;19886:3;19879:10;;19232:663;;;;;:::o;19901:545::-;20074:4;20112:3;20101:9;20097:19;20089:27;;20126:71;20194:1;20183:9;20179:17;20170:6;20126:71;:::i;:::-;20207:68;20271:2;20260:9;20256:18;20247:6;20207:68;:::i;:::-;20285:72;20353:2;20342:9;20338:18;20329:6;20285:72;:::i;:::-;20367;20435:2;20424:9;20420:18;20411:6;20367:72;:::i;:::-;19901:545;;;;;;;:::o;20452:167::-;20592:19;20588:1;20580:6;20576:14;20569:43;20452:167;:::o;20625:366::-;20767:3;20788:67;20852:2;20847:3;20788:67;:::i;:::-;20781:74;;20864:93;20953:3;20864:93;:::i;:::-;20982:2;20977:3;20973:12;20966:19;;20625:366;;;:::o;20997:419::-;21163:4;21201:2;21190:9;21186:18;21178:26;;21250:9;21244:4;21240:20;21236:1;21225:9;21221:17;21214:47;21278:131;21404:4;21278:131;:::i;:::-;21270:139;;20997:419;;;:::o;21422:224::-;21562:34;21558:1;21550:6;21546:14;21539:58;21631:7;21626:2;21618:6;21614:15;21607:32;21422:224;:::o;21652:366::-;21794:3;21815:67;21879:2;21874:3;21815:67;:::i;:::-;21808:74;;21891:93;21980:3;21891:93;:::i;:::-;22009:2;22004:3;22000:12;21993:19;;21652:366;;;:::o;22024:419::-;22190:4;22228:2;22217:9;22213:18;22205:26;;22277:9;22271:4;22267:20;22263:1;22252:9;22248:17;22241:47;22305:131;22431:4;22305:131;:::i;:::-;22297:139;;22024:419;;;:::o;22449:170::-;22589:22;22585:1;22577:6;22573:14;22566:46;22449:170;:::o;22625:366::-;22767:3;22788:67;22852:2;22847:3;22788:67;:::i;:::-;22781:74;;22864:93;22953:3;22864:93;:::i;:::-;22982:2;22977:3;22973:12;22966:19;;22625:366;;;:::o;22997:419::-;23163:4;23201:2;23190:9;23186:18;23178:26;;23250:9;23244:4;23240:20;23236:1;23225:9;23221:17;23214:47;23278:131;23404:4;23278:131;:::i;:::-;23270:139;;22997:419;;;:::o;23422:235::-;23562:34;23558:1;23550:6;23546:14;23539:58;23631:18;23626:2;23618:6;23614:15;23607:43;23422:235;:::o;23663:366::-;23805:3;23826:67;23890:2;23885:3;23826:67;:::i;:::-;23819:74;;23902:93;23991:3;23902:93;:::i;:::-;24020:2;24015:3;24011:12;24004:19;;23663:366;;;:::o;24035:419::-;24201:4;24239:2;24228:9;24224:18;24216:26;;24288:9;24282:4;24278:20;24274:1;24263:9;24259:17;24252:47;24316:131;24442:4;24316:131;:::i;:::-;24308:139;;24035:419;;;:::o;24460:240::-;24600:34;24596:1;24588:6;24584:14;24577:58;24669:23;24664:2;24656:6;24652:15;24645:48;24460:240;:::o;24706:366::-;24848:3;24869:67;24933:2;24928:3;24869:67;:::i;:::-;24862:74;;24945:93;25034:3;24945:93;:::i;:::-;25063:2;25058:3;25054:12;25047:19;;24706:366;;;:::o;25078:419::-;25244:4;25282:2;25271:9;25267:18;25259:26;;25331:9;25325:4;25321:20;25317:1;25306:9;25302:17;25295:47;25359:131;25485:4;25359:131;:::i;:::-;25351:139;;25078:419;;;:::o;25503:239::-;25643:34;25639:1;25631:6;25627:14;25620:58;25712:22;25707:2;25699:6;25695:15;25688:47;25503:239;:::o;25748:366::-;25890:3;25911:67;25975:2;25970:3;25911:67;:::i;:::-;25904:74;;25987:93;26076:3;25987:93;:::i;:::-;26105:2;26100:3;26096:12;26089:19;;25748:366;;;:::o;26120:419::-;26286:4;26324:2;26313:9;26309:18;26301:26;;26373:9;26367:4;26363:20;26359:1;26348:9;26344:17;26337:47;26401:131;26527:4;26401:131;:::i;:::-;26393:139;;26120:419;;;:::o;26545:225::-;26685:34;26681:1;26673:6;26669:14;26662:58;26754:8;26749:2;26741:6;26737:15;26730:33;26545:225;:::o;26776:366::-;26918:3;26939:67;27003:2;26998:3;26939:67;:::i;:::-;26932:74;;27015:93;27104:3;27015:93;:::i;:::-;27133:2;27128:3;27124:12;27117:19;;26776:366;;;:::o;27148:419::-;27314:4;27352:2;27341:9;27337:18;27329:26;;27401:9;27395:4;27391:20;27387:1;27376:9;27372:17;27365:47;27429:131;27555:4;27429:131;:::i;:::-;27421:139;;27148:419;;;:::o;27573:223::-;27713:34;27709:1;27701:6;27697:14;27690:58;27782:6;27777:2;27769:6;27765:15;27758:31;27573:223;:::o;27802:366::-;27944:3;27965:67;28029:2;28024:3;27965:67;:::i;:::-;27958:74;;28041:93;28130:3;28041:93;:::i;:::-;28159:2;28154:3;28150:12;28143:19;;27802:366;;;:::o;28174:419::-;28340:4;28378:2;28367:9;28363:18;28355:26;;28427:9;28421:4;28417:20;28413:1;28402:9;28398:17;28391:47;28455:131;28581:4;28455:131;:::i;:::-;28447:139;;28174:419;;;:::o;28599:221::-;28739:34;28735:1;28727:6;28723:14;28716:58;28808:4;28803:2;28795:6;28791:15;28784:29;28599:221;:::o;28826:366::-;28968:3;28989:67;29053:2;29048:3;28989:67;:::i;:::-;28982:74;;29065:93;29154:3;29065:93;:::i;:::-;29183:2;29178:3;29174:12;29167:19;;28826:366;;;:::o;29198:419::-;29364:4;29402:2;29391:9;29387:18;29379:26;;29451:9;29445:4;29441:20;29437:1;29426:9;29422:17;29415:47;29479:131;29605:4;29479:131;:::i;:::-;29471:139;;29198:419;;;:::o;29623:224::-;29763:34;29759:1;29751:6;29747:14;29740:58;29832:7;29827:2;29819:6;29815:15;29808:32;29623:224;:::o;29853:366::-;29995:3;30016:67;30080:2;30075:3;30016:67;:::i;:::-;30009:74;;30092:93;30181:3;30092:93;:::i;:::-;30210:2;30205:3;30201:12;30194:19;;29853:366;;;:::o;30225:419::-;30391:4;30429:2;30418:9;30414:18;30406:26;;30478:9;30472:4;30468:20;30464:1;30453:9;30449:17;30442:47;30506:131;30632:4;30506:131;:::i;:::-;30498:139;;30225:419;;;:::o;30650:222::-;30790:34;30786:1;30778:6;30774:14;30767:58;30859:5;30854:2;30846:6;30842:15;30835:30;30650:222;:::o;30878:366::-;31020:3;31041:67;31105:2;31100:3;31041:67;:::i;:::-;31034:74;;31117:93;31206:3;31117:93;:::i;:::-;31235:2;31230:3;31226:12;31219:19;;30878:366;;;:::o;31250:419::-;31416:4;31454:2;31443:9;31439:18;31431:26;;31503:9;31497:4;31493:20;31489:1;31478:9;31474:17;31467:47;31531:131;31657:4;31531:131;:::i;:::-;31523:139;;31250:419;;;:::o;31675:167::-;31815:19;31811:1;31803:6;31799:14;31792:43;31675:167;:::o;31848:366::-;31990:3;32011:67;32075:2;32070:3;32011:67;:::i;:::-;32004:74;;32087:93;32176:3;32087:93;:::i;:::-;32205:2;32200:3;32196:12;32189:19;;31848:366;;;:::o;32220:419::-;32386:4;32424:2;32413:9;32409:18;32401:26;;32473:9;32467:4;32463:20;32459:1;32448:9;32444:17;32437:47;32501:131;32627:4;32501:131;:::i;:::-;32493:139;;32220:419;;;:::o;32645:165::-;32785:17;32781:1;32773:6;32769:14;32762:41;32645:165;:::o;32816:366::-;32958:3;32979:67;33043:2;33038:3;32979:67;:::i;:::-;32972:74;;33055:93;33144:3;33055:93;:::i;:::-;33173:2;33168:3;33164:12;33157:19;;32816:366;;;:::o;33188:419::-;33354:4;33392:2;33381:9;33377:18;33369:26;;33441:9;33435:4;33431:20;33427:1;33416:9;33412:17;33405:47;33469:131;33595:4;33469:131;:::i;:::-;33461:139;;33188:419;;;:::o;33613:172::-;33753:24;33749:1;33741:6;33737:14;33730:48;33613:172;:::o;33791:366::-;33933:3;33954:67;34018:2;34013:3;33954:67;:::i;:::-;33947:74;;34030:93;34119:3;34030:93;:::i;:::-;34148:2;34143:3;34139:12;34132:19;;33791:366;;;:::o;34163:419::-;34329:4;34367:2;34356:9;34352:18;34344:26;;34416:9;34410:4;34406:20;34402:1;34391:9;34387:17;34380:47;34444:131;34570:4;34444:131;:::i;:::-;34436:139;;34163:419;;;:::o;34588:241::-;34728:34;34724:1;34716:6;34712:14;34705:58;34797:24;34792:2;34784:6;34780:15;34773:49;34588:241;:::o;34835:366::-;34977:3;34998:67;35062:2;35057:3;34998:67;:::i;:::-;34991:74;;35074:93;35163:3;35074:93;:::i;:::-;35192:2;35187:3;35183:12;35176:19;;34835:366;;;:::o;35207:419::-;35373:4;35411:2;35400:9;35396:18;35388:26;;35460:9;35454:4;35450:20;35446:1;35435:9;35431:17;35424:47;35488:131;35614:4;35488:131;:::i;:::-;35480:139;;35207:419;;;:::o;35632:169::-;35772:21;35768:1;35760:6;35756:14;35749:45;35632:169;:::o;35807:366::-;35949:3;35970:67;36034:2;36029:3;35970:67;:::i;:::-;35963:74;;36046:93;36135:3;36046:93;:::i;:::-;36164:2;36159:3;36155:12;36148:19;;35807:366;;;:::o;36179:419::-;36345:4;36383:2;36372:9;36368:18;36360:26;;36432:9;36426:4;36422:20;36418:1;36407:9;36403:17;36396:47;36460:131;36586:4;36460:131;:::i;:::-;36452:139;;36179:419;;;:::o;36604:242::-;36744:34;36740:1;36732:6;36728:14;36721:58;36813:25;36808:2;36800:6;36796:15;36789:50;36604:242;:::o;36852:366::-;36994:3;37015:67;37079:2;37074:3;37015:67;:::i;:::-;37008:74;;37091:93;37180:3;37091:93;:::i;:::-;37209:2;37204:3;37200:12;37193:19;;36852:366;;;:::o;37224:419::-;37390:4;37428:2;37417:9;37413:18;37405:26;;37477:9;37471:4;37467:20;37463:1;37452:9;37448:17;37441:47;37505:131;37631:4;37505:131;:::i;:::-;37497:139;;37224:419;;;:::o;37649:137::-;37703:5;37734:6;37728:13;37719:22;;37750:30;37774:5;37750:30;:::i;:::-;37649:137;;;;:::o;37792:345::-;37859:6;37908:2;37896:9;37887:7;37883:23;37879:32;37876:119;;;37914:79;;:::i;:::-;37876:119;38034:1;38059:61;38112:7;38103:6;38092:9;38088:22;38059:61;:::i;:::-;38049:71;;38005:125;37792:345;;;;:::o;38143:775::-;38376:4;38414:3;38403:9;38399:19;38391:27;;38428:71;38496:1;38485:9;38481:17;38472:6;38428:71;:::i;:::-;38509:72;38577:2;38566:9;38562:18;38553:6;38509:72;:::i;:::-;38591;38659:2;38648:9;38644:18;38635:6;38591:72;:::i;:::-;38673;38741:2;38730:9;38726:18;38717:6;38673:72;:::i;:::-;38755:73;38823:3;38812:9;38808:19;38799:6;38755:73;:::i;:::-;38838;38906:3;38895:9;38891:19;38882:6;38838:73;:::i;:::-;38143:775;;;;;;;;;:::o;38924:170::-;39064:22;39060:1;39052:6;39048:14;39041:46;38924:170;:::o;39100:366::-;39242:3;39263:67;39327:2;39322:3;39263:67;:::i;:::-;39256:74;;39339:93;39428:3;39339:93;:::i;:::-;39457:2;39452:3;39448:12;39441:19;;39100:366;;;:::o;39472:419::-;39638:4;39676:2;39665:9;39661:18;39653:26;;39725:9;39719:4;39715:20;39711:1;39700:9;39696:17;39689:47;39753:131;39879:4;39753:131;:::i;:::-;39745:139;;39472:419;;;:::o;39897:191::-;39937:4;39957:20;39975:1;39957:20;:::i;:::-;39952:25;;39991:20;40009:1;39991:20;:::i;:::-;39986:25;;40030:1;40027;40024:8;40021:34;;;40035:18;;:::i;:::-;40021:34;40080:1;40077;40073:9;40065:17;;39897:191;;;;:::o;40094:225::-;40234:34;40230:1;40222:6;40218:14;40211:58;40303:8;40298:2;40290:6;40286:15;40279:33;40094:225;:::o;40325:366::-;40467:3;40488:67;40552:2;40547:3;40488:67;:::i;:::-;40481:74;;40564:93;40653:3;40564:93;:::i;:::-;40682:2;40677:3;40673:12;40666:19;;40325:366;;;:::o;40697:419::-;40863:4;40901:2;40890:9;40886:18;40878:26;;40950:9;40944:4;40940:20;40936:1;40925:9;40921:17;40914:47;40978:131;41104:4;40978:131;:::i;:::-;40970:139;;40697:419;;;:::o;41122:147::-;41223:11;41260:3;41245:18;;41122:147;;;;:::o;41275:114::-;;:::o;41395:398::-;41554:3;41575:83;41656:1;41651:3;41575:83;:::i;:::-;41568:90;;41667:93;41756:3;41667:93;:::i;:::-;41785:1;41780:3;41776:11;41769:18;;41395:398;;;:::o;41799:379::-;41983:3;42005:147;42148:3;42005:147;:::i;:::-;41998:154;;42169:3;42162:10;;41799:379;;;:::o;42184:180::-;42232:77;42229:1;42222:88;42329:4;42326:1;42319:15;42353:4;42350:1;42343:15;42370:180;42418:77;42415:1;42408:88;42515:4;42512:1;42505:15;42539:4;42536:1;42529:15;42556:143;42613:5;42644:6;42638:13;42629:22;;42660:33;42687:5;42660:33;:::i;:::-;42556:143;;;;:::o;42705:351::-;42775:6;42824:2;42812:9;42803:7;42799:23;42795:32;42792:119;;;42830:79;;:::i;:::-;42792:119;42950:1;42975:64;43031:7;43022:6;43011:9;43007:22;42975:64;:::i;:::-;42965:74;;42921:128;42705:351;;;;:::o;43062:85::-;43107:7;43136:5;43125:16;;43062:85;;;:::o;43153:158::-;43211:9;43244:61;43262:42;43271:32;43297:5;43271:32;:::i;:::-;43262:42;:::i;:::-;43244:61;:::i;:::-;43231:74;;43153:158;;;:::o;43317:147::-;43412:45;43451:5;43412:45;:::i;:::-;43407:3;43400:58;43317:147;;:::o;43470:114::-;43537:6;43571:5;43565:12;43555:22;;43470:114;;;:::o;43590:184::-;43689:11;43723:6;43718:3;43711:19;43763:4;43758:3;43754:14;43739:29;;43590:184;;;;:::o;43780:132::-;43847:4;43870:3;43862:11;;43900:4;43895:3;43891:14;43883:22;;43780:132;;;:::o;43918:108::-;43995:24;44013:5;43995:24;:::i;:::-;43990:3;43983:37;43918:108;;:::o;44032:179::-;44101:10;44122:46;44164:3;44156:6;44122:46;:::i;:::-;44200:4;44195:3;44191:14;44177:28;;44032:179;;;;:::o;44217:113::-;44287:4;44319;44314:3;44310:14;44302:22;;44217:113;;;:::o;44366:732::-;44485:3;44514:54;44562:5;44514:54;:::i;:::-;44584:86;44663:6;44658:3;44584:86;:::i;:::-;44577:93;;44694:56;44744:5;44694:56;:::i;:::-;44773:7;44804:1;44789:284;44814:6;44811:1;44808:13;44789:284;;;44890:6;44884:13;44917:63;44976:3;44961:13;44917:63;:::i;:::-;44910:70;;45003:60;45056:6;45003:60;:::i;:::-;44993:70;;44849:224;44836:1;44833;44829:9;44824:14;;44789:284;;;44793:14;45089:3;45082:10;;44490:608;;;44366:732;;;;:::o;45104:831::-;45367:4;45405:3;45394:9;45390:19;45382:27;;45419:71;45487:1;45476:9;45472:17;45463:6;45419:71;:::i;:::-;45500:80;45576:2;45565:9;45561:18;45552:6;45500:80;:::i;:::-;45627:9;45621:4;45617:20;45612:2;45601:9;45597:18;45590:48;45655:108;45758:4;45749:6;45655:108;:::i;:::-;45647:116;;45773:72;45841:2;45830:9;45826:18;45817:6;45773:72;:::i;:::-;45855:73;45923:3;45912:9;45908:19;45899:6;45855:73;:::i;:::-;45104:831;;;;;;;;:::o
Swarm Source
ipfs://55b332e9006a1ae3046ed3a7a523ab374dea7623ded2f4a7b1c5fc11682122df
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.