Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 TWITTER
Holders
125
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
42,233,716.738410189997540416 TWITTERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
larry
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ // https://larrythebird.xyz/ // https://twitter.com/Larrythebirdeth // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } 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 _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); 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); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, 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); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB); } interface ILpPair { function sync() external; } contract larry is ERC20, Ownable { IDexRouter public immutable dexRouter; address public immutable lpPair; bool private swapping; address public operationsWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; uint256 public liquidityActiveBlock = 0; // 0 means liquidity is not active yet uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public earlyBuyPenaltyEnd; // determines when snipers/bots can sell without extra penalty bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; uint256 public constant feeDivisor = 10000; uint256 public totalSellFees; uint256 public operationsSellFee; uint256 public liquiditySellFee; uint256 public totalBuyFees; uint256 public operationsBuyFee; uint256 public liquidityBuyFee; uint256 public tokensForOperations; uint256 public tokensForLiquidity; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; address[] private earlyBuyers; uint256 private deadBlocks; mapping (address => bool) public _isBot; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event ExcludedMaxTransactionAmount(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event OperationsWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor() ERC20("Larry The Bird", "TWITTER", 18) { address _dexRouter; if(block.chainid == 1){ _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uni V2 Router } else if(block.chainid == 5){ _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Goerli Router } else if(block.chainid == 56){ _dexRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // Pancake V2 Router } else { revert("Chain not configured"); } dexRouter = IDexRouter(_dexRouter); lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH()); _setAutomatedMarketMakerPair(address(lpPair), true); uint256 totalSupply = 10 * 1e9 * (10 ** decimals()); maxTransactionAmount = totalSupply * 2 / 100; // 0.5% maxTransactionAmountTxn swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap tokens amount maxWallet = totalSupply * 2 / 100; // 1% Max wallet operationsBuyFee = 2500; // 100 = 1% liquidityBuyFee = 0; totalBuyFees = operationsBuyFee + liquidityBuyFee; operationsSellFee = 2500; liquiditySellFee = 0; totalSellFees = operationsSellFee + liquiditySellFee; operationsWallet = address(msg.sender); // set as operations wallet // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(address(_dexRouter), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(_dexRouter), true); excludeFromMaxTransaction(address(0xdead), true); _createInitialSupply(address(owner()), totalSupply); _approve(address(this), address(dexRouter), type(uint256).max); _approve(owner(), address(dexRouter), totalSupply); } receive() external payable {} // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool){ transferDelayEnabled = false; return true; } // once enabled, can never be turned off function enableTrading(uint256 _deadBlocks) external onlyOwner { require(!tradingActive, "Cannot re-enable trading"); tradingActive = true; swapEnabled = true; tradingActiveBlock = block.number; deadBlocks = _deadBlocks; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function updateMaxAmount(uint256 newNum) external onlyOwner { require(newNum > (totalSupply() * 1 / 1000) / (10 ** decimals()), "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10 ** decimals()); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum > (totalSupply() * 1 / 100)/(10 ** decimals()), "Cannot set maxWallet lower than 1%"); maxWallet = newNum * (10 ** decimals()); } function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner { operationsBuyFee = _operationsFee; liquidityBuyFee = _liquidityFee; totalBuyFees = operationsBuyFee + liquidityBuyFee; require(totalBuyFees <= 10000, "Must keep fees at 100% or less"); } function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner { operationsSellFee = _operationsFee; liquiditySellFee = _liquidityFee; totalSellFees = operationsSellFee + liquiditySellFee; require(totalSellFees <= 10000, "Must keep fees at 100% or less"); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; emit ExcludedMaxTransactionAmount(updAds, isEx); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } emit ExcludeMultipleAccountsFromFees(accounts, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != lpPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateOperationsWallet(address newOperationsWallet) external onlyOwner { require(newOperationsWallet != address(0), "may not set to 0 address"); excludeFromFees(newOperationsWallet, true); emit OperationsWalletUpdated(newOperationsWallet, operationsWallet); operationsWallet = newOperationsWallet; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool){ limitsInEffect = false; transferDelayEnabled = false; return true; } 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(!_isBot[to] && !_isBot[from], "No bots"); if(amount == 0) { super._transfer(from, to, 0); return; } if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active yet."); } if(limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ){ // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ require(_holderLastTransferTimestamp[tx.origin] + 15 < block.number, "Transfer Delay enabled."); if (to != address(dexRouter) && to != address(lpPair)){ _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // no taxes on transfers (non buys/sells) if(takeFee){ if(tradingActiveBlock + deadBlocks >= block.number && (automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from])){ fees = amount * totalBuyFees / feeDivisor; tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees; tokensForOperations += fees * operationsBuyFee / totalBuyFees; earlyBuyers.push(to); } // on sell else if (automatedMarketMakerPairs[to] && totalSellFees > 0){ fees = amount * totalSellFees / feeDivisor; tokensForLiquidity += fees * liquiditySellFee / totalSellFees; tokensForOperations += fees * operationsSellFee / totalSellFees; } // on buy else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) { fees = amount * totalBuyFees / feeDivisor; tokensForLiquidity += fees * liquidityBuyFee / totalBuyFees; tokensForOperations += fees * operationsBuyFee / totalBuyFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(operationsWallet), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(tokensForLiquidity > 0){ uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap; super._transfer(address(this), lpPair, liquidityTokens); try ILpPair(lpPair).sync(){} catch {} contractBalance -= liquidityTokens; totalTokensToSwap -= tokensForLiquidity; tokensForLiquidity = 0; } if(contractBalance > 0){ swapTokensForEth(contractBalance); } } function descendToPrison() external onlyOwner { require(earlyBuyers.length > 0, "No bots to block"); for(uint256 i = 0; i < earlyBuyers.length; i++){ if(!_isBot[earlyBuyers[i]]){ _isBot[earlyBuyers[i]] = true; } } delete earlyBuyers; } function freeTotwitter(address[] memory _addresses) external onlyOwner { for(uint256 i = 0; i < _addresses.length; i++){ _isBot[_addresses[i]] = false; } } function addPrisoner(address[] memory _addresses) external onlyOwner { for(uint256 i = 0; i < _addresses.length; i++){ _isBot[_addresses[i]] = true; } } function twitterToWallets(address[] memory wallets, uint256[] memory amountsInWei) external onlyOwner { require(wallets.length == amountsInWei.length, "arrays must be the same length"); require(wallets.length < 600, "Can only airdrop 600 wallets per txn due to gas limits"); for(uint256 i = 0; i < wallets.length; i++){ super._transfer(msg.sender, wallets[i], amountsInWei[i]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedMaxTransactionAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"OperationsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addPrisoner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"descendToPrison","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"freeTotwitter","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":"account","type":"address"}],"name":"isExcludedFromFees","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":"liquidityActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInWei","type":"uint256[]"}],"name":"twitterToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"updateOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600a556000600b556001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200008757600080fd5b506040518060400160405280600e81526020017f4c617272792054686520426972640000000000000000000000000000000000008152506040518060400160405280600781526020017f5457495454455200000000000000000000000000000000000000000000000000815250601282600390816200010791906200101f565b5081600490816200011991906200101f565b5080600560006101000a81548160ff021916908360ff16021790555050505060006200014a620006ee60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600146036200021157737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029c565b600546036200023757737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029b565b603846036200025d577310ed43c718714eb63d5aa57b78b54704e256024e90506200029a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002919062001167565b60405180910390fd5b5b5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003449190620011f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d49190620011f3565b6040518363ffffffff1660e01b8152600401620003f392919062001236565b6020604051808303816000875af115801562000413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004399190620011f3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200048160a0516001620006f660201b60201c565b600062000493620007a960201b60201c565b600a620004a19190620013f3565b6402540be400620004b3919062001444565b90506064600282620004c6919062001444565b620004d29190620014be565b600781905550612710600582620004ea919062001444565b620004f69190620014be565b60088190555060646002826200050d919062001444565b620005199190620014be565b6009819055506109c46014819055506000601581905550601554601454620005429190620014f6565b6013819055506109c460118190555060006012819055506012546011546200056b9190620014f6565b60108190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005d4620005c6620007c060201b60201c565b6001620007ea60201b60201c565b620005e7306001620007ea60201b60201c565b620005fc61dead6001620007ea60201b60201c565b6200060f826001620007ea60201b60201c565b6200063162000623620007c060201b60201c565b60016200093760201b60201c565b620006443060016200093760201b60201c565b620006578260016200093760201b60201c565b6200066c61dead60016200093760201b60201c565b6200068d62000680620007c060201b60201c565b8262000a8460201b60201c565b620006c2306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bd460201b60201c565b620006e6620006d6620007c060201b60201c565b6080518362000bd460201b60201c565b5050620017ad565b600033905090565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200075f82826200093760201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900460ff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007fa620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200088c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008839062001581565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200092b9190620015c0565b60405180910390a25050565b62000947620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d09062001581565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d958260405162000a789190620015c0565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aed906200162d565b60405180910390fd5b806002600082825462000b0a9190620014f6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000b619190620014f6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000bc8919062001660565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c3d90620016f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000caf906200178b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d98919062001660565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e2757607f821691505b60208210810362000e3d5762000e3c62000ddf565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ea77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e68565b62000eb3868362000e68565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f0062000efa62000ef48462000ecb565b62000ed5565b62000ecb565b9050919050565b6000819050919050565b62000f1c8362000edf565b62000f3462000f2b8262000f07565b84845462000e75565b825550505050565b600090565b62000f4b62000f3c565b62000f5881848462000f11565b505050565b5b8181101562000f805762000f7460008262000f41565b60018101905062000f5e565b5050565b601f82111562000fcf5762000f998162000e43565b62000fa48462000e58565b8101602085101562000fb4578190505b62000fcc62000fc38562000e58565b83018262000f5d565b50505b505050565b600082821c905092915050565b600062000ff46000198460080262000fd4565b1980831691505092915050565b60006200100f838362000fe1565b9150826002028217905092915050565b6200102a8262000da5565b67ffffffffffffffff81111562001046576200104562000db0565b5b62001052825462000e0e565b6200105f82828562000f84565b600060209050601f83116001811462001097576000841562001082578287015190505b6200108e858262001001565b865550620010fe565b601f198416620010a78662000e43565b60005b82811015620010d157848901518255600182019150602085019450602081019050620010aa565b86831015620010f15784890151620010ed601f89168262000fe1565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f436861696e206e6f7420636f6e66696775726564000000000000000000000000600082015250565b60006200114f60148362001106565b91506200115c8262001117565b602082019050919050565b60006020820190508181036000830152620011828162001140565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011bb826200118e565b9050919050565b620011cd81620011ae565b8114620011d957600080fd5b50565b600081519050620011ed81620011c2565b92915050565b6000602082840312156200120c576200120b62001189565b5b60006200121c84828501620011dc565b91505092915050565b6200123081620011ae565b82525050565b60006040820190506200124d600083018562001225565b6200125c602083018462001225565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012f157808604811115620012c957620012c862001263565b5b6001851615620012d95780820291505b8081029050620012e98562001292565b9450620012a9565b94509492505050565b6000826200130c5760019050620013df565b816200131c5760009050620013df565b8160018114620013355760028114620013405762001376565b6001915050620013df565b60ff84111562001355576200135462001263565b5b8360020a9150848211156200136f576200136e62001263565b5b50620013df565b5060208310610133831016604e8410600b8410161715620013b05782820a905083811115620013aa57620013a962001263565b5b620013df565b620013bf84848460016200129f565b92509050818404811115620013d957620013d862001263565b5b81810290505b9392505050565b600060ff82169050919050565b6000620014008262000ecb565b91506200140d83620013e6565b92506200143c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012fa565b905092915050565b6000620014518262000ecb565b91506200145e8362000ecb565b92508282026200146e8162000ecb565b9150828204841483151762001488576200148762001263565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620014cb8262000ecb565b9150620014d88362000ecb565b925082620014eb57620014ea6200148f565b5b828204905092915050565b6000620015038262000ecb565b9150620015108362000ecb565b92508282019050808211156200152b576200152a62001263565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200156960208362001106565b9150620015768262001531565b602082019050919050565b600060208201905081810360008301526200159c816200155a565b9050919050565b60008115159050919050565b620015ba81620015a3565b82525050565b6000602082019050620015d76000830184620015af565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001615601f8362001106565b91506200162282620015dd565b602082019050919050565b60006020820190508181036000830152620016488162001606565b9050919050565b6200165a8162000ecb565b82525050565b60006020820190506200167760008301846200164f565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620016db60248362001106565b9150620016e8826200167d565b604082019050919050565b600060208201905081810360008301526200170e81620016cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200177360228362001106565b9150620017808262001715565b604082019050919050565b60006020820190508181036000830152620017a68162001764565b9050919050565b60805160a051615ea7620018046000396000818161180f015281816120ac01528181613374015281816140c401526140eb015260008181610f330152818161331d01528181614242015261431f0152615ea76000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c18bc19511610102578063e2f45605116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e2f4560514610c43578063e884f26014610c6e578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063c8c8ebe4116100dc578063c8c8ebe414610b85578063ccb6135814610bb0578063d0a3981414610bdb578063dd62ed3e14610c0657610381565b8063c18bc19514610b08578063c492f04614610b31578063c876d0b914610b5a57610381565b8063abb810521161016f578063bbc0c74211610149578063bbc0c74214610a62578063c024666814610a8d578063c13a0cea14610ab6578063c182df9714610adf57610381565b8063abb81052146109bd578063b62496f5146109fa578063b9e9370014610a3757610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b8063452ed4f111610285578063452ed4f11461068d5780634a62bb65146106b85780634fbee193146106e357806366ca9b831461072057610381565b8063313ce5671461060e578063327b8e7514610639578063395093511461065057610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105525780631fc851bd1461057d57806323b872dd146105a857806330d5d18d146105e557610381565b8063106b5da1146104c157806310d5de53146104ea57806318160ddd1461052757610381565b8063095ea7b311610354578063095ea7b314610405578063099d0d30146104425780630d128cfe1461046d5780630f4432e31461049657610381565b806302dbd8f81461038657806306fdde03146103af5780630758d924146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b6040516103d1919061452f565b60405180910390f35b3480156103e657600080fd5b506103ef610f31565b6040516103fc91906145d0565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190614629565b610f55565b6040516104399190614684565b60405180910390f35b34801561044e57600080fd5b50610457610f73565b60405161046491906146ae565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190614811565b610f79565b005b3480156104a257600080fd5b506104ab6110a5565b6040516104b891906146ae565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061485a565b6110ab565b005b3480156104f657600080fd5b50610511600480360381019061050c9190614887565b6111ea565b60405161051e9190614684565b60405180910390f35b34801561053357600080fd5b5061053c61120a565b60405161054991906146ae565b60405180910390f35b34801561055e57600080fd5b50610567611214565b60405161057491906146ae565b60405180910390f35b34801561058957600080fd5b5061059261121a565b60405161059f91906146ae565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906148b4565b611220565b6040516105dc9190614684565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190614887565b611340565b005b34801561061a57600080fd5b50610623611511565b6040516106309190614923565b60405180910390f35b34801561064557600080fd5b5061064e611528565b005b34801561065c57600080fd5b5061067760048036038101906106729190614629565b611761565b6040516106849190614684565b60405180910390f35b34801561069957600080fd5b506106a261180d565b6040516106af919061494d565b60405180910390f35b3480156106c457600080fd5b506106cd611831565b6040516106da9190614684565b60405180910390f35b3480156106ef57600080fd5b5061070a60048036038101906107059190614887565b611844565b6040516107179190614684565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061445f565b61189a565b005b34801561075557600080fd5b5061075e6119a0565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190614887565b6119b3565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c66119fb565b005b3480156107d457600080fd5b506107dd611b53565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611b59565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614994565b611c2f565b005b34801561085357600080fd5b5061086e6004803603810190610869919061485a565b611d6f565b005b34801561087c57600080fd5b50610885611e9d565b604051610892919061494d565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906149d4565b611ec7565b005b3480156108d057600080fd5b506108d9611f7b565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b5061090461200d565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614994565b612013565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b612146565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612231565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614887565b61224f565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c9190614887565b61226f565b604051610a2e9190614684565b60405180910390f35b348015610a4357600080fd5b50610a4c61228f565b604051610a5991906146ae565b60405180910390f35b348015610a6e57600080fd5b50610a77612295565b604051610a849190614684565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614994565b6122a8565b005b348015610ac257600080fd5b50610add6004803603810190610ad89190614ac4565b6123e8565b005b348015610aeb57600080fd5b50610b066004803603810190610b019190614811565b61256b565b005b348015610b1457600080fd5b50610b2f6004803603810190610b2a919061485a565b612697565b005b348015610b3d57600080fd5b50610b586004803603810190610b539190614b97565b6127d5565b005b348015610b6657600080fd5b50610b6f61294c565b604051610b7c9190614684565b60405180910390f35b348015610b9157600080fd5b50610b9a61295f565b604051610ba791906146ae565b60405180910390f35b348015610bbc57600080fd5b50610bc5612965565b604051610bd291906146ae565b60405180910390f35b348015610be757600080fd5b50610bf061296b565b604051610bfd91906146ae565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c289190614bf7565b612971565b604051610c3a91906146ae565b60405180910390f35b348015610c4f57600080fd5b50610c586129f8565b604051610c6591906146ae565b60405180910390f35b348015610c7a57600080fd5b50610c836129fe565b604051610c909190614684565b60405180910390f35b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614887565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d90919061494d565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b606060038054610eae90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90614da1565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f69610f62612cbd565b8484612cc5565b6001905092915050565b60125481565b610f81612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790614c83565b60405180910390fd5b60005b81518110156110a1576001601b600084848151811061103557611034614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109990614e01565b915050611013565b5050565b600a5481565b6110b3612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990614c83565b60405180910390fd5b61114a611511565b600a6111569190614f7c565b6103e8600161116361120a565b61116d9190614fc7565b6111779190615038565b6111819190615038565b81116111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b9906150db565b60405180910390fd5b6111ca611511565b600a6111d69190614f7c565b816111e19190614fc7565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061122d848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611278612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611334578281101561131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061516d565b60405180910390fd5b6113338561132b612cbd565b858403612cc5565b5b60019150509392505050565b611348612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d906151d9565b60405180910390fd5b6114518160016122a8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b611530612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690614c83565b60405180910390fd5b600060198054905011611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90615245565b60405180910390fd5b60005b60198054905081101561175057601b60006019838154811061162f5761162e614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173d576001601b6000601984815481106116c0576116bf614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061174890614e01565b91505061160a565b506019600061175f91906143d7565b565b600061180361176e612cbd565b84846001600061177c612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117fe9190614cd2565b612cc5565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118a2612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890614c83565b60405180910390fd5b816014819055508060158190555060155460145461194f9190614cd2565b601381905550612710601354111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a03612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611b63612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c37612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611d639190614684565b60405180910390a25050565b611d77612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906152b1565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611ecf612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611f8a90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb690614da1565b80156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905090565b61271081565b61201b612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614c83565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90615369565b60405180910390fd5b6121428282613d46565b5050565b60008060016000612155612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906153fb565b60405180910390fd5b61222661221d612cbd565b85858403612cc5565b600191505092915050565b600061224561223e612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b6122b0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461233f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233690614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516123dc9190614684565b60405180910390a25050565b6123f0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690614c83565b60405180910390fd5b80518251146124c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ba90615467565b60405180910390fd5b610258825110612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff906154f9565b60405180910390fd5b60005b8251811015612566576125533384838151811061252b5761252a614dd2565b5b602002602001015184848151811061254657612545614dd2565b5b6020026020010151613df1565b808061255e90614e01565b91505061250b565b505050565b612573612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990614c83565b60405180910390fd5b60005b8151811015612693576000601b600084848151811061262757612626614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061268b90614e01565b915050612605565b5050565b61269f612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272590614c83565b60405180910390fd5b612736611511565b600a6127429190614f7c565b6064600161274e61120a565b6127589190614fc7565b6127629190615038565b61276c9190615038565b81116127ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a49061558b565b60405180910390fd5b6127b5611511565b600a6127c19190614f7c565b816127cc9190614fc7565b60098190555050565b6127dd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286390614c83565b60405180910390fd5b60005b8383905081101561290b57816018600086868581811061289257612891614dd2565b5b90506020020160208101906128a79190614887565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061290390614e01565b91505061286f565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161293f9392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000612a08612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e90614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613df1565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611e9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611e9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b836119b3565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb836119b3565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b6000613747306119b3565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190614fc7565b613a6f9190615038565b905060135460155482613a829190614fc7565b613a8c9190615038565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190614fc7565b613abf9190615038565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190614fc7565b613bba9190615038565b905060105460125482613bcd9190614fc7565b613bd79190615038565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190614fc7565b613c0a9190615038565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190614fc7565b613ca29190615038565b905060135460155482613cb59190614fc7565b613cbf9190615038565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190614fc7565b613cf29190615038565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613df1565b5b8085613d2e9190615c4e565b94505b613d3c878787613df1565b505050505b505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613da78282611c2f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e57906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec69061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c90615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613fe89190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161404c91906146ae565b60405180910390a350505050565b6000614065306119b3565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190614fc7565b6140bc9190615038565b90506140e9307f000000000000000000000000000000000000000000000000000000000000000083613df1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6146ce565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614706826144e5565b810181811067ffffffffffffffff82111715614725576147246146ce565b5b80604052505050565b6000614738614415565b905061474482826146fd565b919050565b600067ffffffffffffffff821115614764576147636146ce565b5b602082029050602081019050919050565b600080fd5b600061478d61478884614749565b61472e565b905080838252602082019050602084028301858111156147b0576147af614775565b5b835b818110156147d957806147c58882614614565b8452602084019350506020810190506147b2565b5050509392505050565b600082601f8301126147f8576147f76146c9565b5b813561480884826020860161477a565b91505092915050565b6000602082840312156148275761482661441f565b5b600082013567ffffffffffffffff81111561484557614844614424565b5b614851848285016147e3565b91505092915050565b6000602082840312156148705761486f61441f565b5b600061487e8482850161444a565b91505092915050565b60006020828403121561489d5761489c61441f565b5b60006148ab84828501614614565b91505092915050565b6000806000606084860312156148cd576148cc61441f565b5b60006148db86828701614614565b93505060206148ec86828701614614565b92505060406148fd8682870161444a565b9150509250925092565b600060ff82169050919050565b61491d81614907565b82525050565b60006020820190506149386000830184614914565b92915050565b614947816145eb565b82525050565b6000602082019050614962600083018461493e565b92915050565b61497181614669565b811461497c57600080fd5b50565b60008135905061498e81614968565b92915050565b600080604083850312156149ab576149aa61441f565b5b60006149b985828601614614565b92505060206149ca8582860161497f565b9150509250929050565b6000602082840312156149ea576149e961441f565b5b60006149f88482850161497f565b91505092915050565b600067ffffffffffffffff821115614a1c57614a1b6146ce565b5b602082029050602081019050919050565b6000614a40614a3b84614a01565b61472e565b90508083825260208201905060208402830185811115614a6357614a62614775565b5b835b81811015614a8c5780614a78888261444a565b845260208401935050602081019050614a65565b5050509392505050565b600082601f830112614aab57614aaa6146c9565b5b8135614abb848260208601614a2d565b91505092915050565b60008060408385031215614adb57614ada61441f565b5b600083013567ffffffffffffffff811115614af957614af8614424565b5b614b05858286016147e3565b925050602083013567ffffffffffffffff811115614b2657614b25614424565b5b614b3285828601614a96565b9150509250929050565b600080fd5b60008083601f840112614b5757614b566146c9565b5b8235905067ffffffffffffffff811115614b7457614b73614b3c565b5b602083019150836020820283011115614b9057614b8f614775565b5b9250929050565b600080600060408486031215614bb057614baf61441f565b5b600084013567ffffffffffffffff811115614bce57614bcd614424565b5b614bda86828701614b41565b93509350506020614bed8682870161497f565b9150509250925092565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614db957607f821691505b602082108103614dcc57614dcb614d72565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e0c82614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e3e57614e3d614ca3565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614ea057808604811115614e7c57614e7b614ca3565b5b6001851615614e8b5780820291505b8081029050614e9985614e49565b9450614e60565b94509492505050565b600082614eb95760019050614f75565b81614ec75760009050614f75565b8160018114614edd5760028114614ee757614f16565b6001915050614f75565b60ff841115614ef957614ef8614ca3565b5b8360020a915084821115614f1057614f0f614ca3565b5b50614f75565b5060208310610133831016604e8410600b8410161715614f4b5782820a905083811115614f4657614f45614ca3565b5b614f75565b614f588484846001614e56565b92509050818404811115614f6f57614f6e614ca3565b5b81810290505b9392505050565b6000614f8782614429565b9150614f9283614907565b9250614fbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ea9565b905092915050565b6000614fd282614429565b9150614fdd83614429565b9250828202614feb81614429565b9150828204841483151761500257615001614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061504382614429565b915061504e83614429565b92508261505e5761505d615009565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006150c5602f836144aa565b91506150d082615069565b604082019050919050565b600060208201905081810360008301526150f4816150b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151576028836144aa565b9150615162826150fb565b604082019050919050565b600060208201905081810360008301526151868161514a565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b60006151c36018836144aa565b91506151ce8261518d565b602082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b600061522f6010836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061529b6018836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006153536045836144aa565b915061535e826152d1565b606082019050919050565b6000602082019050818103600083015261538281615346565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006153e56025836144aa565b91506153f082615389565b604082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000615451601e836144aa565b915061545c8261541b565b602082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b60006154e36036836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a606083018561493e565b615e67608083018461469f565b969550505050505056fea2646970667358221220a57021e1ea4482f1a80982b72f06d66d528d147fdf1efbc18c16ca32b6bcfd7164736f6c63430008130033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063c18bc19511610102578063e2f45605116100a0578063f2fde38b1161006f578063f2fde38b14610cef578063f8b45b0514610d18578063fb002c9714610d43578063fd72e22a14610d6e57610381565b8063e2f4560514610c43578063e884f26014610c6e578063ee40166e14610c99578063efcc1b2f14610cc457610381565b8063c8c8ebe4116100dc578063c8c8ebe414610b85578063ccb6135814610bb0578063d0a3981414610bdb578063dd62ed3e14610c0657610381565b8063c18bc19514610b08578063c492f04614610b31578063c876d0b914610b5a57610381565b8063abb810521161016f578063bbc0c74211610149578063bbc0c74214610a62578063c024666814610a8d578063c13a0cea14610ab6578063c182df9714610adf57610381565b8063abb81052146109bd578063b62496f5146109fa578063b9e9370014610a3757610381565b80639a36f932116101ab5780639a36f932146108ef5780639a7a23d61461091a578063a457c2d714610943578063a9059cbb1461098057610381565b80638da5cb5b14610870578063924de9b71461089b57806395d89b41146108c457610381565b8063313ce567116102ab5780636ddd1713116102495780637506cbd8116102235780637506cbd8146107c8578063751039fc146107f35780637571336a1461081e57806382aa7c681461084757610381565b80636ddd17131461074957806370a0823114610774578063715018a6146107b157610381565b8063452ed4f111610285578063452ed4f11461068d5780634a62bb65146106b85780634fbee193146106e357806366ca9b831461072057610381565b8063313ce5671461060e578063327b8e7514610639578063395093511461065057610381565b8063106b5da1116103185780631a8145bb116102f25780631a8145bb146105525780631fc851bd1461057d57806323b872dd146105a857806330d5d18d146105e557610381565b8063106b5da1146104c157806310d5de53146104ea57806318160ddd1461052757610381565b8063095ea7b311610354578063095ea7b314610405578063099d0d30146104425780630d128cfe1461046d5780630f4432e31461049657610381565b806302dbd8f81461038657806306fdde03146103af5780630758d924146103da57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a8919061445f565b610d99565b005b3480156103bb57600080fd5b506103c4610e9f565b6040516103d1919061452f565b60405180910390f35b3480156103e657600080fd5b506103ef610f31565b6040516103fc91906145d0565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190614629565b610f55565b6040516104399190614684565b60405180910390f35b34801561044e57600080fd5b50610457610f73565b60405161046491906146ae565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190614811565b610f79565b005b3480156104a257600080fd5b506104ab6110a5565b6040516104b891906146ae565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e3919061485a565b6110ab565b005b3480156104f657600080fd5b50610511600480360381019061050c9190614887565b6111ea565b60405161051e9190614684565b60405180910390f35b34801561053357600080fd5b5061053c61120a565b60405161054991906146ae565b60405180910390f35b34801561055e57600080fd5b50610567611214565b60405161057491906146ae565b60405180910390f35b34801561058957600080fd5b5061059261121a565b60405161059f91906146ae565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906148b4565b611220565b6040516105dc9190614684565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190614887565b611340565b005b34801561061a57600080fd5b50610623611511565b6040516106309190614923565b60405180910390f35b34801561064557600080fd5b5061064e611528565b005b34801561065c57600080fd5b5061067760048036038101906106729190614629565b611761565b6040516106849190614684565b60405180910390f35b34801561069957600080fd5b506106a261180d565b6040516106af919061494d565b60405180910390f35b3480156106c457600080fd5b506106cd611831565b6040516106da9190614684565b60405180910390f35b3480156106ef57600080fd5b5061070a60048036038101906107059190614887565b611844565b6040516107179190614684565b60405180910390f35b34801561072c57600080fd5b506107476004803603810190610742919061445f565b61189a565b005b34801561075557600080fd5b5061075e6119a0565b60405161076b9190614684565b60405180910390f35b34801561078057600080fd5b5061079b60048036038101906107969190614887565b6119b3565b6040516107a891906146ae565b60405180910390f35b3480156107bd57600080fd5b506107c66119fb565b005b3480156107d457600080fd5b506107dd611b53565b6040516107ea91906146ae565b60405180910390f35b3480156107ff57600080fd5b50610808611b59565b6040516108159190614684565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190614994565b611c2f565b005b34801561085357600080fd5b5061086e6004803603810190610869919061485a565b611d6f565b005b34801561087c57600080fd5b50610885611e9d565b604051610892919061494d565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906149d4565b611ec7565b005b3480156108d057600080fd5b506108d9611f7b565b6040516108e6919061452f565b60405180910390f35b3480156108fb57600080fd5b5061090461200d565b60405161091191906146ae565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190614994565b612013565b005b34801561094f57600080fd5b5061096a60048036038101906109659190614629565b612146565b6040516109779190614684565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a29190614629565b612231565b6040516109b49190614684565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614887565b61224f565b6040516109f19190614684565b60405180910390f35b348015610a0657600080fd5b50610a216004803603810190610a1c9190614887565b61226f565b604051610a2e9190614684565b60405180910390f35b348015610a4357600080fd5b50610a4c61228f565b604051610a5991906146ae565b60405180910390f35b348015610a6e57600080fd5b50610a77612295565b604051610a849190614684565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614994565b6122a8565b005b348015610ac257600080fd5b50610add6004803603810190610ad89190614ac4565b6123e8565b005b348015610aeb57600080fd5b50610b066004803603810190610b019190614811565b61256b565b005b348015610b1457600080fd5b50610b2f6004803603810190610b2a919061485a565b612697565b005b348015610b3d57600080fd5b50610b586004803603810190610b539190614b97565b6127d5565b005b348015610b6657600080fd5b50610b6f61294c565b604051610b7c9190614684565b60405180910390f35b348015610b9157600080fd5b50610b9a61295f565b604051610ba791906146ae565b60405180910390f35b348015610bbc57600080fd5b50610bc5612965565b604051610bd291906146ae565b60405180910390f35b348015610be757600080fd5b50610bf061296b565b604051610bfd91906146ae565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c289190614bf7565b612971565b604051610c3a91906146ae565b60405180910390f35b348015610c4f57600080fd5b50610c586129f8565b604051610c6591906146ae565b60405180910390f35b348015610c7a57600080fd5b50610c836129fe565b604051610c909190614684565b60405180910390f35b348015610ca557600080fd5b50610cae612ab9565b604051610cbb91906146ae565b60405180910390f35b348015610cd057600080fd5b50610cd9612abf565b604051610ce691906146ae565b60405180910390f35b348015610cfb57600080fd5b50610d166004803603810190610d119190614887565b612ac5565b005b348015610d2457600080fd5b50610d2d612c8b565b604051610d3a91906146ae565b60405180910390f35b348015610d4f57600080fd5b50610d58612c91565b604051610d6591906146ae565b60405180910390f35b348015610d7a57600080fd5b50610d83612c97565b604051610d90919061494d565b60405180910390f35b610da1612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614c83565b60405180910390fd5b8160118190555080601281905550601254601154610e4e9190614cd2565b6010819055506127106010541115610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290614d52565b60405180910390fd5b5050565b606060038054610eae90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90614da1565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000610f69610f62612cbd565b8484612cc5565b6001905092915050565b60125481565b610f81612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790614c83565b60405180910390fd5b60005b81518110156110a1576001601b600084848151811061103557611034614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109990614e01565b915050611013565b5050565b600a5481565b6110b3612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990614c83565b60405180910390fd5b61114a611511565b600a6111569190614f7c565b6103e8600161116361120a565b61116d9190614fc7565b6111779190615038565b6111819190615038565b81116111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b9906150db565b60405180910390fd5b6111ca611511565b600a6111d69190614f7c565b816111e19190614fc7565b60078190555050565b601c6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60175481565b600c5481565b600061122d848484612e8e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611278612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611334578281101561131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061516d565b60405180910390fd5b6113338561132b612cbd565b858403612cc5565b5b60019150509392505050565b611348612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d906151d9565b60405180910390fd5b6114518160016122a8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f086aa05ff00214e2d0c7c02b8a46b2614ad955732e6b43aa8afca69ed1ad76f860405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900460ff16905090565b611530612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b690614c83565b60405180910390fd5b600060198054905011611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90615245565b60405180910390fd5b60005b60198054905081101561175057601b60006019838154811061162f5761162e614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173d576001601b6000601984815481106116c0576116bf614dd2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061174890614e01565b91505061160a565b506019600061175f91906143d7565b565b600061180361176e612cbd565b84846001600061177c612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117fe9190614cd2565b612cc5565b6001905092915050565b7f000000000000000000000000e336648cee2af77f7b487461ce8738eca9f7c03081565b600d60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118a2612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890614c83565b60405180910390fd5b816014819055508060158190555060155460145461194f9190614cd2565b601381905550612710601354111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614d52565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a03612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b6000611b63612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990614c83565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506000600f60006101000a81548160ff0219169083151502179055506001905090565b611c37612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90614c83565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f575f9d01836c9206322151b9e9ec3f2b77b87e71176933b9b44d2d732f768d9582604051611d639190614684565b60405180910390a25050565b611d77612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90614c83565b60405180910390fd5b600d60019054906101000a900460ff1615611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906152b1565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043600b8190555080601a8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611ecf612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c83565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b606060048054611f8a90614da1565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb690614da1565b80156120035780601f10611fd857610100808354040283529160200191612003565b820191906000526020600020905b815481529060010190602001808311611fe657829003601f168201915b5050505050905090565b61271081565b61201b612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a190614c83565b60405180910390fd5b7f000000000000000000000000e336648cee2af77f7b487461ce8738eca9f7c03073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90615369565b60405180910390fd5b6121428282613d46565b5050565b60008060016000612155612cbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906153fb565b60405180910390fd5b61222661221d612cbd565b85858403612cc5565b600191505092915050565b600061224561223e612cbd565b8484612e8e565b6001905092915050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601d6020528060005260406000206000915054906101000a900460ff1681565b60135481565b600d60019054906101000a900460ff1681565b6122b0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461233f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233690614c83565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516123dc9190614684565b60405180910390a25050565b6123f0612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690614c83565b60405180910390fd5b80518251146124c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ba90615467565b60405180910390fd5b610258825110612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff906154f9565b60405180910390fd5b60005b8251811015612566576125533384838151811061252b5761252a614dd2565b5b602002602001015184848151811061254657612545614dd2565b5b6020026020010151613df1565b808061255e90614e01565b91505061250b565b505050565b612573612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f990614c83565b60405180910390fd5b60005b8151811015612693576000601b600084848151811061262757612626614dd2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061268b90614e01565b915050612605565b5050565b61269f612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272590614c83565b60405180910390fd5b612736611511565b600a6127429190614f7c565b6064600161274e61120a565b6127589190614fc7565b6127629190615038565b61276c9190615038565b81116127ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a49061558b565b60405180910390fd5b6127b5611511565b600a6127c19190614f7c565b816127cc9190614fc7565b60098190555050565b6127dd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286390614c83565b60405180910390fd5b60005b8383905081101561290b57816018600086868581811061289257612891614dd2565b5b90506020020160208101906128a79190614887565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061290390614e01565b91505061286f565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161293f9392919061566e565b60405180910390a1505050565b600f60009054906101000a900460ff1681565b60075481565b60155481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000612a08612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e90614c83565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b600b5481565b60145481565b612acd612cbd565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5390614c83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc290615712565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b906157a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a90615836565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612e8191906146ae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef4906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f639061595a565b60405180910390fd5b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130105750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61304f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613046906159c6565b60405180910390fd5b600081036130685761306383836000613df1565b613d41565b600d60019054906101000a900460ff1661315d57601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061311d5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61315c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315390615a32565b60405180910390fd5b5b600d60009054906101000a900460ff161561373c5761317a611e9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131e857506131b8611e9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132215750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561325b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156132745750600560159054906101000a900460ff16155b1561373b57600f60009054906101000a900460ff16156134525743600f600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132db9190614cd2565b1061331b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331290615a9e565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156133c357507f000000000000000000000000e336648cee2af77f7b487461ce8738eca9f7c03073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134515743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156134f55750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359c5760075481111561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353690615b30565b60405180910390fd5b60095461354b836119b3565b826135569190614cd2565b1115613597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358e90615b9c565b60405180910390fd5b61373a565b601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561363f5750601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561368e57600754811115613689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368090615c2e565b60405180910390fd5b613739565b601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613738576009546136eb836119b3565b826136f69190614cd2565b1115613737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372e90615b9c565b60405180910390fd5b5b5b5b5b5b6000613747306119b3565b90506000600854821015905080801561376c5750600d60029054906101000a900460ff165b80156137855750600560159054906101000a900460ff16155b80156137db5750601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138315750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138cb576001600560156101000a81548160ff0219169083151502179055506138af61405a565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139815750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561398b57600090505b60008115613d315743601a54600b546139a49190614cd2565b10158015613a4f5750601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a4e5750601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b15613b3f5761271060135486613a659190614fc7565b613a6f9190615038565b905060135460155482613a829190614fc7565b613a8c9190615038565b60176000828254613a9d9190614cd2565b9250508190555060135460145482613ab59190614fc7565b613abf9190615038565b60166000828254613ad09190614cd2565b925050819055506019869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613d0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613b9a57506000601054115b15613c275761271060105486613bb09190614fc7565b613bba9190615038565b905060105460125482613bcd9190614fc7565b613bd79190615038565b60176000828254613be89190614cd2565b9250508190555060105460115482613c009190614fc7565b613c0a9190615038565b60166000828254613c1b9190614cd2565b92505081905550613d0c565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613c8257506000601354115b15613d0b5761271060135486613c989190614fc7565b613ca29190615038565b905060135460155482613cb59190614fc7565b613cbf9190615038565b60176000828254613cd09190614cd2565b9250508190555060135460145482613ce89190614fc7565b613cf29190615038565b60166000828254613d039190614cd2565b925050819055505b5b5b6000811115613d2257613d21873083613df1565b5b8085613d2e9190615c4e565b94505b613d3c878787613df1565b505050505b505050565b80601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613da78282611c2f565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e57906158c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ec69061595a565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c90615cf4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613fe89190614cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161404c91906146ae565b60405180910390a350505050565b6000614065306119b3565b905060006016546017546140799190614cd2565b9050600082148061408a5750600081145b156140965750506141a1565b6000601754111561418b57600081601754846140b29190614fc7565b6140bc9190615038565b90506140e9307f000000000000000000000000e336648cee2af77f7b487461ce8738eca9f7c03083613df1565b7f000000000000000000000000e336648cee2af77f7b487461ce8738eca9f7c03073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561415157600080fd5b505af1925050508015614162575060015b50808361416f9190615c4e565b92506017548261417f9190615c4e565b91506000601781905550505b600082111561419e5761419d826141a3565b5b50505b565b6000600267ffffffffffffffff8111156141c0576141bf6146ce565b5b6040519080825280602002602001820160405280156141ee5781602001602082028036833780820191505090505b509050308160008151811061420657614205614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142cf9190615d29565b816001815181106142e3576142e2614dd2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016143a1959493929190615e17565b600060405180830381600087803b1580156143bb57600080fd5b505af11580156143cf573d6000803e3d6000fd5b505050505050565b50805460008255906000526020600020908101906143f591906143f8565b50565b5b808211156144115760008160009055506001016143f9565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61443c81614429565b811461444757600080fd5b50565b60008135905061445981614433565b92915050565b600080604083850312156144765761447561441f565b5b60006144848582860161444a565b92505060206144958582860161444a565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156144d95780820151818401526020810190506144be565b60008484015250505050565b6000601f19601f8301169050919050565b60006145018261449f565b61450b81856144aa565b935061451b8185602086016144bb565b614524816144e5565b840191505092915050565b6000602082019050818103600083015261454981846144f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061459661459161458c84614551565b614571565b614551565b9050919050565b60006145a88261457b565b9050919050565b60006145ba8261459d565b9050919050565b6145ca816145af565b82525050565b60006020820190506145e560008301846145c1565b92915050565b60006145f682614551565b9050919050565b614606816145eb565b811461461157600080fd5b50565b600081359050614623816145fd565b92915050565b600080604083850312156146405761463f61441f565b5b600061464e85828601614614565b925050602061465f8582860161444a565b9150509250929050565b60008115159050919050565b61467e81614669565b82525050565b60006020820190506146996000830184614675565b92915050565b6146a881614429565b82525050565b60006020820190506146c3600083018461469f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614706826144e5565b810181811067ffffffffffffffff82111715614725576147246146ce565b5b80604052505050565b6000614738614415565b905061474482826146fd565b919050565b600067ffffffffffffffff821115614764576147636146ce565b5b602082029050602081019050919050565b600080fd5b600061478d61478884614749565b61472e565b905080838252602082019050602084028301858111156147b0576147af614775565b5b835b818110156147d957806147c58882614614565b8452602084019350506020810190506147b2565b5050509392505050565b600082601f8301126147f8576147f76146c9565b5b813561480884826020860161477a565b91505092915050565b6000602082840312156148275761482661441f565b5b600082013567ffffffffffffffff81111561484557614844614424565b5b614851848285016147e3565b91505092915050565b6000602082840312156148705761486f61441f565b5b600061487e8482850161444a565b91505092915050565b60006020828403121561489d5761489c61441f565b5b60006148ab84828501614614565b91505092915050565b6000806000606084860312156148cd576148cc61441f565b5b60006148db86828701614614565b93505060206148ec86828701614614565b92505060406148fd8682870161444a565b9150509250925092565b600060ff82169050919050565b61491d81614907565b82525050565b60006020820190506149386000830184614914565b92915050565b614947816145eb565b82525050565b6000602082019050614962600083018461493e565b92915050565b61497181614669565b811461497c57600080fd5b50565b60008135905061498e81614968565b92915050565b600080604083850312156149ab576149aa61441f565b5b60006149b985828601614614565b92505060206149ca8582860161497f565b9150509250929050565b6000602082840312156149ea576149e961441f565b5b60006149f88482850161497f565b91505092915050565b600067ffffffffffffffff821115614a1c57614a1b6146ce565b5b602082029050602081019050919050565b6000614a40614a3b84614a01565b61472e565b90508083825260208201905060208402830185811115614a6357614a62614775565b5b835b81811015614a8c5780614a78888261444a565b845260208401935050602081019050614a65565b5050509392505050565b600082601f830112614aab57614aaa6146c9565b5b8135614abb848260208601614a2d565b91505092915050565b60008060408385031215614adb57614ada61441f565b5b600083013567ffffffffffffffff811115614af957614af8614424565b5b614b05858286016147e3565b925050602083013567ffffffffffffffff811115614b2657614b25614424565b5b614b3285828601614a96565b9150509250929050565b600080fd5b60008083601f840112614b5757614b566146c9565b5b8235905067ffffffffffffffff811115614b7457614b73614b3c565b5b602083019150836020820283011115614b9057614b8f614775565b5b9250929050565b600080600060408486031215614bb057614baf61441f565b5b600084013567ffffffffffffffff811115614bce57614bcd614424565b5b614bda86828701614b41565b93509350506020614bed8682870161497f565b9150509250925092565b60008060408385031215614c0e57614c0d61441f565b5b6000614c1c85828601614614565b9250506020614c2d85828601614614565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614c6d6020836144aa565b9150614c7882614c37565b602082019050919050565b60006020820190508181036000830152614c9c81614c60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cdd82614429565b9150614ce883614429565b9250828201905080821115614d0057614cff614ca3565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000614d3c601e836144aa565b9150614d4782614d06565b602082019050919050565b60006020820190508181036000830152614d6b81614d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614db957607f821691505b602082108103614dcc57614dcb614d72565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e0c82614429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e3e57614e3d614ca3565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115614ea057808604811115614e7c57614e7b614ca3565b5b6001851615614e8b5780820291505b8081029050614e9985614e49565b9450614e60565b94509492505050565b600082614eb95760019050614f75565b81614ec75760009050614f75565b8160018114614edd5760028114614ee757614f16565b6001915050614f75565b60ff841115614ef957614ef8614ca3565b5b8360020a915084821115614f1057614f0f614ca3565b5b50614f75565b5060208310610133831016604e8410600b8410161715614f4b5782820a905083811115614f4657614f45614ca3565b5b614f75565b614f588484846001614e56565b92509050818404811115614f6f57614f6e614ca3565b5b81810290505b9392505050565b6000614f8782614429565b9150614f9283614907565b9250614fbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ea9565b905092915050565b6000614fd282614429565b9150614fdd83614429565b9250828202614feb81614429565b9150828204841483151761500257615001614ca3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061504382614429565b915061504e83614429565b92508261505e5761505d615009565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006150c5602f836144aa565b91506150d082615069565b604082019050919050565b600060208201905081810360008301526150f4816150b8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006151576028836144aa565b9150615162826150fb565b604082019050919050565b600060208201905081810360008301526151868161514a565b9050919050565b7f6d6179206e6f742073657420746f203020616464726573730000000000000000600082015250565b60006151c36018836144aa565b91506151ce8261518d565b602082019050919050565b600060208201905081810360008301526151f2816151b6565b9050919050565b7f4e6f20626f747320746f20626c6f636b00000000000000000000000000000000600082015250565b600061522f6010836144aa565b915061523a826151f9565b602082019050919050565b6000602082019050818103600083015261525e81615222565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061529b6018836144aa565b91506152a682615265565b602082019050919050565b600060208201905081810360008301526152ca8161528e565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b60006153536045836144aa565b915061535e826152d1565b606082019050919050565b6000602082019050818103600083015261538281615346565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006153e56025836144aa565b91506153f082615389565b604082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b7f617272617973206d757374206265207468652073616d65206c656e6774680000600082015250565b6000615451601e836144aa565b915061545c8261541b565b602082019050919050565b6000602082019050818103600083015261548081615444565b9050919050565b7f43616e206f6e6c792061697264726f70203630302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b60006154e36036836144aa565b91506154ee82615487565b604082019050919050565b60006020820190508181036000830152615512816154d6565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b60006155756022836144aa565b915061558082615519565b604082019050919050565b600060208201905081810360008301526155a481615568565b9050919050565b600082825260208201905092915050565b6000819050919050565b6155cf816145eb565b82525050565b60006155e183836155c6565b60208301905092915050565b60006155fc6020840184614614565b905092915050565b6000602082019050919050565b600061561d83856155ab565b9350615628826155bc565b8060005b858110156156615761563e82846155ed565b61564888826155d5565b975061565383615604565b92505060018101905061562c565b5085925050509392505050565b60006040820190508181036000830152615689818587615611565b90506156986020830184614675565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006156fc6026836144aa565b9150615707826156a0565b604082019050919050565b6000602082019050818103600083015261572b816156ef565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061578e6024836144aa565b915061579982615732565b604082019050919050565b600060208201905081810360008301526157bd81615781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006158206022836144aa565b915061582b826157c4565b604082019050919050565b6000602082019050818103600083015261584f81615813565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006158b26025836144aa565b91506158bd82615856565b604082019050919050565b600060208201905081810360008301526158e1816158a5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006159446023836144aa565b915061594f826158e8565b604082019050919050565b6000602082019050818103600083015261597381615937565b9050919050565b7f4e6f20626f747300000000000000000000000000000000000000000000000000600082015250565b60006159b06007836144aa565b91506159bb8261597a565b602082019050919050565b600060208201905081810360008301526159df816159a3565b9050919050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000615a1c601a836144aa565b9150615a27826159e6565b602082019050919050565b60006020820190508181036000830152615a4b81615a0f565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e000000000000000000600082015250565b6000615a886017836144aa565b9150615a9382615a52565b602082019050919050565b60006020820190508181036000830152615ab781615a7b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615b1a6035836144aa565b9150615b2582615abe565b604082019050919050565b60006020820190508181036000830152615b4981615b0d565b9050919050565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b6000615b86601b836144aa565b9150615b9182615b50565b602082019050919050565b60006020820190508181036000830152615bb581615b79565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615c186036836144aa565b9150615c2382615bbc565b604082019050919050565b60006020820190508181036000830152615c4781615c0b565b9050919050565b6000615c5982614429565b9150615c6483614429565b9250828203905081811115615c7c57615c7b614ca3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615cde6026836144aa565b9150615ce982615c82565b604082019050919050565b60006020820190508181036000830152615d0d81615cd1565b9050919050565b600081519050615d23816145fd565b92915050565b600060208284031215615d3f57615d3e61441f565b5b6000615d4d84828501615d14565b91505092915050565b6000819050919050565b6000615d7b615d76615d7184615d56565b614571565b614429565b9050919050565b615d8b81615d60565b82525050565b600081519050919050565b6000819050602082019050919050565b6000602082019050919050565b6000615dc482615d91565b615dce81856155ab565b9350615dd983615d9c565b8060005b83811015615e0a578151615df188826155d5565b9750615dfc83615dac565b925050600181019050615ddd565b5085935050505092915050565b600060a082019050615e2c600083018861469f565b615e396020830187615d82565b8181036040830152615e4b8186615db9565b9050615e5a606083018561493e565b615e67608083018461469f565b969550505050505056fea2646970667358221220a57021e1ea4482f1a80982b72f06d66d528d147fdf1efbc18c16ca32b6bcfd7164736f6c63430008130033
Deployed Bytecode Sourcemap
10978:15269:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17121:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4220:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11020:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5141:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12048:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25607:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11297:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16276:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12550:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4548:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12248:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11459;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18674:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4440:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25077:323;;;;;;;;;;;;;:::i;:::-;;5899:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11064:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11568:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19031:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16791:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11648:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4664:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8987:148;;;;;;;;;;;;;:::i;:::-;;12009:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19208:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17454:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15795:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8345:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16167:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4328:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11923:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18170:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6122:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4799:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12502:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12772:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12092:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11608:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17664:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25803:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25408:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16544:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17856:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11871:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11178:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12164:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11974:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4982:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11220:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15603:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11382:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12126:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9290:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11260:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12207:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11134:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17121:325;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17242:14:::1;17222:17;:34;;;;17286:13;17267:16;:32;;;;17346:16;;17326:17;;:36;;;;:::i;:::-;17310:13;:52;;;;17398:5;17381:13;;:22;;17373:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17121:325:::0;;:::o;4220:100::-;4274:13;4307:5;4300:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4220:100;:::o;11020:37::-;;;:::o;5141:169::-;5224:4;5241:39;5250:12;:10;:12::i;:::-;5264:7;5273:6;5241:8;:39::i;:::-;5298:4;5291:11;;5141:169;;;;:::o;12048:31::-;;;;:::o;25607:188::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25691:9:::1;25687:101;25710:10;:17;25706:1;:21;25687:101;;;25772:4;25748:6;:21;25755:10;25766:1;25755:13;;;;;;;;:::i;:::-;;;;;;;;25748:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;25729:3;;;;;:::i;:::-;;;;25687:101;;;;25607:188:::0;:::o;11297:39::-;;;;:::o;16276:256::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16400:10:::1;:8;:10::i;:::-;16394:2;:16;;;;:::i;:::-;16385:4;16381:1;16365:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16364:47;;;;:::i;:::-;16355:6;:56;16347:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;16513:10;:8;:10::i;:::-;16507:2;:16;;;;:::i;:::-;16497:6;:27;;;;:::i;:::-;16474:20;:50;;;;16276:256:::0;:::o;12550:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;4548:108::-;4609:7;4636:12;;4629:19;;4548:108;:::o;12248:33::-;;;;:::o;11459:::-;;;;:::o;5318:573::-;5458:4;5475:36;5485:6;5493:9;5504:6;5475:9;:36::i;:::-;5524:24;5551:11;:19;5563:6;5551:19;;;;;;;;;;;;;;;:33;5571:12;:10;:12::i;:::-;5551:33;;;;;;;;;;;;;;;;5524:60;;5619:17;5599:16;:37;5595:265;;5681:6;5661:16;:26;;5653:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5776:57;5785:6;5793:12;:10;:12::i;:::-;5826:6;5807:16;:25;5776:8;:57::i;:::-;5595:265;5879:4;5872:11;;;5318:573;;;;;:::o;18674:349::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18804:1:::1;18773:33;;:19;:33;;::::0;18765:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18846:42;18862:19;18883:4;18846:15;:42::i;:::-;18949:16;;;;;;;;;;;18904:62;;18928:19;18904:62;;;;;;;;;;;;18996:19;18977:16;;:38;;;;;;;;;;;;;;;;;;18674:349:::0;:::o;4440:100::-;4498:5;4523:9;;;;;;;;;;;4516:16;;4440:100;:::o;25077:323::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25163:1:::1;25142:11;:18;;;;:22;25134:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;25202:9;25198:164;25221:11;:18;;;;25217:1;:22;25198:164;;;25264:6;:22;25271:11;25283:1;25271:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25264:22;;;;;;;;;;;;;;;;;;;;;;;;;25260:91;;25331:4;25306:6;:22;25313:11;25325:1;25313:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25306:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25260:91;25241:3;;;;;:::i;:::-;;;;25198:164;;;;25381:11;;25374:18;;;;:::i;:::-;25077:323::o:0;5899:215::-;5987:4;6004:80;6013:12;:10;:12::i;:::-;6027:7;6073:10;6036:11;:25;6048:12;:10;:12::i;:::-;6036:25;;;;;;;;;;;;;;;:34;6062:7;6036:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6004:8;:80::i;:::-;6102:4;6095:11;;5899:215;;;;:::o;11064:31::-;;;:::o;11568:33::-;;;;;;;;;;;;;:::o;19031:127::-;19098:4;19122:19;:28;19142:7;19122:28;;;;;;;;;;;;;;;;;;;;;;;;;19115:35;;19031:127;;;:::o;16791:318::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16910:14:::1;16891:16;:33;;;;16953:13;16935:15;:31;;;;17011:15;;16992:16;;:34;;;;:::i;:::-;16977:12;:49;;;;17061:5;17045:12;;:21;;17037:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16791:318:::0;;:::o;11648:31::-;;;;;;;;;;;;;:::o;4664:127::-;4738:7;4765:9;:18;4775:7;4765:18;;;;;;;;;;;;;;;;4758:25;;4664:127;;;:::o;8987:148::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9094:1:::1;9057:40;;9078:6;;;;;;;;;;;9057:40;;;;;;;;;;;;9125:1;9108:6;;:19;;;;;;;;;;;;;;;;;;8987:148::o:0;12009:32::-;;;;:::o;19208:159::-;19260:4;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19293:5:::1;19276:14;;:22;;;;;;;;;;;;;;;;;;19332:5;19309:20;;:28;;;;;;;;;;;;;;;;;;19355:4;19348:11;;19208:159:::0;:::o;17454:202::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17586:4:::1;17544:31;:39;17576:6;17544:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17635:6;17606:42;;;17643:4;17606:42;;;;;;:::i;:::-;;;;;;;;17454:202:::0;;:::o;15795:272::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15878:13:::1;;;;;;;;;;;15877:14;15869:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15947:4;15931:13;;:20;;;;;;;;;;;;;;;;;;15976:4;15962:11;;:18;;;;;;;;;;;;;;;;;;16012:12;15991:18;:33;;;;16048:11;16035:10;:24;;;;15795:272:::0;:::o;8345:79::-;8383:7;8410:6;;;;;;;;;;;8403:13;;8345:79;:::o;16167:101::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16253:7:::1;16239:11;;:21;;;;;;;;;;;;;;;;;;16167:101:::0;:::o;4328:104::-;4384:13;4417:7;4410:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4328:104;:::o;11923:42::-;11960:5;11923:42;:::o;18170:251::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18279:6:::1;18271:14;;:4;:14;;::::0;18263:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18372:41;18401:4;18407:5;18372:28;:41::i;:::-;18170:251:::0;;:::o;6122:413::-;6215:4;6232:24;6259:11;:25;6271:12;:10;:12::i;:::-;6259:25;;;;;;;;;;;;;;;:34;6285:7;6259:34;;;;;;;;;;;;;;;;6232:61;;6332:15;6312:16;:35;;6304:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6425:67;6434:12;:10;:12::i;:::-;6448:7;6476:15;6457:16;:34;6425:8;:67::i;:::-;6523:4;6516:11;;;6122:413;;;;:::o;4799:175::-;4885:4;4902:42;4912:12;:10;:12::i;:::-;4926:9;4937:6;4902:9;:42::i;:::-;4962:4;4955:11;;4799:175;;;;:::o;12502:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;12772:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12092:27::-;;;;:::o;11608:33::-;;;;;;;;;;;;;:::o;17664:184::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17780:8:::1;17749:19;:28;17769:7;17749:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17822:7;17806:34;;;17831:8;17806:34;;;;;;:::i;:::-;;;;;;;;17664:184:::0;;:::o;25803:437::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25942:12:::1;:19;25924:7;:14;:37;25916:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;26032:3;26015:7;:14;:20;26007:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;26109:9;26105:126;26128:7;:14;26124:1;:18;26105:126;;;26163:56;26179:10;26191:7;26199:1;26191:10;;;;;;;;:::i;:::-;;;;;;;;26203:12;26216:1;26203:15;;;;;;;;:::i;:::-;;;;;;;;26163;:56::i;:::-;26144:3;;;;;:::i;:::-;;;;26105:126;;;;25803:437:::0;;:::o;25408:191::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25494:9:::1;25490:102;25513:10;:17;25509:1;:21;25490:102;;;25575:5;25551:6;:21;25558:10;25569:1;25558:13;;;;;;;;:::i;:::-;;;;;;;;25551:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;25532:3;;;;;:::i;:::-;;;;25490:102;;;;25408:191:::0;:::o;16544:235::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16671:10:::1;:8;:10::i;:::-;16665:2;:16;;;;:::i;:::-;16659:3;16655:1;16639:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;16638:44;;;;:::i;:::-;16629:6;:53;16621:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;16760:10;:8;:10::i;:::-;16754:2;:16;;;;:::i;:::-;16744:6;:27;;;;:::i;:::-;16732:9;:39;;;;16544:235:::0;:::o;17856:306::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17975:9:::1;17971:115;17994:8;;:15;;17990:1;:19;17971:115;;;18066:8;18031:19;:32;18051:8;;18060:1;18051:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18031:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18011:3;;;;;:::i;:::-;;;;17971:115;;;;18103:51;18135:8;;18145;18103:51;;;;;;;;:::i;:::-;;;;;;;;17856:306:::0;;;:::o;11871:39::-;;;;;;;;;;;;;:::o;11178:35::-;;;;:::o;12164:30::-;;;;:::o;11974:28::-;;;;:::o;4982:151::-;5071:7;5098:11;:18;5110:5;5098:18;;;;;;;;;;;;;;;:27;5117:7;5098:27;;;;;;;;;;;;;;;;5091:34;;4982:151;;;;:::o;11220:33::-;;;;:::o;15603:134::-;15663:4;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15702:5:::1;15679:20;;:28;;;;;;;;;;;;;;;;;;15725:4;15718:11;;15603:134:::0;:::o;11382:37::-;;;;:::o;12126:31::-;;;;:::o;9290:244::-;8567:12;:10;:12::i;:::-;8557:22;;:6;;;;;;;;;;;:22;;;8549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9399:1:::1;9379:22;;:8;:22;;::::0;9371:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;9489:8;9460:38;;9481:6;;;;;;;;;;;9460:38;;;;;;;;;;;;9518:8;9509:6;;:17;;;;;;;;;;;;;;;;;;9290:244:::0;:::o;11260:24::-;;;;:::o;12207:34::-;;;;:::o;11134:31::-;;;;;;;;;;;;;:::o;168:98::-;221:7;248:10;241:17;;168:98;:::o;7462:380::-;7615:1;7598:19;;:5;:19;;;7590:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7696:1;7677:21;;:7;:21;;;7669:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7780:6;7750:11;:18;7762:5;7750:18;;;;;;;;;;;;;;;:27;7769:7;7750:27;;;;;;;;;;;;;;;:36;;;;7818:7;7802:32;;7811:5;7802:32;;;7827:6;7802:32;;;;;;:::i;:::-;;;;;;;;7462:380;;;:::o;19379:4392::-;19527:1;19511:18;;:4;:18;;;19503:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19604:1;19590:16;;:2;:16;;;19582:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19666:6;:10;19673:2;19666:10;;;;;;;;;;;;;;;;;;;;;;;;;19665:11;:28;;;;;19681:6;:12;19688:4;19681:12;;;;;;;;;;;;;;;;;;;;;;;;;19680:13;19665:28;19657:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19732:1;19722:6;:11;19719:92;;19750:28;19766:4;19772:2;19776:1;19750:15;:28::i;:::-;19793:7;;19719:92;19835:13;;;;;;;;;;;19831:136;;19872:19;:25;19892:4;19872:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19901:19;:23;19921:2;19901:23;;;;;;;;;;;;;;;;;;;;;;;;;19872:52;19864:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19831:136;19990:14;;;;;;;;;;;19987:1657;;;20050:7;:5;:7::i;:::-;20042:15;;:4;:15;;;;:49;;;;;20084:7;:5;:7::i;:::-;20078:13;;:2;:13;;;;20042:49;:86;;;;;20126:1;20112:16;;:2;:16;;;;20042:86;:128;;;;;20163:6;20149:21;;:2;:21;;;;20042:128;:158;;;;;20192:8;;;;;;;;;;;20191:9;20042:158;20020:1613;;;20374:20;;;;;;;;;;;20370:418;;;20473:12;20468:2;20426:28;:39;20455:9;20426:39;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;:59;20418:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20554:9;20540:24;;:2;:24;;;;:49;;;;;20582:6;20568:21;;:2;:21;;;;20540:49;20536:233;;;20659:12;20617:28;:39;20646:9;20617:39;;;;;;;;;;;;;;;:54;;;;20733:12;20698:28;:32;20727:2;20698:32;;;;;;;;;;;;;;;:47;;;;20536:233;20370:418;20856:25;:31;20882:4;20856:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20892:31;:35;20924:2;20892:35;;;;;;;;;;;;;;;;;;;;;;;;;20891:36;20856:71;20852:766;;;20970:20;;20960:6;:30;;20952:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21105:9;;21088:13;21098:2;21088:9;:13::i;:::-;21079:6;:22;;;;:::i;:::-;:35;;21071:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20852:766;;;21223:25;:29;21249:2;21223:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21257:31;:37;21289:4;21257:37;;;;;;;;;;;;;;;;;;;;;;;;;21256:38;21223:71;21219:399;;;21337:20;;21327:6;:30;;21319:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21219:399;;;21463:31;:35;21495:2;21463:35;;;;;;;;;;;;;;;;;;;;;;;;;21459:159;;21557:9;;21540:13;21550:2;21540:9;:13::i;:::-;21531:6;:22;;;;:::i;:::-;:35;;21523:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21459:159;21219:399;20852:766;20020:1613;19987:1657;21650:28;21681:24;21699:4;21681:9;:24::i;:::-;21650:55;;21726:12;21765:18;;21741:20;:42;;21726:57;;21814:7;:35;;;;;21838:11;;;;;;;;;;;21814:35;:61;;;;;21867:8;;;;;;;;;;;21866:9;21814:61;:110;;;;;21893:25;:31;21919:4;21893:31;;;;;;;;;;;;;;;;;;;;;;;;;21892:32;21814:110;:153;;;;;21942:19;:25;21962:4;21942:25;;;;;;;;;;;;;;;;;;;;;;;;;21941:26;21814:153;:194;;;;;21985:19;:23;22005:2;21985:23;;;;;;;;;;;;;;;;;;;;;;;;;21984:24;21814:194;21796:322;;;22046:4;22035:8;;:15;;;;;;;;;;;;;;;;;;22065:10;:8;:10::i;:::-;22101:5;22090:8;;:16;;;;;;;;;;;;;;;;;;21796:322;22130:12;22146:8;;;;;;;;;;;22145:9;22130:24;;22255:19;:25;22275:4;22255:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22284:19;:23;22304:2;22284:23;;;;;;;;;;;;;;;;;;;;;;;;;22255:52;22252:99;;;22334:5;22324:15;;22252:99;22371:12;22462:7;22459:1259;;;22523:12;22509:10;;22488:18;;:31;;;;:::i;:::-;:47;;:117;;;;;22540:25;:29;22566:2;22540:29;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;22573:25;:31;22599:4;22573:31;;;;;;;;;;;;;;;;;;;;;;;;;22540:64;22488:117;22485:1076;;;11960:5;22641:12;;22632:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;22625:41;;22732:12;;22714:15;;22707:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;22685:18;;:59;;;;;;;:::i;:::-;;;;;;;;22812:12;;22793:16;;22786:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;22763:19;;:61;;;;;;;:::i;:::-;;;;;;;;22843:11;22860:2;22843:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22485:1076;;;22928:25;:29;22954:2;22928:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22977:1;22961:13;;:17;22928:50;22924:637;;;11960:5;23014:13;;23005:6;:22;;;;:::i;:::-;:35;;;;:::i;:::-;22998:42;;23107:13;;23088:16;;23081:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23059:18;;:61;;;;;;;:::i;:::-;;;;;;;;23189:13;;23169:17;;23162:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;23139:19;;:63;;;;;;;:::i;:::-;;;;;;;;22924:637;;;23277:25;:31;23303:4;23277:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23327:1;23312:12;;:16;23277:51;23274:287;;;11960:5;23362:12;;23353:6;:21;;;;:::i;:::-;:34;;;;:::i;:::-;23346:41;;23453:12;;23435:15;;23428:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;23406:18;;:59;;;;;;;:::i;:::-;;;;;;;;23533:12;;23514:16;;23507:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;23484:19;;:61;;;;;;;:::i;:::-;;;;;;;;23274:287;22924:637;22485:1076;23587:1;23580:4;:8;23577:93;;;23612:42;23628:4;23642;23649;23612:15;:42::i;:::-;23577:93;23702:4;23692:14;;;;;:::i;:::-;;;22459:1259;23730:33;23746:4;23752:2;23756:6;23730:15;:33::i;:::-;19492:4279;;;;19379:4392;;;;:::o;18429:237::-;18546:5;18512:25;:31;18538:4;18512:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18564:38;18590:4;18596:5;18564:25;:38::i;:::-;18652:5;18618:40;;18646:4;18618:40;;;;;;;;;;;;18429:237;;:::o;6543:614::-;6701:1;6683:20;;:6;:20;;;6675:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6785:1;6764:23;;:9;:23;;;6756:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6840:21;6864:9;:17;6874:6;6864:17;;;;;;;;;;;;;;;;6840:41;;6917:6;6900:13;:23;;6892:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7038:6;7022:13;:22;7002:9;:17;7012:6;7002:17;;;;;;;;;;;;;;;:42;;;;7090:6;7066:9;:20;7076:9;7066:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7131:9;7114:35;;7123:6;7114:35;;;7142:6;7114:35;;;;;;:::i;:::-;;;;;;;;6664:493;6543:614;;;:::o;24308:761::-;24347:23;24373:24;24391:4;24373:9;:24::i;:::-;24347:50;;24408:25;24457:19;;24436:18;;:40;;;;:::i;:::-;24408:68;;24519:1;24500:15;:20;:46;;;;24545:1;24524:17;:22;24500:46;24497:60;;;24549:7;;;;24497:60;24595:1;24574:18;;:22;24571:396;;;24612:23;24677:17;24656:18;;24638:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;24612:82;;24709:55;24733:4;24740:6;24748:15;24709;:55::i;:::-;24791:6;24783:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24779:37;24849:15;24830:34;;;;;:::i;:::-;;;24900:18;;24879:39;;;;;:::i;:::-;;;24954:1;24933:18;:22;;;;24597:370;24571:396;25000:1;24982:15;:19;24979:83;;;25017:33;25034:15;25017:16;:33::i;:::-;24979:83;24336:733;;24308:761;:::o;23779:521::-;23907:21;23945:1;23931:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23907:40;;23976:4;23958;23963:1;23958:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24002:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23992:4;23997:1;23992:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;24057:9;:60;;;24132:11;24158:1;24202:4;24229:16;;;;;;;;;;;24261:15;24057:230;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23834:466;23779:521;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310: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:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:60::-;2672:3;2693:5;2686:12;;2644:60;;;:::o;2710:142::-;2760:9;2793:53;2811:34;2820:24;2838:5;2820:24;:::i;:::-;2811:34;:::i;:::-;2793:53;:::i;:::-;2780:66;;2710:142;;;:::o;2858:126::-;2908:9;2941:37;2972:5;2941:37;:::i;:::-;2928:50;;2858:126;;;:::o;2990:144::-;3058:9;3091:37;3122:5;3091:37;:::i;:::-;3078:50;;2990:144;;;:::o;3140:167::-;3245:55;3294:5;3245:55;:::i;:::-;3240:3;3233:68;3140:167;;:::o;3313:258::-;3424:4;3462:2;3451:9;3447:18;3439:26;;3475:89;3561:1;3550:9;3546:17;3537:6;3475:89;:::i;:::-;3313:258;;;;:::o;3577:96::-;3614:7;3643:24;3661:5;3643:24;:::i;:::-;3632:35;;3577:96;;;:::o;3679:122::-;3752:24;3770:5;3752:24;:::i;:::-;3745:5;3742:35;3732:63;;3791:1;3788;3781:12;3732:63;3679:122;:::o;3807:139::-;3853:5;3891:6;3878:20;3869:29;;3907:33;3934:5;3907:33;:::i;:::-;3807:139;;;;:::o;3952:474::-;4020:6;4028;4077:2;4065:9;4056:7;4052:23;4048:32;4045:119;;;4083:79;;:::i;:::-;4045:119;4203:1;4228:53;4273:7;4264:6;4253:9;4249:22;4228:53;:::i;:::-;4218:63;;4174:117;4330:2;4356:53;4401:7;4392:6;4381:9;4377:22;4356:53;:::i;:::-;4346:63;;4301:118;3952:474;;;;;:::o;4432:90::-;4466:7;4509:5;4502:13;4495:21;4484:32;;4432:90;;;:::o;4528:109::-;4609:21;4624:5;4609:21;:::i;:::-;4604:3;4597:34;4528:109;;:::o;4643:210::-;4730:4;4768:2;4757:9;4753:18;4745:26;;4781:65;4843:1;4832:9;4828:17;4819:6;4781:65;:::i;:::-;4643:210;;;;:::o;4859:118::-;4946:24;4964:5;4946:24;:::i;:::-;4941:3;4934:37;4859:118;;:::o;4983:222::-;5076:4;5114:2;5103:9;5099:18;5091:26;;5127:71;5195:1;5184:9;5180:17;5171:6;5127:71;:::i;:::-;4983:222;;;;:::o;5211:117::-;5320:1;5317;5310:12;5334:180;5382:77;5379:1;5372:88;5479:4;5476:1;5469:15;5503:4;5500:1;5493:15;5520:281;5603:27;5625:4;5603:27;:::i;:::-;5595:6;5591:40;5733:6;5721:10;5718:22;5697:18;5685:10;5682:34;5679:62;5676:88;;;5744:18;;:::i;:::-;5676:88;5784:10;5780:2;5773:22;5563:238;5520:281;;:::o;5807:129::-;5841:6;5868:20;;:::i;:::-;5858:30;;5897:33;5925:4;5917:6;5897:33;:::i;:::-;5807:129;;;:::o;5942:311::-;6019:4;6109:18;6101:6;6098:30;6095:56;;;6131:18;;:::i;:::-;6095:56;6181:4;6173:6;6169:17;6161:25;;6241:4;6235;6231:15;6223:23;;5942:311;;;:::o;6259:117::-;6368:1;6365;6358:12;6399:710;6495:5;6520:81;6536:64;6593:6;6536:64;:::i;:::-;6520:81;:::i;:::-;6511:90;;6621:5;6650:6;6643:5;6636:21;6684:4;6677:5;6673:16;6666:23;;6737:4;6729:6;6725:17;6717:6;6713:30;6766:3;6758:6;6755:15;6752:122;;;6785:79;;:::i;:::-;6752:122;6900:6;6883:220;6917:6;6912:3;6909:15;6883:220;;;6992:3;7021:37;7054:3;7042:10;7021:37;:::i;:::-;7016:3;7009:50;7088:4;7083:3;7079:14;7072:21;;6959:144;6943:4;6938:3;6934:14;6927:21;;6883:220;;;6887:21;6501:608;;6399:710;;;;;:::o;7132:370::-;7203:5;7252:3;7245:4;7237:6;7233:17;7229:27;7219:122;;7260:79;;:::i;:::-;7219:122;7377:6;7364:20;7402:94;7492:3;7484:6;7477:4;7469:6;7465:17;7402:94;:::i;:::-;7393:103;;7209:293;7132:370;;;;:::o;7508:539::-;7592:6;7641:2;7629:9;7620:7;7616:23;7612:32;7609:119;;;7647:79;;:::i;:::-;7609:119;7795:1;7784:9;7780:17;7767:31;7825:18;7817:6;7814:30;7811:117;;;7847:79;;:::i;:::-;7811:117;7952:78;8022:7;8013:6;8002:9;7998:22;7952:78;:::i;:::-;7942:88;;7738:302;7508:539;;;;:::o;8053:329::-;8112:6;8161:2;8149:9;8140:7;8136:23;8132:32;8129:119;;;8167:79;;:::i;:::-;8129:119;8287:1;8312:53;8357:7;8348:6;8337:9;8333:22;8312:53;:::i;:::-;8302:63;;8258:117;8053:329;;;;:::o;8388:::-;8447:6;8496:2;8484:9;8475:7;8471:23;8467:32;8464:119;;;8502:79;;:::i;:::-;8464:119;8622:1;8647:53;8692:7;8683:6;8672:9;8668:22;8647:53;:::i;:::-;8637:63;;8593:117;8388:329;;;;:::o;8723:619::-;8800:6;8808;8816;8865:2;8853:9;8844:7;8840:23;8836:32;8833:119;;;8871:79;;:::i;:::-;8833:119;8991:1;9016:53;9061:7;9052:6;9041:9;9037:22;9016:53;:::i;:::-;9006:63;;8962:117;9118:2;9144:53;9189:7;9180:6;9169:9;9165:22;9144:53;:::i;:::-;9134:63;;9089:118;9246:2;9272:53;9317:7;9308:6;9297:9;9293:22;9272:53;:::i;:::-;9262:63;;9217:118;8723:619;;;;;:::o;9348:86::-;9383:7;9423:4;9416:5;9412:16;9401:27;;9348:86;;;:::o;9440:112::-;9523:22;9539:5;9523:22;:::i;:::-;9518:3;9511:35;9440:112;;:::o;9558:214::-;9647:4;9685:2;9674:9;9670:18;9662:26;;9698:67;9762:1;9751:9;9747:17;9738:6;9698:67;:::i;:::-;9558:214;;;;:::o;9778:118::-;9865:24;9883:5;9865:24;:::i;:::-;9860:3;9853:37;9778:118;;:::o;9902:222::-;9995:4;10033:2;10022:9;10018:18;10010:26;;10046:71;10114:1;10103:9;10099:17;10090:6;10046:71;:::i;:::-;9902:222;;;;:::o;10130:116::-;10200:21;10215:5;10200:21;:::i;:::-;10193:5;10190:32;10180:60;;10236:1;10233;10226:12;10180:60;10130:116;:::o;10252:133::-;10295:5;10333:6;10320:20;10311:29;;10349:30;10373:5;10349:30;:::i;:::-;10252:133;;;;:::o;10391:468::-;10456:6;10464;10513:2;10501:9;10492:7;10488:23;10484:32;10481:119;;;10519:79;;:::i;:::-;10481:119;10639:1;10664:53;10709:7;10700:6;10689:9;10685:22;10664:53;:::i;:::-;10654:63;;10610:117;10766:2;10792:50;10834:7;10825:6;10814:9;10810:22;10792:50;:::i;:::-;10782:60;;10737:115;10391:468;;;;;:::o;10865:323::-;10921:6;10970:2;10958:9;10949:7;10945:23;10941:32;10938:119;;;10976:79;;:::i;:::-;10938:119;11096:1;11121:50;11163:7;11154:6;11143:9;11139:22;11121:50;:::i;:::-;11111:60;;11067:114;10865:323;;;;:::o;11194:311::-;11271:4;11361:18;11353:6;11350:30;11347:56;;;11383:18;;:::i;:::-;11347:56;11433:4;11425:6;11421:17;11413:25;;11493:4;11487;11483:15;11475:23;;11194:311;;;:::o;11528:710::-;11624:5;11649:81;11665:64;11722:6;11665:64;:::i;:::-;11649:81;:::i;:::-;11640:90;;11750:5;11779:6;11772:5;11765:21;11813:4;11806:5;11802:16;11795:23;;11866:4;11858:6;11854:17;11846:6;11842:30;11895:3;11887:6;11884:15;11881:122;;;11914:79;;:::i;:::-;11881:122;12029:6;12012:220;12046:6;12041:3;12038:15;12012:220;;;12121:3;12150:37;12183:3;12171:10;12150:37;:::i;:::-;12145:3;12138:50;12217:4;12212:3;12208:14;12201:21;;12088:144;12072:4;12067:3;12063:14;12056:21;;12012:220;;;12016:21;11630:608;;11528:710;;;;;:::o;12261:370::-;12332:5;12381:3;12374:4;12366:6;12362:17;12358:27;12348:122;;12389:79;;:::i;:::-;12348:122;12506:6;12493:20;12531:94;12621:3;12613:6;12606:4;12598:6;12594:17;12531:94;:::i;:::-;12522:103;;12338:293;12261:370;;;;:::o;12637:894::-;12755:6;12763;12812:2;12800:9;12791:7;12787:23;12783:32;12780:119;;;12818:79;;:::i;:::-;12780:119;12966:1;12955:9;12951:17;12938:31;12996:18;12988:6;12985:30;12982:117;;;13018:79;;:::i;:::-;12982:117;13123:78;13193:7;13184:6;13173:9;13169:22;13123:78;:::i;:::-;13113:88;;12909:302;13278:2;13267:9;13263:18;13250:32;13309:18;13301:6;13298:30;13295:117;;;13331:79;;:::i;:::-;13295:117;13436:78;13506:7;13497:6;13486:9;13482:22;13436:78;:::i;:::-;13426:88;;13221:303;12637:894;;;;;:::o;13537:117::-;13646:1;13643;13636:12;13677:568;13750:8;13760:6;13810:3;13803:4;13795:6;13791:17;13787:27;13777:122;;13818:79;;:::i;:::-;13777:122;13931:6;13918:20;13908:30;;13961:18;13953:6;13950:30;13947:117;;;13983:79;;:::i;:::-;13947:117;14097:4;14089:6;14085:17;14073:29;;14151:3;14143:4;14135:6;14131:17;14121:8;14117:32;14114:41;14111:128;;;14158:79;;:::i;:::-;14111:128;13677:568;;;;;:::o;14251:698::-;14343:6;14351;14359;14408:2;14396:9;14387:7;14383:23;14379:32;14376:119;;;14414:79;;:::i;:::-;14376:119;14562:1;14551:9;14547:17;14534:31;14592:18;14584:6;14581:30;14578:117;;;14614:79;;:::i;:::-;14578:117;14727:80;14799:7;14790:6;14779:9;14775:22;14727:80;:::i;:::-;14709:98;;;;14505:312;14856:2;14882:50;14924:7;14915:6;14904:9;14900:22;14882:50;:::i;:::-;14872:60;;14827:115;14251:698;;;;;:::o;14955:474::-;15023:6;15031;15080:2;15068:9;15059:7;15055:23;15051:32;15048:119;;;15086:79;;:::i;:::-;15048:119;15206:1;15231:53;15276:7;15267:6;15256:9;15252:22;15231:53;:::i;:::-;15221:63;;15177:117;15333:2;15359:53;15404:7;15395:6;15384:9;15380:22;15359:53;:::i;:::-;15349:63;;15304:118;14955:474;;;;;:::o;15435:182::-;15575:34;15571:1;15563:6;15559:14;15552:58;15435:182;:::o;15623:366::-;15765:3;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15862:93;15951:3;15862:93;:::i;:::-;15980:2;15975:3;15971:12;15964:19;;15623:366;;;:::o;15995:419::-;16161:4;16199:2;16188:9;16184:18;16176:26;;16248:9;16242:4;16238:20;16234:1;16223:9;16219:17;16212:47;16276:131;16402:4;16276:131;:::i;:::-;16268:139;;15995:419;;;:::o;16420:180::-;16468:77;16465:1;16458:88;16565:4;16562:1;16555:15;16589:4;16586:1;16579:15;16606:191;16646:3;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16699:20;16717:1;16699:20;:::i;:::-;16694:25;;16742:1;16739;16735:9;16728:16;;16763:3;16760:1;16757:10;16754:36;;;16770:18;;:::i;:::-;16754:36;16606:191;;;;:::o;16803:180::-;16943:32;16939:1;16931:6;16927:14;16920:56;16803:180;:::o;16989:366::-;17131:3;17152:67;17216:2;17211:3;17152:67;:::i;:::-;17145:74;;17228:93;17317:3;17228:93;:::i;:::-;17346:2;17341:3;17337:12;17330:19;;16989:366;;;:::o;17361:419::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17614:9;17608:4;17604:20;17600:1;17589:9;17585:17;17578:47;17642:131;17768:4;17642:131;:::i;:::-;17634:139;;17361:419;;;:::o;17786:180::-;17834:77;17831:1;17824:88;17931:4;17928:1;17921:15;17955:4;17952:1;17945:15;17972:320;18016:6;18053:1;18047:4;18043:12;18033:22;;18100:1;18094:4;18090:12;18121:18;18111:81;;18177:4;18169:6;18165:17;18155:27;;18111:81;18239:2;18231:6;18228:14;18208:18;18205:38;18202:84;;18258:18;;:::i;:::-;18202:84;18023:269;17972:320;;;:::o;18298:180::-;18346:77;18343:1;18336:88;18443:4;18440:1;18433:15;18467:4;18464:1;18457:15;18484:233;18523:3;18546:24;18564:5;18546:24;:::i;:::-;18537:33;;18592:66;18585:5;18582:77;18579:103;;18662:18;;:::i;:::-;18579:103;18709:1;18702:5;18698:13;18691:20;;18484:233;;;:::o;18723:102::-;18765:8;18812:5;18809:1;18805:13;18784:34;;18723:102;;;:::o;18831:848::-;18892:5;18899:4;18923:6;18914:15;;18947:5;18938:14;;18961:712;18982:1;18972:8;18969:15;18961:712;;;19077:4;19072:3;19068:14;19062:4;19059:24;19056:50;;;19086:18;;:::i;:::-;19056:50;19136:1;19126:8;19122:16;19119:451;;;19551:4;19544:5;19540:16;19531:25;;19119:451;19601:4;19595;19591:15;19583:23;;19631:32;19654:8;19631:32;:::i;:::-;19619:44;;18961:712;;;18831:848;;;;;;;:::o;19685:1073::-;19739:5;19930:8;19920:40;;19951:1;19942:10;;19953:5;;19920:40;19979:4;19969:36;;19996:1;19987:10;;19998:5;;19969:36;20065:4;20113:1;20108:27;;;;20149:1;20144:191;;;;20058:277;;20108:27;20126:1;20117:10;;20128:5;;;20144:191;20189:3;20179:8;20176:17;20173:43;;;20196:18;;:::i;:::-;20173:43;20245:8;20242:1;20238:16;20229:25;;20280:3;20273:5;20270:14;20267:40;;;20287:18;;:::i;:::-;20267:40;20320:5;;;20058:277;;20444:2;20434:8;20431:16;20425:3;20419:4;20416:13;20412:36;20394:2;20384:8;20381:16;20376:2;20370:4;20367:12;20363:35;20347:111;20344:246;;;20500:8;20494:4;20490:19;20481:28;;20535:3;20528:5;20525:14;20522:40;;;20542:18;;:::i;:::-;20522:40;20575:5;;20344:246;20615:42;20653:3;20643:8;20637:4;20634:1;20615:42;:::i;:::-;20600:57;;;;20689:4;20684:3;20680:14;20673:5;20670:25;20667:51;;;20698:18;;:::i;:::-;20667:51;20747:4;20740:5;20736:16;20727:25;;19685:1073;;;;;;:::o;20764:281::-;20822:5;20846:23;20864:4;20846:23;:::i;:::-;20838:31;;20890:25;20906:8;20890:25;:::i;:::-;20878:37;;20934:104;20971:66;20961:8;20955:4;20934:104;:::i;:::-;20925:113;;20764:281;;;;:::o;21051:410::-;21091:7;21114:20;21132:1;21114:20;:::i;:::-;21109:25;;21148:20;21166:1;21148:20;:::i;:::-;21143:25;;21203:1;21200;21196:9;21225:30;21243:11;21225:30;:::i;:::-;21214:41;;21404:1;21395:7;21391:15;21388:1;21385:22;21365:1;21358:9;21338:83;21315:139;;21434:18;;:::i;:::-;21315:139;21099:362;21051:410;;;;:::o;21467:180::-;21515:77;21512:1;21505:88;21612:4;21609:1;21602:15;21636:4;21633:1;21626:15;21653:185;21693:1;21710:20;21728:1;21710:20;:::i;:::-;21705:25;;21744:20;21762:1;21744:20;:::i;:::-;21739:25;;21783:1;21773:35;;21788:18;;:::i;:::-;21773:35;21830:1;21827;21823:9;21818:14;;21653:185;;;;:::o;21844:234::-;21984:34;21980:1;21972:6;21968:14;21961:58;22053:17;22048:2;22040:6;22036:15;22029:42;21844:234;:::o;22084:366::-;22226:3;22247:67;22311:2;22306:3;22247:67;:::i;:::-;22240:74;;22323:93;22412:3;22323:93;:::i;:::-;22441:2;22436:3;22432:12;22425:19;;22084:366;;;:::o;22456:419::-;22622:4;22660:2;22649:9;22645:18;22637:26;;22709:9;22703:4;22699:20;22695:1;22684:9;22680:17;22673:47;22737:131;22863:4;22737:131;:::i;:::-;22729:139;;22456:419;;;:::o;22881:227::-;23021:34;23017:1;23009:6;23005:14;22998:58;23090:10;23085:2;23077:6;23073:15;23066:35;22881:227;:::o;23114:366::-;23256:3;23277:67;23341:2;23336:3;23277:67;:::i;:::-;23270:74;;23353:93;23442:3;23353:93;:::i;:::-;23471:2;23466:3;23462:12;23455:19;;23114:366;;;:::o;23486:419::-;23652:4;23690:2;23679:9;23675:18;23667:26;;23739:9;23733:4;23729:20;23725:1;23714:9;23710:17;23703:47;23767:131;23893:4;23767:131;:::i;:::-;23759:139;;23486:419;;;:::o;23911:174::-;24051:26;24047:1;24039:6;24035:14;24028:50;23911:174;:::o;24091:366::-;24233:3;24254:67;24318:2;24313:3;24254:67;:::i;:::-;24247:74;;24330:93;24419:3;24330:93;:::i;:::-;24448:2;24443:3;24439:12;24432:19;;24091:366;;;:::o;24463:419::-;24629:4;24667:2;24656:9;24652:18;24644:26;;24716:9;24710:4;24706:20;24702:1;24691:9;24687:17;24680:47;24744:131;24870:4;24744:131;:::i;:::-;24736:139;;24463:419;;;:::o;24888:166::-;25028:18;25024:1;25016:6;25012:14;25005:42;24888:166;:::o;25060:366::-;25202:3;25223:67;25287:2;25282:3;25223:67;:::i;:::-;25216:74;;25299:93;25388:3;25299:93;:::i;:::-;25417:2;25412:3;25408:12;25401:19;;25060:366;;;:::o;25432:419::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25685:9;25679:4;25675:20;25671:1;25660:9;25656:17;25649:47;25713:131;25839:4;25713:131;:::i;:::-;25705:139;;25432:419;;;:::o;25857:174::-;25997:26;25993:1;25985:6;25981:14;25974:50;25857:174;:::o;26037:366::-;26179:3;26200:67;26264:2;26259:3;26200:67;:::i;:::-;26193:74;;26276:93;26365:3;26276:93;:::i;:::-;26394:2;26389:3;26385:12;26378:19;;26037:366;;;:::o;26409:419::-;26575:4;26613:2;26602:9;26598:18;26590:26;;26662:9;26656:4;26652:20;26648:1;26637:9;26633:17;26626:47;26690:131;26816:4;26690:131;:::i;:::-;26682:139;;26409:419;;;:::o;26834:293::-;26974:34;26970:1;26962:6;26958:14;26951:58;27043:34;27038:2;27030:6;27026:15;27019:59;27112:7;27107:2;27099:6;27095:15;27088:32;26834:293;:::o;27133:366::-;27275:3;27296:67;27360:2;27355:3;27296:67;:::i;:::-;27289:74;;27372:93;27461:3;27372:93;:::i;:::-;27490:2;27485:3;27481:12;27474:19;;27133:366;;;:::o;27505:419::-;27671:4;27709:2;27698:9;27694:18;27686:26;;27758:9;27752:4;27748:20;27744:1;27733:9;27729:17;27722:47;27786:131;27912:4;27786:131;:::i;:::-;27778:139;;27505:419;;;:::o;27930:224::-;28070:34;28066:1;28058:6;28054:14;28047:58;28139:7;28134:2;28126:6;28122:15;28115:32;27930:224;:::o;28160:366::-;28302:3;28323:67;28387:2;28382:3;28323:67;:::i;:::-;28316:74;;28399:93;28488:3;28399:93;:::i;:::-;28517:2;28512:3;28508:12;28501:19;;28160:366;;;:::o;28532:419::-;28698:4;28736:2;28725:9;28721:18;28713:26;;28785:9;28779:4;28775:20;28771:1;28760:9;28756:17;28749:47;28813:131;28939:4;28813:131;:::i;:::-;28805:139;;28532:419;;;:::o;28957:180::-;29097:32;29093:1;29085:6;29081:14;29074:56;28957:180;:::o;29143:366::-;29285:3;29306:67;29370:2;29365:3;29306:67;:::i;:::-;29299:74;;29382:93;29471:3;29382:93;:::i;:::-;29500:2;29495:3;29491:12;29484:19;;29143:366;;;:::o;29515:419::-;29681:4;29719:2;29708:9;29704:18;29696:26;;29768:9;29762:4;29758:20;29754:1;29743:9;29739:17;29732:47;29796:131;29922:4;29796:131;:::i;:::-;29788:139;;29515:419;;;:::o;29940:241::-;30080:34;30076:1;30068:6;30064:14;30057:58;30149:24;30144:2;30136:6;30132:15;30125:49;29940:241;:::o;30187:366::-;30329:3;30350:67;30414:2;30409:3;30350:67;:::i;:::-;30343:74;;30426:93;30515:3;30426:93;:::i;:::-;30544:2;30539:3;30535:12;30528:19;;30187:366;;;:::o;30559:419::-;30725:4;30763:2;30752:9;30748:18;30740:26;;30812:9;30806:4;30802:20;30798:1;30787:9;30783:17;30776:47;30840:131;30966:4;30840:131;:::i;:::-;30832:139;;30559:419;;;:::o;30984:221::-;31124:34;31120:1;31112:6;31108:14;31101:58;31193:4;31188:2;31180:6;31176:15;31169:29;30984:221;:::o;31211:366::-;31353:3;31374:67;31438:2;31433:3;31374:67;:::i;:::-;31367:74;;31450:93;31539:3;31450:93;:::i;:::-;31568:2;31563:3;31559:12;31552:19;;31211:366;;;:::o;31583:419::-;31749:4;31787:2;31776:9;31772:18;31764:26;;31836:9;31830:4;31826:20;31822:1;31811:9;31807:17;31800:47;31864:131;31990:4;31864:131;:::i;:::-;31856:139;;31583:419;;;:::o;32008:184::-;32107:11;32141:6;32136:3;32129:19;32181:4;32176:3;32172:14;32157:29;;32008:184;;;;:::o;32198:102::-;32267:4;32290:3;32282:11;;32198:102;;;:::o;32306:108::-;32383:24;32401:5;32383:24;:::i;:::-;32378:3;32371:37;32306:108;;:::o;32420:179::-;32489:10;32510:46;32552:3;32544:6;32510:46;:::i;:::-;32588:4;32583:3;32579:14;32565:28;;32420:179;;;;:::o;32605:122::-;32657:5;32682:39;32717:2;32712:3;32708:12;32703:3;32682:39;:::i;:::-;32673:48;;32605:122;;;;:::o;32733:115::-;32805:4;32837;32832:3;32828:14;32820:22;;32733:115;;;:::o;32884:699::-;33013:3;33036:86;33115:6;33110:3;33036:86;:::i;:::-;33029:93;;33146:58;33198:5;33146:58;:::i;:::-;33227:7;33258:1;33243:315;33268:6;33265:1;33262:13;33243:315;;;33338:42;33373:6;33364:7;33338:42;:::i;:::-;33400:63;33459:3;33444:13;33400:63;:::i;:::-;33393:70;;33486:62;33541:6;33486:62;:::i;:::-;33476:72;;33303:255;33290:1;33287;33283:9;33278:14;;33243:315;;;33247:14;33574:3;33567:10;;33018:565;;32884:699;;;;;:::o;33589:491::-;33764:4;33802:2;33791:9;33787:18;33779:26;;33851:9;33845:4;33841:20;33837:1;33826:9;33822:17;33815:47;33879:118;33992:4;33983:6;33975;33879:118;:::i;:::-;33871:126;;34007:66;34069:2;34058:9;34054:18;34045:6;34007:66;:::i;:::-;33589:491;;;;;;:::o;34086:225::-;34226:34;34222:1;34214:6;34210:14;34203:58;34295:8;34290:2;34282:6;34278:15;34271:33;34086:225;:::o;34317:366::-;34459:3;34480:67;34544:2;34539:3;34480:67;:::i;:::-;34473:74;;34556:93;34645:3;34556:93;:::i;:::-;34674:2;34669:3;34665:12;34658:19;;34317:366;;;:::o;34689:419::-;34855:4;34893:2;34882:9;34878:18;34870:26;;34942:9;34936:4;34932:20;34928:1;34917:9;34913:17;34906:47;34970:131;35096:4;34970:131;:::i;:::-;34962:139;;34689:419;;;:::o;35114:223::-;35254:34;35250:1;35242:6;35238:14;35231:58;35323:6;35318:2;35310:6;35306:15;35299:31;35114:223;:::o;35343:366::-;35485:3;35506:67;35570:2;35565:3;35506:67;:::i;:::-;35499:74;;35582:93;35671:3;35582:93;:::i;:::-;35700:2;35695:3;35691:12;35684:19;;35343:366;;;:::o;35715:419::-;35881:4;35919:2;35908:9;35904:18;35896:26;;35968:9;35962:4;35958:20;35954:1;35943:9;35939:17;35932:47;35996:131;36122:4;35996:131;:::i;:::-;35988:139;;35715:419;;;:::o;36140:221::-;36280:34;36276:1;36268:6;36264:14;36257:58;36349:4;36344:2;36336:6;36332:15;36325:29;36140:221;:::o;36367:366::-;36509:3;36530:67;36594:2;36589:3;36530:67;:::i;:::-;36523:74;;36606:93;36695:3;36606:93;:::i;:::-;36724:2;36719:3;36715:12;36708:19;;36367:366;;;:::o;36739:419::-;36905:4;36943:2;36932:9;36928:18;36920:26;;36992:9;36986:4;36982:20;36978:1;36967:9;36963:17;36956:47;37020:131;37146:4;37020:131;:::i;:::-;37012:139;;36739:419;;;:::o;37164:224::-;37304:34;37300:1;37292:6;37288:14;37281:58;37373:7;37368:2;37360:6;37356:15;37349:32;37164:224;:::o;37394:366::-;37536:3;37557:67;37621:2;37616:3;37557:67;:::i;:::-;37550:74;;37633:93;37722:3;37633:93;:::i;:::-;37751:2;37746:3;37742:12;37735:19;;37394:366;;;:::o;37766:419::-;37932:4;37970:2;37959:9;37955:18;37947:26;;38019:9;38013:4;38009:20;38005:1;37994:9;37990:17;37983:47;38047:131;38173:4;38047:131;:::i;:::-;38039:139;;37766:419;;;:::o;38191:222::-;38331:34;38327:1;38319:6;38315:14;38308:58;38400:5;38395:2;38387:6;38383:15;38376:30;38191:222;:::o;38419:366::-;38561:3;38582:67;38646:2;38641:3;38582:67;:::i;:::-;38575:74;;38658:93;38747:3;38658:93;:::i;:::-;38776:2;38771:3;38767:12;38760:19;;38419:366;;;:::o;38791:419::-;38957:4;38995:2;38984:9;38980:18;38972:26;;39044:9;39038:4;39034:20;39030:1;39019:9;39015:17;39008:47;39072:131;39198:4;39072:131;:::i;:::-;39064:139;;38791:419;;;:::o;39216:157::-;39356:9;39352:1;39344:6;39340:14;39333:33;39216:157;:::o;39379:365::-;39521:3;39542:66;39606:1;39601:3;39542:66;:::i;:::-;39535:73;;39617:93;39706:3;39617:93;:::i;:::-;39735:2;39730:3;39726:12;39719:19;;39379:365;;;:::o;39750:419::-;39916:4;39954:2;39943:9;39939:18;39931:26;;40003:9;39997:4;39993:20;39989:1;39978:9;39974:17;39967:47;40031:131;40157:4;40031:131;:::i;:::-;40023:139;;39750:419;;;:::o;40175:176::-;40315:28;40311:1;40303:6;40299:14;40292:52;40175:176;:::o;40357:366::-;40499:3;40520:67;40584:2;40579:3;40520:67;:::i;:::-;40513:74;;40596:93;40685:3;40596:93;:::i;:::-;40714:2;40709:3;40705:12;40698:19;;40357:366;;;:::o;40729:419::-;40895:4;40933:2;40922:9;40918:18;40910:26;;40982:9;40976:4;40972:20;40968:1;40957:9;40953:17;40946:47;41010:131;41136:4;41010:131;:::i;:::-;41002:139;;40729:419;;;:::o;41154:173::-;41294:25;41290:1;41282:6;41278:14;41271:49;41154:173;:::o;41333:366::-;41475:3;41496:67;41560:2;41555:3;41496:67;:::i;:::-;41489:74;;41572:93;41661:3;41572:93;:::i;:::-;41690:2;41685:3;41681:12;41674:19;;41333:366;;;:::o;41705:419::-;41871:4;41909:2;41898:9;41894:18;41886:26;;41958:9;41952:4;41948:20;41944:1;41933:9;41929:17;41922:47;41986:131;42112:4;41986:131;:::i;:::-;41978:139;;41705:419;;;:::o;42130:240::-;42270:34;42266:1;42258:6;42254:14;42247:58;42339:23;42334:2;42326:6;42322:15;42315:48;42130:240;:::o;42376:366::-;42518:3;42539:67;42603:2;42598:3;42539:67;:::i;:::-;42532:74;;42615:93;42704:3;42615:93;:::i;:::-;42733:2;42728:3;42724:12;42717:19;;42376:366;;;:::o;42748:419::-;42914:4;42952:2;42941:9;42937:18;42929:26;;43001:9;42995:4;42991:20;42987:1;42976:9;42972:17;42965:47;43029:131;43155:4;43029:131;:::i;:::-;43021:139;;42748:419;;;:::o;43173:177::-;43313:29;43309:1;43301:6;43297:14;43290:53;43173:177;:::o;43356:366::-;43498:3;43519:67;43583:2;43578:3;43519:67;:::i;:::-;43512:74;;43595:93;43684:3;43595:93;:::i;:::-;43713:2;43708:3;43704:12;43697:19;;43356:366;;;:::o;43728:419::-;43894:4;43932:2;43921:9;43917:18;43909:26;;43981:9;43975:4;43971:20;43967:1;43956:9;43952:17;43945:47;44009:131;44135:4;44009:131;:::i;:::-;44001:139;;43728:419;;;:::o;44153:241::-;44293:34;44289:1;44281:6;44277:14;44270:58;44362:24;44357:2;44349:6;44345:15;44338:49;44153:241;:::o;44400:366::-;44542:3;44563:67;44627:2;44622:3;44563:67;:::i;:::-;44556:74;;44639:93;44728:3;44639:93;:::i;:::-;44757:2;44752:3;44748:12;44741:19;;44400:366;;;:::o;44772:419::-;44938:4;44976:2;44965:9;44961:18;44953:26;;45025:9;45019:4;45015:20;45011:1;45000:9;44996:17;44989:47;45053:131;45179:4;45053:131;:::i;:::-;45045:139;;44772:419;;;:::o;45197:194::-;45237:4;45257:20;45275:1;45257:20;:::i;:::-;45252:25;;45291:20;45309:1;45291:20;:::i;:::-;45286:25;;45335:1;45332;45328:9;45320:17;;45359:1;45353:4;45350:11;45347:37;;;45364:18;;:::i;:::-;45347:37;45197:194;;;;:::o;45397:225::-;45537:34;45533:1;45525:6;45521:14;45514:58;45606:8;45601:2;45593:6;45589:15;45582:33;45397:225;:::o;45628:366::-;45770:3;45791:67;45855:2;45850:3;45791:67;:::i;:::-;45784:74;;45867:93;45956:3;45867:93;:::i;:::-;45985:2;45980:3;45976:12;45969:19;;45628:366;;;:::o;46000:419::-;46166:4;46204:2;46193:9;46189:18;46181:26;;46253:9;46247:4;46243:20;46239:1;46228:9;46224:17;46217:47;46281:131;46407:4;46281:131;:::i;:::-;46273:139;;46000:419;;;:::o;46425:143::-;46482:5;46513:6;46507:13;46498:22;;46529:33;46556:5;46529:33;:::i;:::-;46425:143;;;;:::o;46574:351::-;46644:6;46693:2;46681:9;46672:7;46668:23;46664:32;46661:119;;;46699:79;;:::i;:::-;46661:119;46819:1;46844:64;46900:7;46891:6;46880:9;46876:22;46844:64;:::i;:::-;46834:74;;46790:128;46574:351;;;;:::o;46931:85::-;46976:7;47005:5;46994:16;;46931:85;;;:::o;47022:158::-;47080:9;47113:61;47131:42;47140:32;47166:5;47140:32;:::i;:::-;47131:42;:::i;:::-;47113:61;:::i;:::-;47100:74;;47022:158;;;:::o;47186:147::-;47281:45;47320:5;47281:45;:::i;:::-;47276:3;47269:58;47186:147;;:::o;47339:114::-;47406:6;47440:5;47434:12;47424:22;;47339:114;;;:::o;47459:132::-;47526:4;47549:3;47541:11;;47579:4;47574:3;47570:14;47562:22;;47459:132;;;:::o;47597:113::-;47667:4;47699;47694:3;47690:14;47682:22;;47597:113;;;:::o;47746:732::-;47865:3;47894:54;47942:5;47894:54;:::i;:::-;47964:86;48043:6;48038:3;47964:86;:::i;:::-;47957:93;;48074:56;48124:5;48074:56;:::i;:::-;48153:7;48184:1;48169:284;48194:6;48191:1;48188:13;48169:284;;;48270:6;48264:13;48297:63;48356:3;48341:13;48297:63;:::i;:::-;48290:70;;48383:60;48436:6;48383:60;:::i;:::-;48373:70;;48229:224;48216:1;48213;48209:9;48204:14;;48169:284;;;48173:14;48469:3;48462:10;;47870:608;;;47746:732;;;;:::o;48484:831::-;48747:4;48785:3;48774:9;48770:19;48762:27;;48799:71;48867:1;48856:9;48852:17;48843:6;48799:71;:::i;:::-;48880:80;48956:2;48945:9;48941:18;48932:6;48880:80;:::i;:::-;49007:9;49001:4;48997:20;48992:2;48981:9;48977:18;48970:48;49035:108;49138:4;49129:6;49035:108;:::i;:::-;49027:116;;49153:72;49221:2;49210:9;49206:18;49197:6;49153:72;:::i;:::-;49235:73;49303:3;49292:9;49288:19;49279:6;49235:73;:::i;:::-;48484:831;;;;;;;;:::o
Swarm Source
ipfs://a57021e1ea4482f1a80982b72f06d66d528d147fdf1efbc18c16ca32b6bcfd71
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.