Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
POWER
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-25 */ /** Website: https://www.hustlin.fun Twitter: https://twitter.com/hustlin_token Telegram: https://t.me/HustlinPortal **/ //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 IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0xdead), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; // _balances[address(0xdead)] += amount; } emit Transfer(account, address(0xdead), amount); _afterTokenTransfer(account, address(0xdead), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } contract POWER is ERC20, ERC20Burnable, Ownable { using Address for address payable; IRouter public uniswapRouter; address public uniswapV2Pair; bool private _interlock; bool private _tradeOpen; bool public providingLiquidity = true; uint256 public launchedAtBlock; uint256 public tokenLiquidityThreshold = 100_000_000 * 10**decimals(); uint256 public maxBuyLimit = 2_000_000_000 * 10**decimals(); uint256 public maxSellLimit = 2_000_000_0000 * 10**decimals(); uint256 public maxWalletLimit = 2_000_000_000 * 10**decimals(); address public hustlinsocialfund = 0x850844169fB6Eca2e2cA79f3EFD25Dad4c6a5213; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 hustlinsocialfund; uint256 liquidity; uint256 burn; } Taxes public taxes = Taxes(0, 0, 0); Taxes public sellTaxes = Taxes(0, 0, 0); Taxes public transferTaxes = Taxes(0, 0, 0); mapping(address => bool) public exemptFee; mapping(address => bool) public blacklisted; event LimitRemoved(uint256 maxBuy, uint256 maxSell, uint256 maxWallet); event BuyTaxesUpdated(uint256 hustlinsocialfund, uint256 liquidity, uint256 burn); event SellTaxesUpdated(uint256 hustlinsocialfund, uint256 liquidity, uint256 burn); event TransferTaxesUpdated(uint256 hustlinsocialfund, uint256 liquidity, uint256 burn); modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() ERC20("Power", "POWER") { _tokengeneration(hustlinsocialfund, 100_000_000_000 * 10**decimals()); IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // uniswap V2 address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); uniswapRouter = _router; uniswapV2Pair = _pair; exemptFee[address(this)] = true; exemptFee[deadWallet] = true; exemptFee[msg.sender] = true; exemptFee[hustlinsocialfund] = true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!blacklisted[sender] && !blacklisted[recipient], "Error: Blacklsited!"); if (!exemptFee[sender] && !exemptFee[recipient]) { require(_tradeOpen, "Trading not enabled"); } if (sender == uniswapV2Pair && block.number < launchedAtBlock + 2) { blacklisted[recipient] = true; } if (sender == uniswapV2Pair && !exemptFee[recipient] && !_interlock) { require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if ( sender != uniswapV2Pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock ) { require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if (recipient != uniswapV2Pair) { require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } } uint256 feeswap; uint256 feesum; uint256 fee; uint256 feeBurn; uint256 burnAmount; Taxes memory currentTaxes; //set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == uniswapV2Pair) { feeswap = sellTaxes.liquidity + sellTaxes.hustlinsocialfund; feesum = feeswap; feeBurn = sellTaxes.burn; currentTaxes = sellTaxes; } else if (sender == uniswapV2Pair) { feeswap = taxes.liquidity + taxes.hustlinsocialfund; feesum = feeswap; feeBurn = taxes.burn; currentTaxes = taxes; } else { feeswap = transferTaxes.liquidity + transferTaxes.hustlinsocialfund ; feesum = feeswap; feeBurn = transferTaxes.burn; currentTaxes = transferTaxes; } fee = (amount * feesum) / 100; burnAmount = (amount * feeBurn) / 100; //send fees if threshold has been reached //don't do this on buys, breaks swap if (providingLiquidity && sender != uniswapV2Pair) Liquify(feeswap, currentTaxes); //rest to recipient super._transfer(sender, recipient, amount - (fee + burnAmount)); // burn the tokens if(burnAmount > 0) { super._burn(sender, burnAmount); } if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap { if(feeswap == 0){ return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= tokenLiquidityThreshold) { if (tokenLiquidityThreshold > 1) { contractBalance = tokenLiquidityThreshold; } // Split the contract balance into halves uint256 denominator = feeswap * 2; uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 hustlinsocialfundAmt = unitBalance * 2 * swapTaxes.hustlinsocialfund; if (hustlinsocialfundAmt > 0) { payable(hustlinsocialfund).sendValue(hustlinsocialfundAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapRouter), tokenAmount); // add the liquidity uniswapRouter.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadWallet, block.timestamp ); } function _openTrading() external onlyOwner { require(!_tradeOpen, "Cannot re-enable trading"); _tradeOpen = true; launchedAtBlock = block.number; } function _blacklistBots(address[] memory _account, bool status) external onlyOwner { for (uint256 i = 0; i < _account.length; i++) { blacklisted[_account[i]] = status; } } function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner { //update the treshhold require(new_amount > 0, "Error: Can't be zero!"); tokenLiquidityThreshold = new_amount * 10**decimals(); } function updatehustlinsocialfundTax(uint256 _Buyhustlinsocialfund, uint256 _Sellhustlinsocialfund) external onlyOwner { require (_Buyhustlinsocialfund <= 0); require (_Sellhustlinsocialfund <= 0); taxes = Taxes(_Buyhustlinsocialfund, 0, 0); sellTaxes = Taxes(_Sellhustlinsocialfund, 0, 0); } function sendETHToFee(uint256 amount) private { payable(hustlinsocialfund).transfer(amount); } function manualSwap() external onlyOwner { uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForETH(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { IERC20(tokenAdd).transfer(hustlinsocialfund, amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"}],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxSell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"LimitRemoved","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":false,"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"}],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"}],"name":"TransferTaxesUpdated","type":"event"},{"inputs":[{"internalType":"address[]","name":"_account","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"_blacklistBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_openTrading","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hustlinsocialfund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTaxes","outputs":[{"internalType":"uint256","name":"hustlinsocialfund","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Buyhustlinsocialfund","type":"uint256"},{"internalType":"uint256","name":"_Sellhustlinsocialfund","type":"uint256"}],"name":"updatehustlinsocialfundTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001600760166101000a81548160ff0219169083151502179055506200002f620006b060201b60201c565b600a6200003d9190620009d7565b6305f5e1006200004e919062000a28565b60095562000061620006b060201b60201c565b600a6200006f9190620009d7565b637735940062000080919062000a28565b600a5562000093620006b060201b60201c565b600a620000a19190620009d7565b6404a817c800620000b3919062000a28565b600b55620000c6620006b060201b60201c565b600a620000d49190620009d7565b6377359400620000e5919062000a28565b600c5573850844169fb6eca2e2ca79f3efd25dad4c6a5213600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060008152602001600081526020016000815250600e600082015181600001556020820151816001015560408201518160020155505060405180606001604052806000815260200160008152602001600081525060116000820151816000015560208201518160010155604082015181600201555050604051806060016040528060008152602001600081526020016000815250601460008201518160000155602082015181600101556040820151816002015550503480156200020a57600080fd5b506040518060400160405280600581526020017f506f7765720000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f504f574552000000000000000000000000000000000000000000000000000000815250816003908162000288919062000ce3565b5080600490816200029a919062000ce3565b505050620002bd620002b1620006b960201b60201c565b620006c160201b60201c565b62000320600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620002f4620006b060201b60201c565b600a620003029190620009d7565b64174876e80062000314919062000a28565b6200078760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000387573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ad919062000e34565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043b919062000e34565b6040518363ffffffff1660e01b81526004016200045a92919062000e77565b6020604051808303816000875af11580156200047a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a0919062000e34565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ed2565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000831919062000eb5565b60405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008cb57808604811115620008a357620008a26200083d565b5b6001851615620008b35780820291505b8081029050620008c3856200086c565b945062000883565b94509492505050565b600082620008e65760019050620009b9565b81620008f65760009050620009b9565b81600181146200090f57600281146200091a5762000950565b6001915050620009b9565b60ff8411156200092f576200092e6200083d565b5b8360020a9150848211156200094957620009486200083d565b5b50620009b9565b5060208310610133831016604e8410600b84101617156200098a5782820a9050838111156200098457620009836200083d565b5b620009b9565b62000999848484600162000879565b92509050818404811115620009b357620009b26200083d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009e482620009c0565b9150620009f183620009ca565b925062000a207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d4565b905092915050565b600062000a3582620009c0565b915062000a4283620009c0565b925082820262000a5281620009c0565b9150828204841483151762000a6c5762000a6b6200083d565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000af557607f821691505b60208210810362000b0b5762000b0a62000aad565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b36565b62000b81868362000b36565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000bc462000bbe62000bb884620009c0565b62000b99565b620009c0565b9050919050565b6000819050919050565b62000be08362000ba3565b62000bf862000bef8262000bcb565b84845462000b43565b825550505050565b600090565b62000c0f62000c00565b62000c1c81848462000bd5565b505050565b5b8181101562000c445762000c3860008262000c05565b60018101905062000c22565b5050565b601f82111562000c935762000c5d8162000b11565b62000c688462000b26565b8101602085101562000c78578190505b62000c9062000c878562000b26565b83018262000c21565b50505b505050565b600082821c905092915050565b600062000cb86000198460080262000c98565b1980831691505092915050565b600062000cd3838362000ca5565b9150826002028217905092915050565b62000cee8262000a73565b67ffffffffffffffff81111562000d0a5762000d0962000a7e565b5b62000d16825462000adc565b62000d2382828562000c48565b600060209050601f83116001811462000d5b576000841562000d46578287015190505b62000d52858262000cc5565b86555062000dc2565b601f19841662000d6b8662000b11565b60005b8281101562000d955784890151825560018201915060208501945060208101905062000d6e565b8683101562000db5578489015162000db1601f89168262000ca5565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dfc8262000dcf565b9050919050565b62000e0e8162000def565b811462000e1a57600080fd5b50565b60008151905062000e2e8162000e03565b92915050565b60006020828403121562000e4d5762000e4c62000dca565b5b600062000e5d8482850162000e1d565b91505092915050565b62000e718162000def565b82525050565b600060408201905062000e8e600083018562000e66565b62000e9d602083018462000e66565b9392505050565b62000eaf81620009c0565b82525050565b600060208201905062000ecc600083018462000ea4565b92915050565b61462a8062000ee26000396000f3fe60806040526004361061021e5760003560e01c806370a08231116101235780638de890bd116100ab578063dbac26e91161006f578063dbac26e9146107c4578063dd62ed3e14610801578063f2fde38b1461083e578063f66895a314610867578063fbe6324e1461089457610225565b80638de890bd146106b757806395d89b41146106e2578063a457c2d71461070d578063a9059cbb1461074a578063c5d32bb21461078757610225565b8063735de9f7116100f2578063735de9f7146105e457806379cc67901461060f57806385141a77146106385780638cd4426d146106635780638da5cb5b1461068c57610225565b806370a0823114610538578063715018a61461057557806371d137641461058c578063728f8eea146105b757610225565b806342b6fa11116101a657806354a267571161017557806354a26757146104655780635b53ed191461048e578063652e2f04146104b757806366a88d96146104e25780636aa5b37f1461050d57610225565b806342b6fa11146103cd57806349bd5a5e146103f657806351bc3c85146104215780635331803c1461043857610225565b80631c1702f3116101ed5780631c1702f3146102e857806323b872dd146102ff578063313ce5671461033c578063395093511461036757806342966c68146103a457610225565b806306fdde031461022a578063095ea7b3146102555780631675d8021461029257806318160ddd146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108bf565b60405161024c9190612ece565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612f98565b610951565b6040516102899190612ff3565b60405180910390f35b34801561029e57600080fd5b506102a761096f565b6040516102b4919061301d565b60405180910390f35b3480156102c957600080fd5b506102d2610975565b6040516102df919061301d565b60405180910390f35b3480156102f457600080fd5b506102fd61097f565b005b34801561030b57600080fd5b5061032660048036038101906103219190613038565b610a6f565b6040516103339190612ff3565b60405180910390f35b34801561034857600080fd5b50610351610b70565b60405161035e91906130a7565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612f98565b610b79565b60405161039b9190612ff3565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c691906130c2565b610c25565b005b3480156103d957600080fd5b506103f460048036038101906103ef91906130c2565b610c39565b005b34801561040257600080fd5b5061040b610d20565b60405161041891906130fe565b60405180910390f35b34801561042d57600080fd5b50610436610d46565b005b34801561044457600080fd5b5061044d610dfe565b60405161045c93929190613119565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906132c4565b610e16565b005b34801561049a57600080fd5b506104b560048036038101906104b09190613320565b610f27565b005b3480156104c357600080fd5b506104cc611043565b6040516104d9919061301d565b60405180910390f35b3480156104ee57600080fd5b506104f7611049565b604051610504919061301d565b60405180910390f35b34801561051957600080fd5b5061052261104f565b60405161052f919061301d565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190613360565b611055565b60405161056c919061301d565b60405180910390f35b34801561058157600080fd5b5061058a61109d565b005b34801561059857600080fd5b506105a1611125565b6040516105ae91906130fe565b60405180910390f35b3480156105c357600080fd5b506105cc61114b565b6040516105db93929190613119565b60405180910390f35b3480156105f057600080fd5b506105f9611163565b60405161060691906133ec565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190612f98565b611189565b005b34801561064457600080fd5b5061064d6111a9565b60405161065a91906130fe565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612f98565b6111af565b005b34801561069857600080fd5b506106a16112d0565b6040516106ae91906130fe565b60405180910390f35b3480156106c357600080fd5b506106cc6112fa565b6040516106d9919061301d565b60405180910390f35b3480156106ee57600080fd5b506106f7611300565b6040516107049190612ece565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f98565b611392565b6040516107419190612ff3565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190612f98565b611486565b60405161077e9190612ff3565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613360565b61149d565b6040516107bb9190612ff3565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e69190613360565b6114bd565b6040516107f89190612ff3565b60405180910390f35b34801561080d57600080fd5b5061082860048036038101906108239190613407565b6114dd565b604051610835919061301d565b60405180910390f35b34801561084a57600080fd5b5061086560048036038101906108609190613360565b611564565b005b34801561087357600080fd5b5061087c61165b565b60405161088b93929190613119565b60405180910390f35b3480156108a057600080fd5b506108a9611673565b6040516108b69190612ff3565b60405180910390f35b6060600380546108ce90613476565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa90613476565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050905090565b600061096561095e611686565b848461168e565b6001905092915050565b60095481565b6000600254905090565b610987611686565b73ffffffffffffffffffffffffffffffffffffffff166109a56112d0565b73ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f2906134f3565b60405180910390fd5b600760159054906101000a900460ff1615610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a429061355f565b60405180910390fd5b6001600760156101000a81548160ff02191690831515021790555043600881905550565b6000610a7c848484611857565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac7611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e906135f1565b60405180910390fd5b610b6485610b53611686565b8584610b5f9190613640565b61168e565b60019150509392505050565b60006012905090565b6000610c1b610b86611686565b848460016000610b94611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c169190613674565b61168e565b6001905092915050565b610c36610c30611686565b82612258565b50565b610c41611686565b73ffffffffffffffffffffffffffffffffffffffff16610c5f6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac906134f3565b60405180910390fd5b60008111610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef906136f4565b60405180910390fd5b610d00610b70565b600a610d0c9190613847565b81610d179190613892565b60098190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d4e611686565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906134f3565b60405180910390fd5b6000610dcd30611055565b90506000811115610de257610de181612428565b5b60004790506000811115610dfa57610df98161266b565b5b5050565b60148060000154908060010154908060020154905083565b610e1e611686565b73ffffffffffffffffffffffffffffffffffffffff16610e3c6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e89906134f3565b60405180910390fd5b60005b8251811015610f22578160186000858481518110610eb657610eb56138d4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f1a90613903565b915050610e95565b505050565b610f2f611686565b73ffffffffffffffffffffffffffffffffffffffff16610f4d6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a906134f3565b60405180910390fd5b6000821115610fb157600080fd5b6000811115610fbf57600080fd5b6040518060600160405280838152602001600081526020016000815250600e600082015181600001556020820151816001015560408201518160020155905050604051806060016040528082815260200160008152602001600081525060116000820151816000015560208201518160010155604082015181600201559050505050565b600b5481565b600c5481565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110a5611686565b73ffffffffffffffffffffffffffffffffffffffff166110c36112d0565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611110906134f3565b60405180910390fd5b61112360006126d7565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e8060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61119b82611195611686565b8361279d565b6111a58282612258565b5050565b61dead81565b6111b7611686565b73ffffffffffffffffffffffffffffffffffffffff166111d56112d0565b73ffffffffffffffffffffffffffffffffffffffff161461122b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611222906134f3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161128892919061394b565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613989565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606004805461130f90613476565b80601f016020809104026020016040519081016040528092919081815260200182805461133b90613476565b80156113885780601f1061135d57610100808354040283529160200191611388565b820191906000526020600020905b81548152906001019060200180831161136b57829003601f168201915b5050505050905090565b600080600160006113a1611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590613a28565b60405180910390fd5b61147b611469611686565b8585846114769190613640565b61168e565b600191505092915050565b6000611493338484611857565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61156c611686565b73ffffffffffffffffffffffffffffffffffffffff1661158a6112d0565b73ffffffffffffffffffffffffffffffffffffffff16146115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d7906134f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690613aba565b60405180910390fd5b611658816126d7565b50565b60118060000154908060010154908060020154905083565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490613b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390613bde565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184a919061301d565b60405180910390a3505050565b6000811161189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613c70565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561193e5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613cdc565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7657600760159054906101000a900460ff16611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613d48565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ae057506002600854611add9190613674565b43105b15611b3e576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611be55750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bfe5750600760149054906101000a900460ff16155b15611ca157600a54811115611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613db4565b60405180910390fd5b600c5481611c5584611055565b611c5f9190613674565b1115611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790613e20565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d495750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d9f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db85750600760149054906101000a900460ff16155b15611eb157600b54811115611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990613e8c565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eb057600c5481611e6484611055565b611e6e9190613674565b1115611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613e20565b60405180910390fd5b5b5b6000806000806000611ec1612e1d565b600760149054906101000a900460ff1680611f255750601760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f795750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f87576000935061212e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361203157601160000154601160010154611ff29190613674565b9550859450601160020154925060116040518060600160405290816000820154815260200160018201548152602001600282015481525050905061212d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036120db57600e60000154600e6001015461209c9190613674565b9550859450600e600201549250600e6040518060600160405290816000820154815260200160018201548152602001600282015481525050905061212c565b6014600001546014600101546120f19190613674565b955085945060146002015492506014604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b5b5b6064858861213c9190613892565b6121469190613edb565b9350606483886121569190613892565b6121609190613edb565b9150600760169054906101000a900460ff1680156121cc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b156121dc576121db8682612829565b5b6121fd898984876121ed9190613674565b8a6121f89190613640565b6129cd565b6000821115612211576122108983612258565b5b600084111561224d57600086111561224c576000606487896122339190613892565b61223d9190613edb565b905061224a8a30836129cd565b505b5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be90613f7e565b60405180910390fd5b6122d48261dead83612c3f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235190614010565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254039250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240e919061301d565b60405180910390a36124238361dead84612c44565b505050565b6000600267ffffffffffffffff81111561244557612444613155565b5b6040519080825280602002602001820160405280156124735781602001602082028036833780820191505090505b509050308160008151811061248b5761248a6138d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125569190614045565b8160018151811061256a576125696138d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125d130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161263595949392919061416b565b600060405180830381600087803b15801561264f57600080fd5b505af1158015612663573d6000803e3d6000fd5b505050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126d3573d6000803e3d6000fd5b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006127a984846114dd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146128235781811015612815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280c90614211565b60405180910390fd5b612822848484840361168e565b5b50505050565b600760149054906101000a900460ff166129c9576001600760146101000a81548160ff02191690831515021790555060008203156129ad57600061286c30611055565b905060095481106129ab57600160095411156128885760095490505b60006002846128979190613892565b90506000818460200151846128ac9190613892565b6128b69190613edb565b9050600081846128c69190613640565b905060004790506128d682612428565b600081476128e49190613640565b905060008760200151866128f89190613640565b826129039190613edb565b905060008860200151826129179190613892565b9050600081111561292d5761292c8682612c49565b5b600089600001516002846129419190613892565b61294b9190613892565b905060008111156129a2576129a181600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d2990919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a33906142a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa290614335565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b28906143c7565b60405180910390fd5b8181612b3d9190613640565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bcd9190613674565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c31919061301d565b60405180910390a350505050565b505050565b505050565b612c7630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612cdf969594939291906143e7565b60606040518083038185885af1158015612cfd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d22919061445d565b5050505050565b80471015612d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d63906144fc565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d929061454d565b60006040518083038185875af1925050503d8060008114612dcf576040519150601f19603f3d011682016040523d82523d6000602084013e612dd4565b606091505b5050905080612e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0f906145d4565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e78578082015181840152602081019050612e5d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ea082612e3e565b612eaa8185612e49565b9350612eba818560208601612e5a565b612ec381612e84565b840191505092915050565b60006020820190508181036000830152612ee88184612e95565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f2f82612f04565b9050919050565b612f3f81612f24565b8114612f4a57600080fd5b50565b600081359050612f5c81612f36565b92915050565b6000819050919050565b612f7581612f62565b8114612f8057600080fd5b50565b600081359050612f9281612f6c565b92915050565b60008060408385031215612faf57612fae612efa565b5b6000612fbd85828601612f4d565b9250506020612fce85828601612f83565b9150509250929050565b60008115159050919050565b612fed81612fd8565b82525050565b60006020820190506130086000830184612fe4565b92915050565b61301781612f62565b82525050565b6000602082019050613032600083018461300e565b92915050565b60008060006060848603121561305157613050612efa565b5b600061305f86828701612f4d565b935050602061307086828701612f4d565b925050604061308186828701612f83565b9150509250925092565b600060ff82169050919050565b6130a18161308b565b82525050565b60006020820190506130bc6000830184613098565b92915050565b6000602082840312156130d8576130d7612efa565b5b60006130e684828501612f83565b91505092915050565b6130f881612f24565b82525050565b600060208201905061311360008301846130ef565b92915050565b600060608201905061312e600083018661300e565b61313b602083018561300e565b613148604083018461300e565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61318d82612e84565b810181811067ffffffffffffffff821117156131ac576131ab613155565b5b80604052505050565b60006131bf612ef0565b90506131cb8282613184565b919050565b600067ffffffffffffffff8211156131eb576131ea613155565b5b602082029050602081019050919050565b600080fd5b600061321461320f846131d0565b6131b5565b90508083825260208201905060208402830185811115613237576132366131fc565b5b835b81811015613260578061324c8882612f4d565b845260208401935050602081019050613239565b5050509392505050565b600082601f83011261327f5761327e613150565b5b813561328f848260208601613201565b91505092915050565b6132a181612fd8565b81146132ac57600080fd5b50565b6000813590506132be81613298565b92915050565b600080604083850312156132db576132da612efa565b5b600083013567ffffffffffffffff8111156132f9576132f8612eff565b5b6133058582860161326a565b9250506020613316858286016132af565b9150509250929050565b6000806040838503121561333757613336612efa565b5b600061334585828601612f83565b925050602061335685828601612f83565b9150509250929050565b60006020828403121561337657613375612efa565b5b600061338484828501612f4d565b91505092915050565b6000819050919050565b60006133b26133ad6133a884612f04565b61338d565b612f04565b9050919050565b60006133c482613397565b9050919050565b60006133d6826133b9565b9050919050565b6133e6816133cb565b82525050565b600060208201905061340160008301846133dd565b92915050565b6000806040838503121561341e5761341d612efa565b5b600061342c85828601612f4d565b925050602061343d85828601612f4d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061348e57607f821691505b6020821081036134a1576134a0613447565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134dd602083612e49565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613549601883612e49565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135db602883612e49565b91506135e68261357f565b604082019050919050565b6000602082019050818103600083015261360a816135ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364b82612f62565b915061365683612f62565b925082820390508181111561366e5761366d613611565b5b92915050565b600061367f82612f62565b915061368a83612f62565b92508282019050808211156136a2576136a1613611565b5b92915050565b7f4572726f723a2043616e2774206265207a65726f210000000000000000000000600082015250565b60006136de601583612e49565b91506136e9826136a8565b602082019050919050565b6000602082019050818103600083015261370d816136d1565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561376b5780860481111561374757613746613611565b5b60018516156137565780820291505b808102905061376485613714565b945061372b565b94509492505050565b6000826137845760019050613840565b816137925760009050613840565b81600181146137a857600281146137b2576137e1565b6001915050613840565b60ff8411156137c4576137c3613611565b5b8360020a9150848211156137db576137da613611565b5b50613840565b5060208310610133831016604e8410600b84101617156138165782820a90508381111561381157613810613611565b5b613840565b6138238484846001613721565b9250905081840481111561383a57613839613611565b5b81810290505b9392505050565b600061385282612f62565b915061385d8361308b565b925061388a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613774565b905092915050565b600061389d82612f62565b91506138a883612f62565b92508282026138b681612f62565b915082820484148315176138cd576138cc613611565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061390e82612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139405761393f613611565b5b600182019050919050565b600060408201905061396060008301856130ef565b61396d602083018461300e565b9392505050565b60008151905061398381613298565b92915050565b60006020828403121561399f5761399e612efa565b5b60006139ad84828501613974565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a12602583612e49565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aa4602683612e49565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b36602483612e49565b9150613b4182613ada565b604082019050919050565b60006020820190508181036000830152613b6581613b29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc8602283612e49565b9150613bd382613b6c565b604082019050919050565b60006020820190508181036000830152613bf781613bbb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c5a602983612e49565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b9050919050565b7f4572726f723a20426c61636b6c73697465642100000000000000000000000000600082015250565b6000613cc6601383612e49565b9150613cd182613c90565b602082019050919050565b60006020820190508181036000830152613cf581613cb9565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613d32601383612e49565b9150613d3d82613cfc565b602082019050919050565b60006020820190508181036000830152613d6181613d25565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000613d9e601d83612e49565b9150613da982613d68565b602082019050919050565b60006020820190508181036000830152613dcd81613d91565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000613e0a602083612e49565b9150613e1582613dd4565b602082019050919050565b60006020820190508181036000830152613e3981613dfd565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000613e76601e83612e49565b9150613e8182613e40565b602082019050919050565b60006020820190508181036000830152613ea581613e69565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ee682612f62565b9150613ef183612f62565b925082613f0157613f00613eac565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f68602183612e49565b9150613f7382613f0c565b604082019050919050565b60006020820190508181036000830152613f9781613f5b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ffa602283612e49565b915061400582613f9e565b604082019050919050565b6000602082019050818103600083015261402981613fed565b9050919050565b60008151905061403f81612f36565b92915050565b60006020828403121561405b5761405a612efa565b5b600061406984828501614030565b91505092915050565b6000819050919050565b600061409761409261408d84614072565b61338d565b612f62565b9050919050565b6140a78161407c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140e281612f24565b82525050565b60006140f483836140d9565b60208301905092915050565b6000602082019050919050565b6000614118826140ad565b61412281856140b8565b935061412d836140c9565b8060005b8381101561415e57815161414588826140e8565b975061415083614100565b925050600181019050614131565b5085935050505092915050565b600060a082019050614180600083018861300e565b61418d602083018761409e565b818103604083015261419f818661410d565b90506141ae60608301856130ef565b6141bb608083018461300e565b9695505050505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006141fb601d83612e49565b9150614206826141c5565b602082019050919050565b6000602082019050818103600083015261422a816141ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061428d602583612e49565b915061429882614231565b604082019050919050565b600060208201905081810360008301526142bc81614280565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061431f602383612e49565b915061432a826142c3565b604082019050919050565b6000602082019050818103600083015261434e81614312565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143b1602683612e49565b91506143bc82614355565b604082019050919050565b600060208201905081810360008301526143e0816143a4565b9050919050565b600060c0820190506143fc60008301896130ef565b614409602083018861300e565b614416604083018761409e565b614423606083018661409e565b61443060808301856130ef565b61443d60a083018461300e565b979650505050505050565b60008151905061445781612f6c565b92915050565b60008060006060848603121561447657614475612efa565b5b600061448486828701614448565b935050602061449586828701614448565b92505060406144a686828701614448565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006144e6601d83612e49565b91506144f1826144b0565b602082019050919050565b60006020820190508181036000830152614515816144d9565b9050919050565b600081905092915050565b50565b600061453760008361451c565b915061454282614527565b600082019050919050565b60006145588261452a565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006145be603a83612e49565b91506145c982614562565b604082019050919050565b600060208201905081810360008301526145ed816145b1565b905091905056fea264697066735822122095d985764b64277e24a12777f9c784ca5d78e20392ae6638f3cecdd1283626c964736f6c63430008130033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806370a08231116101235780638de890bd116100ab578063dbac26e91161006f578063dbac26e9146107c4578063dd62ed3e14610801578063f2fde38b1461083e578063f66895a314610867578063fbe6324e1461089457610225565b80638de890bd146106b757806395d89b41146106e2578063a457c2d71461070d578063a9059cbb1461074a578063c5d32bb21461078757610225565b8063735de9f7116100f2578063735de9f7146105e457806379cc67901461060f57806385141a77146106385780638cd4426d146106635780638da5cb5b1461068c57610225565b806370a0823114610538578063715018a61461057557806371d137641461058c578063728f8eea146105b757610225565b806342b6fa11116101a657806354a267571161017557806354a26757146104655780635b53ed191461048e578063652e2f04146104b757806366a88d96146104e25780636aa5b37f1461050d57610225565b806342b6fa11146103cd57806349bd5a5e146103f657806351bc3c85146104215780635331803c1461043857610225565b80631c1702f3116101ed5780631c1702f3146102e857806323b872dd146102ff578063313ce5671461033c578063395093511461036757806342966c68146103a457610225565b806306fdde031461022a578063095ea7b3146102555780631675d8021461029257806318160ddd146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108bf565b60405161024c9190612ece565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612f98565b610951565b6040516102899190612ff3565b60405180910390f35b34801561029e57600080fd5b506102a761096f565b6040516102b4919061301d565b60405180910390f35b3480156102c957600080fd5b506102d2610975565b6040516102df919061301d565b60405180910390f35b3480156102f457600080fd5b506102fd61097f565b005b34801561030b57600080fd5b5061032660048036038101906103219190613038565b610a6f565b6040516103339190612ff3565b60405180910390f35b34801561034857600080fd5b50610351610b70565b60405161035e91906130a7565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612f98565b610b79565b60405161039b9190612ff3565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c691906130c2565b610c25565b005b3480156103d957600080fd5b506103f460048036038101906103ef91906130c2565b610c39565b005b34801561040257600080fd5b5061040b610d20565b60405161041891906130fe565b60405180910390f35b34801561042d57600080fd5b50610436610d46565b005b34801561044457600080fd5b5061044d610dfe565b60405161045c93929190613119565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906132c4565b610e16565b005b34801561049a57600080fd5b506104b560048036038101906104b09190613320565b610f27565b005b3480156104c357600080fd5b506104cc611043565b6040516104d9919061301d565b60405180910390f35b3480156104ee57600080fd5b506104f7611049565b604051610504919061301d565b60405180910390f35b34801561051957600080fd5b5061052261104f565b60405161052f919061301d565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190613360565b611055565b60405161056c919061301d565b60405180910390f35b34801561058157600080fd5b5061058a61109d565b005b34801561059857600080fd5b506105a1611125565b6040516105ae91906130fe565b60405180910390f35b3480156105c357600080fd5b506105cc61114b565b6040516105db93929190613119565b60405180910390f35b3480156105f057600080fd5b506105f9611163565b60405161060691906133ec565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190612f98565b611189565b005b34801561064457600080fd5b5061064d6111a9565b60405161065a91906130fe565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190612f98565b6111af565b005b34801561069857600080fd5b506106a16112d0565b6040516106ae91906130fe565b60405180910390f35b3480156106c357600080fd5b506106cc6112fa565b6040516106d9919061301d565b60405180910390f35b3480156106ee57600080fd5b506106f7611300565b6040516107049190612ece565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f98565b611392565b6040516107419190612ff3565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190612f98565b611486565b60405161077e9190612ff3565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613360565b61149d565b6040516107bb9190612ff3565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e69190613360565b6114bd565b6040516107f89190612ff3565b60405180910390f35b34801561080d57600080fd5b5061082860048036038101906108239190613407565b6114dd565b604051610835919061301d565b60405180910390f35b34801561084a57600080fd5b5061086560048036038101906108609190613360565b611564565b005b34801561087357600080fd5b5061087c61165b565b60405161088b93929190613119565b60405180910390f35b3480156108a057600080fd5b506108a9611673565b6040516108b69190612ff3565b60405180910390f35b6060600380546108ce90613476565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa90613476565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050905090565b600061096561095e611686565b848461168e565b6001905092915050565b60095481565b6000600254905090565b610987611686565b73ffffffffffffffffffffffffffffffffffffffff166109a56112d0565b73ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f2906134f3565b60405180910390fd5b600760159054906101000a900460ff1615610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a429061355f565b60405180910390fd5b6001600760156101000a81548160ff02191690831515021790555043600881905550565b6000610a7c848484611857565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac7611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e906135f1565b60405180910390fd5b610b6485610b53611686565b8584610b5f9190613640565b61168e565b60019150509392505050565b60006012905090565b6000610c1b610b86611686565b848460016000610b94611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c169190613674565b61168e565b6001905092915050565b610c36610c30611686565b82612258565b50565b610c41611686565b73ffffffffffffffffffffffffffffffffffffffff16610c5f6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac906134f3565b60405180910390fd5b60008111610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef906136f4565b60405180910390fd5b610d00610b70565b600a610d0c9190613847565b81610d179190613892565b60098190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d4e611686565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906134f3565b60405180910390fd5b6000610dcd30611055565b90506000811115610de257610de181612428565b5b60004790506000811115610dfa57610df98161266b565b5b5050565b60148060000154908060010154908060020154905083565b610e1e611686565b73ffffffffffffffffffffffffffffffffffffffff16610e3c6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e89906134f3565b60405180910390fd5b60005b8251811015610f22578160186000858481518110610eb657610eb56138d4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f1a90613903565b915050610e95565b505050565b610f2f611686565b73ffffffffffffffffffffffffffffffffffffffff16610f4d6112d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a906134f3565b60405180910390fd5b6000821115610fb157600080fd5b6000811115610fbf57600080fd5b6040518060600160405280838152602001600081526020016000815250600e600082015181600001556020820151816001015560408201518160020155905050604051806060016040528082815260200160008152602001600081525060116000820151816000015560208201518160010155604082015181600201559050505050565b600b5481565b600c5481565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110a5611686565b73ffffffffffffffffffffffffffffffffffffffff166110c36112d0565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611110906134f3565b60405180910390fd5b61112360006126d7565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e8060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61119b82611195611686565b8361279d565b6111a58282612258565b5050565b61dead81565b6111b7611686565b73ffffffffffffffffffffffffffffffffffffffff166111d56112d0565b73ffffffffffffffffffffffffffffffffffffffff161461122b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611222906134f3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161128892919061394b565b6020604051808303816000875af11580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190613989565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606004805461130f90613476565b80601f016020809104026020016040519081016040528092919081815260200182805461133b90613476565b80156113885780601f1061135d57610100808354040283529160200191611388565b820191906000526020600020905b81548152906001019060200180831161136b57829003601f168201915b5050505050905090565b600080600160006113a1611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590613a28565b60405180910390fd5b61147b611469611686565b8585846114769190613640565b61168e565b600191505092915050565b6000611493338484611857565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61156c611686565b73ffffffffffffffffffffffffffffffffffffffff1661158a6112d0565b73ffffffffffffffffffffffffffffffffffffffff16146115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d7906134f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690613aba565b60405180910390fd5b611658816126d7565b50565b60118060000154908060010154908060020154905083565b600760169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490613b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390613bde565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184a919061301d565b60405180910390a3505050565b6000811161189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613c70565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561193e5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613cdc565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7657600760159054906101000a900460ff16611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613d48565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ae057506002600854611add9190613674565b43105b15611b3e576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611be55750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bfe5750600760149054906101000a900460ff16155b15611ca157600a54811115611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613db4565b60405180910390fd5b600c5481611c5584611055565b611c5f9190613674565b1115611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790613e20565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d495750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d9f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db85750600760149054906101000a900460ff16155b15611eb157600b54811115611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990613e8c565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eb057600c5481611e6484611055565b611e6e9190613674565b1115611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613e20565b60405180910390fd5b5b5b6000806000806000611ec1612e1d565b600760149054906101000a900460ff1680611f255750601760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f795750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f87576000935061212e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361203157601160000154601160010154611ff29190613674565b9550859450601160020154925060116040518060600160405290816000820154815260200160018201548152602001600282015481525050905061212d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036120db57600e60000154600e6001015461209c9190613674565b9550859450600e600201549250600e6040518060600160405290816000820154815260200160018201548152602001600282015481525050905061212c565b6014600001546014600101546120f19190613674565b955085945060146002015492506014604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b5b5b6064858861213c9190613892565b6121469190613edb565b9350606483886121569190613892565b6121609190613edb565b9150600760169054906101000a900460ff1680156121cc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b156121dc576121db8682612829565b5b6121fd898984876121ed9190613674565b8a6121f89190613640565b6129cd565b6000821115612211576122108983612258565b5b600084111561224d57600086111561224c576000606487896122339190613892565b61223d9190613edb565b905061224a8a30836129cd565b505b5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be90613f7e565b60405180910390fd5b6122d48261dead83612c3f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235190614010565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254039250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240e919061301d565b60405180910390a36124238361dead84612c44565b505050565b6000600267ffffffffffffffff81111561244557612444613155565b5b6040519080825280602002602001820160405280156124735781602001602082028036833780820191505090505b509050308160008151811061248b5761248a6138d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125569190614045565b8160018151811061256a576125696138d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125d130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161263595949392919061416b565b600060405180830381600087803b15801561264f57600080fd5b505af1158015612663573d6000803e3d6000fd5b505050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126d3573d6000803e3d6000fd5b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006127a984846114dd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146128235781811015612815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280c90614211565b60405180910390fd5b612822848484840361168e565b5b50505050565b600760149054906101000a900460ff166129c9576001600760146101000a81548160ff02191690831515021790555060008203156129ad57600061286c30611055565b905060095481106129ab57600160095411156128885760095490505b60006002846128979190613892565b90506000818460200151846128ac9190613892565b6128b69190613edb565b9050600081846128c69190613640565b905060004790506128d682612428565b600081476128e49190613640565b905060008760200151866128f89190613640565b826129039190613edb565b905060008860200151826129179190613892565b9050600081111561292d5761292c8682612c49565b5b600089600001516002846129419190613892565b61294b9190613892565b905060008111156129a2576129a181600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d2990919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a33906142a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa290614335565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b28906143c7565b60405180910390fd5b8181612b3d9190613640565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bcd9190613674565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c31919061301d565b60405180910390a350505050565b505050565b505050565b612c7630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612cdf969594939291906143e7565b60606040518083038185885af1158015612cfd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d22919061445d565b5050505050565b80471015612d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d63906144fc565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d929061454d565b60006040518083038185875af1925050503d8060008114612dcf576040519150601f19603f3d011682016040523d82523d6000602084013e612dd4565b606091505b5050905080612e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0f906145d4565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e78578082015181840152602081019050612e5d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ea082612e3e565b612eaa8185612e49565b9350612eba818560208601612e5a565b612ec381612e84565b840191505092915050565b60006020820190508181036000830152612ee88184612e95565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f2f82612f04565b9050919050565b612f3f81612f24565b8114612f4a57600080fd5b50565b600081359050612f5c81612f36565b92915050565b6000819050919050565b612f7581612f62565b8114612f8057600080fd5b50565b600081359050612f9281612f6c565b92915050565b60008060408385031215612faf57612fae612efa565b5b6000612fbd85828601612f4d565b9250506020612fce85828601612f83565b9150509250929050565b60008115159050919050565b612fed81612fd8565b82525050565b60006020820190506130086000830184612fe4565b92915050565b61301781612f62565b82525050565b6000602082019050613032600083018461300e565b92915050565b60008060006060848603121561305157613050612efa565b5b600061305f86828701612f4d565b935050602061307086828701612f4d565b925050604061308186828701612f83565b9150509250925092565b600060ff82169050919050565b6130a18161308b565b82525050565b60006020820190506130bc6000830184613098565b92915050565b6000602082840312156130d8576130d7612efa565b5b60006130e684828501612f83565b91505092915050565b6130f881612f24565b82525050565b600060208201905061311360008301846130ef565b92915050565b600060608201905061312e600083018661300e565b61313b602083018561300e565b613148604083018461300e565b949350505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61318d82612e84565b810181811067ffffffffffffffff821117156131ac576131ab613155565b5b80604052505050565b60006131bf612ef0565b90506131cb8282613184565b919050565b600067ffffffffffffffff8211156131eb576131ea613155565b5b602082029050602081019050919050565b600080fd5b600061321461320f846131d0565b6131b5565b90508083825260208201905060208402830185811115613237576132366131fc565b5b835b81811015613260578061324c8882612f4d565b845260208401935050602081019050613239565b5050509392505050565b600082601f83011261327f5761327e613150565b5b813561328f848260208601613201565b91505092915050565b6132a181612fd8565b81146132ac57600080fd5b50565b6000813590506132be81613298565b92915050565b600080604083850312156132db576132da612efa565b5b600083013567ffffffffffffffff8111156132f9576132f8612eff565b5b6133058582860161326a565b9250506020613316858286016132af565b9150509250929050565b6000806040838503121561333757613336612efa565b5b600061334585828601612f83565b925050602061335685828601612f83565b9150509250929050565b60006020828403121561337657613375612efa565b5b600061338484828501612f4d565b91505092915050565b6000819050919050565b60006133b26133ad6133a884612f04565b61338d565b612f04565b9050919050565b60006133c482613397565b9050919050565b60006133d6826133b9565b9050919050565b6133e6816133cb565b82525050565b600060208201905061340160008301846133dd565b92915050565b6000806040838503121561341e5761341d612efa565b5b600061342c85828601612f4d565b925050602061343d85828601612f4d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061348e57607f821691505b6020821081036134a1576134a0613447565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134dd602083612e49565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613549601883612e49565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135db602883612e49565b91506135e68261357f565b604082019050919050565b6000602082019050818103600083015261360a816135ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364b82612f62565b915061365683612f62565b925082820390508181111561366e5761366d613611565b5b92915050565b600061367f82612f62565b915061368a83612f62565b92508282019050808211156136a2576136a1613611565b5b92915050565b7f4572726f723a2043616e2774206265207a65726f210000000000000000000000600082015250565b60006136de601583612e49565b91506136e9826136a8565b602082019050919050565b6000602082019050818103600083015261370d816136d1565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561376b5780860481111561374757613746613611565b5b60018516156137565780820291505b808102905061376485613714565b945061372b565b94509492505050565b6000826137845760019050613840565b816137925760009050613840565b81600181146137a857600281146137b2576137e1565b6001915050613840565b60ff8411156137c4576137c3613611565b5b8360020a9150848211156137db576137da613611565b5b50613840565b5060208310610133831016604e8410600b84101617156138165782820a90508381111561381157613810613611565b5b613840565b6138238484846001613721565b9250905081840481111561383a57613839613611565b5b81810290505b9392505050565b600061385282612f62565b915061385d8361308b565b925061388a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613774565b905092915050565b600061389d82612f62565b91506138a883612f62565b92508282026138b681612f62565b915082820484148315176138cd576138cc613611565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061390e82612f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139405761393f613611565b5b600182019050919050565b600060408201905061396060008301856130ef565b61396d602083018461300e565b9392505050565b60008151905061398381613298565b92915050565b60006020828403121561399f5761399e612efa565b5b60006139ad84828501613974565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a12602583612e49565b9150613a1d826139b6565b604082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aa4602683612e49565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b36602483612e49565b9150613b4182613ada565b604082019050919050565b60006020820190508181036000830152613b6581613b29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc8602283612e49565b9150613bd382613b6c565b604082019050919050565b60006020820190508181036000830152613bf781613bbb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c5a602983612e49565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b9050919050565b7f4572726f723a20426c61636b6c73697465642100000000000000000000000000600082015250565b6000613cc6601383612e49565b9150613cd182613c90565b602082019050919050565b60006020820190508181036000830152613cf581613cb9565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613d32601383612e49565b9150613d3d82613cfc565b602082019050919050565b60006020820190508181036000830152613d6181613d25565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d6974000000600082015250565b6000613d9e601d83612e49565b9150613da982613d68565b602082019050919050565b60006020820190508181036000830152613dcd81613d91565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000613e0a602083612e49565b9150613e1582613dd4565b602082019050919050565b60006020820190508181036000830152613e3981613dfd565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d69740000600082015250565b6000613e76601e83612e49565b9150613e8182613e40565b602082019050919050565b60006020820190508181036000830152613ea581613e69565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ee682612f62565b9150613ef183612f62565b925082613f0157613f00613eac565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f68602183612e49565b9150613f7382613f0c565b604082019050919050565b60006020820190508181036000830152613f9781613f5b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ffa602283612e49565b915061400582613f9e565b604082019050919050565b6000602082019050818103600083015261402981613fed565b9050919050565b60008151905061403f81612f36565b92915050565b60006020828403121561405b5761405a612efa565b5b600061406984828501614030565b91505092915050565b6000819050919050565b600061409761409261408d84614072565b61338d565b612f62565b9050919050565b6140a78161407c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140e281612f24565b82525050565b60006140f483836140d9565b60208301905092915050565b6000602082019050919050565b6000614118826140ad565b61412281856140b8565b935061412d836140c9565b8060005b8381101561415e57815161414588826140e8565b975061415083614100565b925050600181019050614131565b5085935050505092915050565b600060a082019050614180600083018861300e565b61418d602083018761409e565b818103604083015261419f818661410d565b90506141ae60608301856130ef565b6141bb608083018461300e565b9695505050505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006141fb601d83612e49565b9150614206826141c5565b602082019050919050565b6000602082019050818103600083015261422a816141ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061428d602583612e49565b915061429882614231565b604082019050919050565b600060208201905081810360008301526142bc81614280565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061431f602383612e49565b915061432a826142c3565b604082019050919050565b6000602082019050818103600083015261434e81614312565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143b1602683612e49565b91506143bc82614355565b604082019050919050565b600060208201905081810360008301526143e0816143a4565b9050919050565b600060c0820190506143fc60008301896130ef565b614409602083018861300e565b614416604083018761409e565b614423606083018661409e565b61443060808301856130ef565b61443d60a083018461300e565b979650505050505050565b60008151905061445781612f6c565b92915050565b60008060006060848603121561447657614475612efa565b5b600061448486828701614448565b935050602061449586828701614448565b92505060406144a686828701614448565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006144e6601d83612e49565b91506144f1826144b0565b602082019050919050565b60006020820190508181036000830152614515816144d9565b9050919050565b600081905092915050565b50565b600061453760008361451c565b915061454282614527565b600082019050919050565b60006145588261452a565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006145be603a83612e49565b91506145c982614562565b604082019050919050565b600060208201905081810360008301526145ed816145b1565b905091905056fea264697066735822122095d985764b64277e24a12777f9c784ca5d78e20392ae6638f3cecdd1283626c964736f6c63430008130033
Deployed Bytecode Sourcemap
16001:11093:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18187:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16313:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3619:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25467:179;;;;;;;;;;;;;:::i;:::-;;18356:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18812:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15420:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25869:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16133:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26569:314;;;;;;;;;;;;;:::i;:::-;;16967:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;25654:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26113:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16455:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16523:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16389:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3790:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13704:94;;;;;;;;;;;;;:::i;:::-;;16594:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16879:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;16098:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15830:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16675:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26891:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13481:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16274:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2718:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19068:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19486:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17019:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17067:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4409:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13806:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16921:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;16230:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2499:100;2553:13;2586:5;2579:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:100;:::o;18187:161::-;18262:4;18279:39;18288:12;:10;:12::i;:::-;18302:7;18311:6;18279:8;:39::i;:::-;18336:4;18329:11;;18187:161;;;;:::o;16313:69::-;;;;:::o;3619:108::-;3680:7;3707:12;;3700:19;;3619:108;:::o;25467:179::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25530:10:::1;;;;;;;;;;;25529:11;25521:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25593:4;25580:10;;:17;;;;;;;;;;;;;;;;;;25626:12;25608:15;:30;;;;25467:179::o:0;18356:448::-;18488:4;18505:36;18515:6;18523:9;18534:6;18505:9;:36::i;:::-;18554:24;18581:11;:19;18593:6;18581:19;;;;;;;;;;;;;;;:33;18601:12;:10;:12::i;:::-;18581:33;;;;;;;;;;;;;;;;18554:60;;18653:6;18633:16;:26;;18625:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18715:57;18724:6;18732:12;:10;:12::i;:::-;18765:6;18746:16;:25;;;;:::i;:::-;18715:8;:57::i;:::-;18792:4;18785:11;;;18356:448;;;;;:::o;3461:93::-;3519:5;3544:2;3537:9;;3461:93;:::o;18812:248::-;18928:4;18950:80;18959:12;:10;:12::i;:::-;18973:7;19019:10;18982:11;:25;18994:12;:10;:12::i;:::-;18982:25;;;;;;;;;;;;;;;:34;19008:7;18982:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;18950:8;:80::i;:::-;19048:4;19041:11;;18812:248;;;;:::o;15420:91::-;15476:27;15482:12;:10;:12::i;:::-;15496:6;15476:5;:27::i;:::-;15420:91;:::o;25869:236::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26006:1:::1;25993:10;:14;25985:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26087:10;:8;:10::i;:::-;26083:2;:14;;;;:::i;:::-;26070:10;:27;;;;:::i;:::-;26044:23;:53;;;;25869:236:::0;:::o;16133:28::-;;;;;;;;;;;;;:::o;26569:314::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26621:20:::1;26642:24;26660:4;26642:9;:24::i;:::-;26621:45;;26693:1;26680:12;:14;26677:73;;;26708:30;26725:12;26708:16;:30::i;:::-;26677:73;26760:18;26779:21;26760:40;;26825:1;26814:10;:12;26811:65;;;26840:24;26853:10;26840:12;:24::i;:::-;26811:65;26610:273;;26569:314::o:0;16967:43::-;;;;;;;;;;;;;;;;;;;:::o;25654:207::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25753:9:::1;25748:106;25772:8;:15;25768:1;:19;25748:106;;;25836:6;25809:11;:24;25821:8;25830:1;25821:11;;;;;;;;:::i;:::-;;;;;;;;25809:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;25789:3;;;;;:::i;:::-;;;;25748:106;;;;25654:207:::0;;:::o;26113:332::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26276:1:::1;26251:21;:26;;26242:36;;;::::0;::::1;;26324:1;26298:22;:27;;26289:37;;;::::0;::::1;;26345:34;;;;;;;;26351:21;26345:34;;;;26374:1;26345:34;;;;26377:1;26345:34;;::::0;26337:5:::1;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;26402:35;;;;;;;;26408:22;26402:35;;;;26432:1;26402:35;;;;26435:1;26402:35;;::::0;26390:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;26113:332:::0;;:::o;16455:61::-;;;;:::o;16523:62::-;;;;:::o;16389:59::-;;;;:::o;3790:127::-;3864:7;3891:9;:18;3901:7;3891:18;;;;;;;;;;;;;;;;3884:25;;3790:127;;;:::o;13704:94::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13769:21:::1;13787:1;13769:9;:21::i;:::-;13704:94::o:0;16594:77::-;;;;;;;;;;;;;:::o;16879:35::-;;;;;;;;;;;;;;;;;;;:::o;16098:28::-;;;;;;;;;;;;;:::o;15830:164::-;15907:46;15923:7;15932:12;:10;:12::i;:::-;15946:6;15907:15;:46::i;:::-;15964:22;15970:7;15979:6;15964:5;:22::i;:::-;15830:164;;:::o;16675:79::-;16712:42;16675:79;:::o;26891:145::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26983:8:::1;26976:25;;;27002:17;;;;;;;;;;;27021:6;26976:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26891:145:::0;;:::o;13481:87::-;13527:7;13554:6;;;;;;;;;;;13547:13;;13481:87;:::o;16274:30::-;;;;:::o;2718:104::-;2774:13;2807:7;2800:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2718:104;:::o;19068:410::-;19189:4;19211:24;19238:11;:25;19250:12;:10;:12::i;:::-;19238:25;;;;;;;;;;;;;;;:34;19264:7;19238:34;;;;;;;;;;;;;;;;19211:61;;19311:15;19291:16;:35;;19283:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;19379:67;19388:12;:10;:12::i;:::-;19402:7;19430:15;19411:16;:34;;;;:::i;:::-;19379:8;:67::i;:::-;19466:4;19459:11;;;19068:410;;;;:::o;19486:165::-;19564:4;19581:40;19591:10;19603:9;19614:6;19581:9;:40::i;:::-;19639:4;19632:11;;19486:165;;;;:::o;17019:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;17067:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;4409:201::-;4543:7;4575:11;:18;4587:5;4575:18;;;;;;;;;;;;;;;:27;4594:7;4575:27;;;;;;;;;;;;;;;;4568:34;;4409:201;;;;:::o;13806:192::-;13627:12;:10;:12::i;:::-;13616:23;;:7;:5;:7::i;:::-;:23;;;13608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13915:1:::1;13895:22;;:8;:22;;::::0;13887:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13971:19;13981:8;13971:9;:19::i;:::-;13806:192:::0;:::o;16921:39::-;;;;;;;;;;;;;;;;;;;:::o;16230:37::-;;;;;;;;;;;;;:::o;221:98::-;274:7;301:10;294:17;;221:98;:::o;11129:380::-;11282:1;11265:19;;:5;:19;;;11257:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11363:1;11344:21;;:7;:21;;;11336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11447:6;11417:11;:18;11429:5;11417:18;;;;;;;;;;;;;;;:27;11436:7;11417:27;;;;;;;;;;;;;;;:36;;;;11485:7;11469:32;;11478:5;11469:32;;;11494:6;11469:32;;;;;;:::i;:::-;;;;;;;;11129:380;;;:::o;19659:3238::-;19809:1;19800:6;:10;19792:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19876:11;:19;19888:6;19876:19;;;;;;;;;;;;;;;;;;;;;;;;;19875:20;:47;;;;;19900:11;:22;19912:9;19900:22;;;;;;;;;;;;;;;;;;;;;;;;;19899:23;19875:47;19867:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19964:9;:17;19974:6;19964:17;;;;;;;;;;;;;;;;;;;;;;;;;19963:18;:43;;;;;19986:9;:20;19996:9;19986:20;;;;;;;;;;;;;;;;;;;;;;;;;19985:21;19963:43;19959:118;;;20031:10;;;;;;;;;;;20023:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;19959:118;20103:13;;;;;;;;;;;20093:23;;:6;:23;;;:61;;;;;20153:1;20135:15;;:19;;;;:::i;:::-;20120:12;:34;20093:61;20089:123;;;20196:4;20171:11;:22;20183:9;20171:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20089:123;20238:13;;;;;;;;;;;20228:23;;:6;:23;;;:48;;;;;20256:9;:20;20266:9;20256:20;;;;;;;;;;;;;;;;;;;;;;;;;20255:21;20228:48;:63;;;;;20281:10;;;;;;;;;;;20280:11;20228:63;20224:315;;;20326:11;;20316:6;:21;;20308:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20445:14;;20435:6;20412:20;20422:9;20412;:20::i;:::-;:29;;;;:::i;:::-;:47;;20386:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;20224:315;20579:13;;;;;;;;;;;20569:23;;:6;:23;;;;:48;;;;;20597:9;:20;20607:9;20597:20;;;;;;;;;;;;;;;;;;;;;;;;;20596:21;20569:48;:70;;;;;20622:9;:17;20632:6;20622:17;;;;;;;;;;;;;;;;;;;;;;;;;20621:18;20569:70;:85;;;;;20644:10;;;;;;;;;;;20643:11;20569:85;20551:441;;;20699:12;;20689:6;:22;;20681:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20778:13;;;;;;;;;;;20765:26;;:9;:26;;;20761:220;;20875:14;;20865:6;20842:20;20852:9;20842;:20::i;:::-;:29;;;;:::i;:::-;:47;;20812:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;20761:220;20551:441;21004:15;21030:14;21055:11;21077:15;21103:18;21132:25;;:::i;:::-;21245:10;;;;;;;;;;;:31;;;;21259:9;:17;21269:6;21259:17;;;;;;;;;;;;;;;;;;;;;;;;;21245:31;:55;;;;21280:9;:20;21290:9;21280:20;;;;;;;;;;;;;;;;;;;;;;;;;21245:55;21241:889;;;21321:1;21315:7;;21241:889;;;21386:13;;;;;;;;;;;21373:26;;:9;:26;;;21369:761;;21482:9;:27;;;21443:9;:19;;;:66;;;;:::i;:::-;21416:93;;21533:7;21524:16;;21565:9;:14;;;21555:24;;21609:9;21594:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21369:761;;;21650:13;;;;;;;;;;;21640:23;;:6;:23;;;21636:494;;21742:5;:23;;;21707:5;:15;;;:58;;;;:::i;:::-;21680:85;;21789:7;21780:16;;21821:5;:10;;;21811:20;;21861:5;21846:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21636:494;;;21969:13;:31;;;21926:13;:23;;;:74;;;;:::i;:::-;21899:101;;22025:7;22016:16;;22057:13;:18;;;22047:28;;22105:13;22090:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21636:494;21369:761;21241:889;22168:3;22158:6;22149;:15;;;;:::i;:::-;22148:23;;;;:::i;:::-;22142:29;;22216:3;22205:7;22196:6;:16;;;;:::i;:::-;22195:24;;;;:::i;:::-;22182:37;;22333:18;;;;;;;;;;;:45;;;;;22365:13;;;;;;;;;;;22355:23;;:6;:23;;;;22333:45;22329:81;;;22380:30;22388:7;22397:12;22380:7;:30::i;:::-;22329:81;22452:63;22468:6;22476:9;22503:10;22497:3;:16;;;;:::i;:::-;22487:6;:27;;;;:::i;:::-;22452:15;:63::i;:::-;22570:1;22557:10;:14;22554:77;;;22588:31;22600:6;22608:10;22588:11;:31::i;:::-;22554:77;22651:1;22645:3;:7;22641:249;;;22727:1;22717:7;:11;22713:164;;;22749:17;22790:3;22779:7;22770:6;:16;;;;:::i;:::-;22769:24;;;;:::i;:::-;22749:44;;22812:49;22828:6;22844:4;22851:9;22812:15;:49::i;:::-;22730:147;22713:164;22641:249;19781:3116;;;;;;19659:3238;;;:::o;9947:744::-;10050:1;10031:21;;:7;:21;;;10023:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10103:54;10124:7;10141:6;10150;10103:20;:54::i;:::-;10170:22;10195:9;:18;10205:7;10195:18;;;;;;;;;;;;;;;;10170:43;;10250:6;10232:14;:24;;10224:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10369:6;10352:14;:23;10331:9;:18;10341:7;10331:18;;;;;;;;;;;;;;;:44;;;;10486:6;10470:12;;:22;;;;;;;;;;;10601:6;10575:42;;10584:7;10575:42;;;10610:6;10575:42;;;;;;:::i;:::-;;;;;;;;10630:53;10650:7;10667:6;10676;10630:19;:53::i;:::-;10012:679;9947:744;;:::o;24382:555::-;24508:21;24546:1;24532:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24508:40;;24577:4;24559;24564:1;24559:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24603:13;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24593:4;24598:1;24593:7;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;;;24636:60;24653:4;24668:13;;;;;;;;;;;24684:11;24636:8;:60::i;:::-;24735:13;;;;;;;;;;;:64;;;24814:11;24840:1;24856:4;24883;24903:15;24735:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24437:500;24382:555;:::o;26453:108::-;26518:17;;;;;;;;;;;26510:35;;:43;26546:6;26510:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26453:108;:::o;14006:173::-;14062:16;14081:6;;;;;;;;;;;14062:25;;14107:8;14098:6;;:17;;;;;;;;;;;;;;;;;;14162:8;14131:40;;14152:8;14131:40;;;;;;;;;;;;14051:128;14006:173;:::o;5218:419::-;5319:24;5346:25;5356:5;5363:7;5346:9;:25::i;:::-;5319:52;;5406:17;5386:16;:37;5382:248;;5468:6;5448:16;:26;;5440:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5552:51;5561:5;5568:7;5596:6;5577:16;:25;5552:8;:51::i;:::-;5382:248;5308:329;5218:419;;;:::o;22905:1469::-;17507:10;;;;;;;;;;;17502:110;;17547:4;17534:10;;:17;;;;;;;;;;;;;;;;;;23010:1:::1;22999:7;:12:::0;22996:49;23027:7:::1;22996:49;23057:23;23083:24;23101:4;23083:9;:24::i;:::-;23057:50;;23141:23;;23122:15;:42;23118:1249;;23211:1;23185:23;;:27;23181:109;;;23251:23;;23233:41;;23181:109;23361:19;23393:1;23383:7;:11;;;;:::i;:::-;23361:33;;23409:32;23503:11;23463:9;:19;;;23445:15;:37;;;;:::i;:::-;23444:70;;;;:::i;:::-;23409:105;;23529:14;23564:24;23546:15;:42;;;;:::i;:::-;23529:59;;23605:22;23630:21;23605:46;;23668:24;23685:6;23668:16;:24::i;:::-;23709:20;23756:14;23732:21;:38;;;;:::i;:::-;23709:61;;23785:19;23837:9;:19;;;23823:11;:33;;;;:::i;:::-;23807:12;:50;;;;:::i;:::-;23785:72;;23872:29;23918:9;:19;;;23904:11;:33;;;;:::i;:::-;23872:65;;23982:1;23958:21;:25;23954:172;;;24049:61;24062:24;24088:21;24049:12;:61::i;:::-;23954:172;24142:28;24191:9;:27;;;24187:1;24173:11;:15;;;;:::i;:::-;:45;;;;:::i;:::-;24142:76;;24260:1;24237:20;:24;24233:123;;;24282:58;24319:20;24290:17;;;;;;;;;;;24282:36;;;;:58;;;;:::i;:::-;24233:123;23166:1201;;;;;;;;23118:1249;22983:1391;17566:1;17595:5:::0;17582:10;;:18;;;;;;;;;;;;;;;;;;17502:110;22905:1469;;:::o;8633:578::-;8791:1;8773:20;;:6;:20;;;8765:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8875:1;8854:23;;:9;:23;;;8846:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8930:21;8954:9;:17;8964:6;8954:17;;;;;;;;;;;;;;;;8930:41;;9007:6;8990:13;:23;;8982:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9103:6;9087:13;:22;;;;:::i;:::-;9067:9;:17;9077:6;9067:17;;;;;;;;;;;;;;;:42;;;;9144:6;9120:9;:20;9130:9;9120:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9185:9;9168:35;;9177:6;9168:35;;;9196:6;9168:35;;;;;;:::i;:::-;;;;;;;;8754:457;8633:578;;;:::o;12109:91::-;;;;:::o;12804:90::-;;;;:::o;24945:514::-;25093:60;25110:4;25125:13;;;;;;;;;;;25141:11;25093:8;:60::i;:::-;25196:13;;;;;;;;;;;:29;;;25234:9;25268:4;25288:11;25314:1;25357;16712:42;25425:15;25196:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24945:514;;:::o;12924:319::-;13039:6;13014:21;:31;;13006:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13093:12;13111:9;:14;;13134:6;13111:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13092:54;;;13165:7;13157:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12995:248;12924:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:442::-;5689:4;5727:2;5716:9;5712:18;5704:26;;5740:71;5808:1;5797:9;5793:17;5784:6;5740:71;:::i;:::-;5821:72;5889:2;5878:9;5874:18;5865:6;5821:72;:::i;:::-;5903;5971:2;5960:9;5956:18;5947:6;5903:72;:::i;:::-;5540:442;;;;;;:::o;5988:117::-;6097:1;6094;6087:12;6111:180;6159:77;6156:1;6149:88;6256:4;6253:1;6246:15;6280:4;6277:1;6270:15;6297:281;6380:27;6402:4;6380:27;:::i;:::-;6372:6;6368:40;6510:6;6498:10;6495:22;6474:18;6462:10;6459:34;6456:62;6453:88;;;6521:18;;:::i;:::-;6453:88;6561:10;6557:2;6550:22;6340:238;6297:281;;:::o;6584:129::-;6618:6;6645:20;;:::i;:::-;6635:30;;6674:33;6702:4;6694:6;6674:33;:::i;:::-;6584:129;;;:::o;6719:311::-;6796:4;6886:18;6878:6;6875:30;6872:56;;;6908:18;;:::i;:::-;6872:56;6958:4;6950:6;6946:17;6938:25;;7018:4;7012;7008:15;7000:23;;6719:311;;;:::o;7036:117::-;7145:1;7142;7135:12;7176:710;7272:5;7297:81;7313:64;7370:6;7313:64;:::i;:::-;7297:81;:::i;:::-;7288:90;;7398:5;7427:6;7420:5;7413:21;7461:4;7454:5;7450:16;7443:23;;7514:4;7506:6;7502:17;7494:6;7490:30;7543:3;7535:6;7532:15;7529:122;;;7562:79;;:::i;:::-;7529:122;7677:6;7660:220;7694:6;7689:3;7686:15;7660:220;;;7769:3;7798:37;7831:3;7819:10;7798:37;:::i;:::-;7793:3;7786:50;7865:4;7860:3;7856:14;7849:21;;7736:144;7720:4;7715:3;7711:14;7704:21;;7660:220;;;7664:21;7278:608;;7176:710;;;;;:::o;7909:370::-;7980:5;8029:3;8022:4;8014:6;8010:17;8006:27;7996:122;;8037:79;;:::i;:::-;7996:122;8154:6;8141:20;8179:94;8269:3;8261:6;8254:4;8246:6;8242:17;8179:94;:::i;:::-;8170:103;;7986:293;7909:370;;;;:::o;8285:116::-;8355:21;8370:5;8355:21;:::i;:::-;8348:5;8345:32;8335:60;;8391:1;8388;8381:12;8335:60;8285:116;:::o;8407:133::-;8450:5;8488:6;8475:20;8466:29;;8504:30;8528:5;8504:30;:::i;:::-;8407:133;;;;:::o;8546:678::-;8636:6;8644;8693:2;8681:9;8672:7;8668:23;8664:32;8661:119;;;8699:79;;:::i;:::-;8661:119;8847:1;8836:9;8832:17;8819:31;8877:18;8869:6;8866:30;8863:117;;;8899:79;;:::i;:::-;8863:117;9004:78;9074:7;9065:6;9054:9;9050:22;9004:78;:::i;:::-;8994:88;;8790:302;9131:2;9157:50;9199:7;9190:6;9179:9;9175:22;9157:50;:::i;:::-;9147:60;;9102:115;8546:678;;;;;:::o;9230:474::-;9298:6;9306;9355:2;9343:9;9334:7;9330:23;9326:32;9323:119;;;9361:79;;:::i;:::-;9323:119;9481:1;9506:53;9551:7;9542:6;9531:9;9527:22;9506:53;:::i;:::-;9496:63;;9452:117;9608:2;9634:53;9679:7;9670:6;9659:9;9655:22;9634:53;:::i;:::-;9624:63;;9579:118;9230:474;;;;;:::o;9710:329::-;9769:6;9818:2;9806:9;9797:7;9793:23;9789:32;9786:119;;;9824:79;;:::i;:::-;9786:119;9944:1;9969:53;10014:7;10005:6;9994:9;9990:22;9969:53;:::i;:::-;9959:63;;9915:117;9710:329;;;;:::o;10045:60::-;10073:3;10094:5;10087:12;;10045:60;;;:::o;10111:142::-;10161:9;10194:53;10212:34;10221:24;10239:5;10221:24;:::i;:::-;10212:34;:::i;:::-;10194:53;:::i;:::-;10181:66;;10111:142;;;:::o;10259:126::-;10309:9;10342:37;10373:5;10342:37;:::i;:::-;10329:50;;10259:126;;;:::o;10391:141::-;10456:9;10489:37;10520:5;10489:37;:::i;:::-;10476:50;;10391:141;;;:::o;10538:161::-;10640:52;10686:5;10640:52;:::i;:::-;10635:3;10628:65;10538:161;;:::o;10705:252::-;10813:4;10851:2;10840:9;10836:18;10828:26;;10864:86;10947:1;10936:9;10932:17;10923:6;10864:86;:::i;:::-;10705:252;;;;:::o;10963:474::-;11031:6;11039;11088:2;11076:9;11067:7;11063:23;11059:32;11056:119;;;11094:79;;:::i;:::-;11056:119;11214:1;11239:53;11284:7;11275:6;11264:9;11260:22;11239:53;:::i;:::-;11229:63;;11185:117;11341:2;11367:53;11412:7;11403:6;11392:9;11388:22;11367:53;:::i;:::-;11357:63;;11312:118;10963:474;;;;;:::o;11443:180::-;11491:77;11488:1;11481:88;11588:4;11585:1;11578:15;11612:4;11609:1;11602:15;11629:320;11673:6;11710:1;11704:4;11700:12;11690:22;;11757:1;11751:4;11747:12;11778:18;11768:81;;11834:4;11826:6;11822:17;11812:27;;11768:81;11896:2;11888:6;11885:14;11865:18;11862:38;11859:84;;11915:18;;:::i;:::-;11859:84;11680:269;11629:320;;;:::o;11955:182::-;12095:34;12091:1;12083:6;12079:14;12072:58;11955:182;:::o;12143:366::-;12285:3;12306:67;12370:2;12365:3;12306:67;:::i;:::-;12299:74;;12382:93;12471:3;12382:93;:::i;:::-;12500:2;12495:3;12491:12;12484:19;;12143:366;;;:::o;12515:419::-;12681:4;12719:2;12708:9;12704:18;12696:26;;12768:9;12762:4;12758:20;12754:1;12743:9;12739:17;12732:47;12796:131;12922:4;12796:131;:::i;:::-;12788:139;;12515:419;;;:::o;12940:174::-;13080:26;13076:1;13068:6;13064:14;13057:50;12940:174;:::o;13120:366::-;13262:3;13283:67;13347:2;13342:3;13283:67;:::i;:::-;13276:74;;13359:93;13448:3;13359:93;:::i;:::-;13477:2;13472:3;13468:12;13461:19;;13120:366;;;:::o;13492:419::-;13658:4;13696:2;13685:9;13681:18;13673:26;;13745:9;13739:4;13735:20;13731:1;13720:9;13716:17;13709:47;13773:131;13899:4;13773:131;:::i;:::-;13765:139;;13492:419;;;:::o;13917:227::-;14057:34;14053:1;14045:6;14041:14;14034:58;14126:10;14121:2;14113:6;14109:15;14102:35;13917:227;:::o;14150:366::-;14292:3;14313:67;14377:2;14372:3;14313:67;:::i;:::-;14306:74;;14389:93;14478:3;14389:93;:::i;:::-;14507:2;14502:3;14498:12;14491:19;;14150:366;;;:::o;14522:419::-;14688:4;14726:2;14715:9;14711:18;14703:26;;14775:9;14769:4;14765:20;14761:1;14750:9;14746:17;14739:47;14803:131;14929:4;14803:131;:::i;:::-;14795:139;;14522:419;;;:::o;14947:180::-;14995:77;14992:1;14985:88;15092:4;15089:1;15082:15;15116:4;15113:1;15106:15;15133:194;15173:4;15193:20;15211:1;15193:20;:::i;:::-;15188:25;;15227:20;15245:1;15227:20;:::i;:::-;15222:25;;15271:1;15268;15264:9;15256:17;;15295:1;15289:4;15286:11;15283:37;;;15300:18;;:::i;:::-;15283:37;15133:194;;;;:::o;15333:191::-;15373:3;15392:20;15410:1;15392:20;:::i;:::-;15387:25;;15426:20;15444:1;15426:20;:::i;:::-;15421:25;;15469:1;15466;15462:9;15455:16;;15490:3;15487:1;15484:10;15481:36;;;15497:18;;:::i;:::-;15481:36;15333:191;;;;:::o;15530:171::-;15670:23;15666:1;15658:6;15654:14;15647:47;15530:171;:::o;15707:366::-;15849:3;15870:67;15934:2;15929:3;15870:67;:::i;:::-;15863:74;;15946:93;16035:3;15946:93;:::i;:::-;16064:2;16059:3;16055:12;16048:19;;15707:366;;;:::o;16079:419::-;16245:4;16283:2;16272:9;16268:18;16260:26;;16332:9;16326:4;16322:20;16318:1;16307:9;16303:17;16296:47;16360:131;16486:4;16360:131;:::i;:::-;16352:139;;16079:419;;;:::o;16504:102::-;16546:8;16593:5;16590:1;16586:13;16565:34;;16504:102;;;:::o;16612:848::-;16673:5;16680:4;16704:6;16695:15;;16728:5;16719:14;;16742:712;16763:1;16753:8;16750:15;16742:712;;;16858:4;16853:3;16849:14;16843:4;16840:24;16837:50;;;16867:18;;:::i;:::-;16837:50;16917:1;16907:8;16903:16;16900:451;;;17332:4;17325:5;17321:16;17312:25;;16900:451;17382:4;17376;17372:15;17364:23;;17412:32;17435:8;17412:32;:::i;:::-;17400:44;;16742:712;;;16612:848;;;;;;;:::o;17466:1073::-;17520:5;17711:8;17701:40;;17732:1;17723:10;;17734:5;;17701:40;17760:4;17750:36;;17777:1;17768:10;;17779:5;;17750:36;17846:4;17894:1;17889:27;;;;17930:1;17925:191;;;;17839:277;;17889:27;17907:1;17898:10;;17909:5;;;17925:191;17970:3;17960:8;17957:17;17954:43;;;17977:18;;:::i;:::-;17954:43;18026:8;18023:1;18019:16;18010:25;;18061:3;18054:5;18051:14;18048:40;;;18068:18;;:::i;:::-;18048:40;18101:5;;;17839:277;;18225:2;18215:8;18212:16;18206:3;18200:4;18197:13;18193:36;18175:2;18165:8;18162:16;18157:2;18151:4;18148:12;18144:35;18128:111;18125:246;;;18281:8;18275:4;18271:19;18262:28;;18316:3;18309:5;18306:14;18303:40;;;18323:18;;:::i;:::-;18303:40;18356:5;;18125:246;18396:42;18434:3;18424:8;18418:4;18415:1;18396:42;:::i;:::-;18381:57;;;;18470:4;18465:3;18461:14;18454:5;18451:25;18448:51;;;18479:18;;:::i;:::-;18448:51;18528:4;18521:5;18517:16;18508:25;;17466:1073;;;;;;:::o;18545:281::-;18603:5;18627:23;18645:4;18627:23;:::i;:::-;18619:31;;18671:25;18687:8;18671:25;:::i;:::-;18659:37;;18715:104;18752:66;18742:8;18736:4;18715:104;:::i;:::-;18706:113;;18545:281;;;;:::o;18832:410::-;18872:7;18895:20;18913:1;18895:20;:::i;:::-;18890:25;;18929:20;18947:1;18929:20;:::i;:::-;18924:25;;18984:1;18981;18977:9;19006:30;19024:11;19006:30;:::i;:::-;18995:41;;19185:1;19176:7;19172:15;19169:1;19166:22;19146:1;19139:9;19119:83;19096:139;;19215:18;;:::i;:::-;19096:139;18880:362;18832:410;;;;:::o;19248:180::-;19296:77;19293:1;19286:88;19393:4;19390:1;19383:15;19417:4;19414:1;19407:15;19434:233;19473:3;19496:24;19514:5;19496:24;:::i;:::-;19487:33;;19542:66;19535:5;19532:77;19529:103;;19612:18;;:::i;:::-;19529:103;19659:1;19652:5;19648:13;19641:20;;19434:233;;;:::o;19673:332::-;19794:4;19832:2;19821:9;19817:18;19809:26;;19845:71;19913:1;19902:9;19898:17;19889:6;19845:71;:::i;:::-;19926:72;19994:2;19983:9;19979:18;19970:6;19926:72;:::i;:::-;19673:332;;;;;:::o;20011:137::-;20065:5;20096:6;20090:13;20081:22;;20112:30;20136:5;20112:30;:::i;:::-;20011:137;;;;:::o;20154:345::-;20221:6;20270:2;20258:9;20249:7;20245:23;20241:32;20238:119;;;20276:79;;:::i;:::-;20238:119;20396:1;20421:61;20474:7;20465:6;20454:9;20450:22;20421:61;:::i;:::-;20411:71;;20367:125;20154:345;;;;:::o;20505:224::-;20645:34;20641:1;20633:6;20629:14;20622:58;20714:7;20709:2;20701:6;20697:15;20690:32;20505:224;:::o;20735:366::-;20877:3;20898:67;20962:2;20957:3;20898:67;:::i;:::-;20891:74;;20974:93;21063:3;20974:93;:::i;:::-;21092:2;21087:3;21083:12;21076:19;;20735:366;;;:::o;21107:419::-;21273:4;21311:2;21300:9;21296:18;21288:26;;21360:9;21354:4;21350:20;21346:1;21335:9;21331:17;21324:47;21388:131;21514:4;21388:131;:::i;:::-;21380:139;;21107:419;;;:::o;21532:225::-;21672:34;21668:1;21660:6;21656:14;21649:58;21741:8;21736:2;21728:6;21724:15;21717:33;21532:225;:::o;21763:366::-;21905:3;21926:67;21990:2;21985:3;21926:67;:::i;:::-;21919:74;;22002:93;22091:3;22002:93;:::i;:::-;22120:2;22115:3;22111:12;22104:19;;21763:366;;;:::o;22135:419::-;22301:4;22339:2;22328:9;22324:18;22316:26;;22388:9;22382:4;22378:20;22374:1;22363:9;22359:17;22352:47;22416:131;22542:4;22416:131;:::i;:::-;22408:139;;22135:419;;;:::o;22560:223::-;22700:34;22696:1;22688:6;22684:14;22677:58;22769:6;22764:2;22756:6;22752:15;22745:31;22560:223;:::o;22789:366::-;22931:3;22952:67;23016:2;23011:3;22952:67;:::i;:::-;22945:74;;23028:93;23117:3;23028:93;:::i;:::-;23146:2;23141:3;23137:12;23130:19;;22789:366;;;:::o;23161:419::-;23327:4;23365:2;23354:9;23350:18;23342:26;;23414:9;23408:4;23404:20;23400:1;23389:9;23385:17;23378:47;23442:131;23568:4;23442:131;:::i;:::-;23434:139;;23161:419;;;:::o;23586:221::-;23726:34;23722:1;23714:6;23710:14;23703:58;23795:4;23790:2;23782:6;23778:15;23771:29;23586:221;:::o;23813:366::-;23955:3;23976:67;24040:2;24035:3;23976:67;:::i;:::-;23969:74;;24052:93;24141:3;24052:93;:::i;:::-;24170:2;24165:3;24161:12;24154:19;;23813:366;;;:::o;24185:419::-;24351:4;24389:2;24378:9;24374:18;24366:26;;24438:9;24432:4;24428:20;24424:1;24413:9;24409:17;24402:47;24466:131;24592:4;24466:131;:::i;:::-;24458:139;;24185:419;;;:::o;24610:228::-;24750:34;24746:1;24738:6;24734:14;24727:58;24819:11;24814:2;24806:6;24802:15;24795:36;24610:228;:::o;24844:366::-;24986:3;25007:67;25071:2;25066:3;25007:67;:::i;:::-;25000:74;;25083:93;25172:3;25083:93;:::i;:::-;25201:2;25196:3;25192:12;25185:19;;24844:366;;;:::o;25216:419::-;25382:4;25420:2;25409:9;25405:18;25397:26;;25469:9;25463:4;25459:20;25455:1;25444:9;25440:17;25433:47;25497:131;25623:4;25497:131;:::i;:::-;25489:139;;25216:419;;;:::o;25641:169::-;25781:21;25777:1;25769:6;25765:14;25758:45;25641:169;:::o;25816:366::-;25958:3;25979:67;26043:2;26038:3;25979:67;:::i;:::-;25972:74;;26055:93;26144:3;26055:93;:::i;:::-;26173:2;26168:3;26164:12;26157:19;;25816:366;;;:::o;26188:419::-;26354:4;26392:2;26381:9;26377:18;26369:26;;26441:9;26435:4;26431:20;26427:1;26416:9;26412:17;26405:47;26469:131;26595:4;26469:131;:::i;:::-;26461:139;;26188:419;;;:::o;26613:169::-;26753:21;26749:1;26741:6;26737:14;26730:45;26613:169;:::o;26788:366::-;26930:3;26951:67;27015:2;27010:3;26951:67;:::i;:::-;26944:74;;27027:93;27116:3;27027:93;:::i;:::-;27145:2;27140:3;27136:12;27129:19;;26788:366;;;:::o;27160:419::-;27326:4;27364:2;27353:9;27349:18;27341:26;;27413:9;27407:4;27403:20;27399:1;27388:9;27384:17;27377:47;27441:131;27567:4;27441:131;:::i;:::-;27433:139;;27160:419;;;:::o;27585:179::-;27725:31;27721:1;27713:6;27709:14;27702:55;27585:179;:::o;27770:366::-;27912:3;27933:67;27997:2;27992:3;27933:67;:::i;:::-;27926:74;;28009:93;28098:3;28009:93;:::i;:::-;28127:2;28122:3;28118:12;28111:19;;27770:366;;;:::o;28142:419::-;28308:4;28346:2;28335:9;28331:18;28323:26;;28395:9;28389:4;28385:20;28381:1;28370:9;28366:17;28359:47;28423:131;28549:4;28423:131;:::i;:::-;28415:139;;28142:419;;;:::o;28567:182::-;28707:34;28703:1;28695:6;28691:14;28684:58;28567:182;:::o;28755:366::-;28897:3;28918:67;28982:2;28977:3;28918:67;:::i;:::-;28911:74;;28994:93;29083:3;28994:93;:::i;:::-;29112:2;29107:3;29103:12;29096:19;;28755:366;;;:::o;29127:419::-;29293:4;29331:2;29320:9;29316:18;29308:26;;29380:9;29374:4;29370:20;29366:1;29355:9;29351:17;29344:47;29408:131;29534:4;29408:131;:::i;:::-;29400:139;;29127:419;;;:::o;29552:180::-;29692:32;29688:1;29680:6;29676:14;29669:56;29552:180;:::o;29738:366::-;29880:3;29901:67;29965:2;29960:3;29901:67;:::i;:::-;29894:74;;29977:93;30066:3;29977:93;:::i;:::-;30095:2;30090:3;30086:12;30079:19;;29738:366;;;:::o;30110:419::-;30276:4;30314:2;30303:9;30299:18;30291:26;;30363:9;30357:4;30353:20;30349:1;30338:9;30334:17;30327:47;30391:131;30517:4;30391:131;:::i;:::-;30383:139;;30110:419;;;:::o;30535:180::-;30583:77;30580:1;30573:88;30680:4;30677:1;30670:15;30704:4;30701:1;30694:15;30721:185;30761:1;30778:20;30796:1;30778:20;:::i;:::-;30773:25;;30812:20;30830:1;30812:20;:::i;:::-;30807:25;;30851:1;30841:35;;30856:18;;:::i;:::-;30841:35;30898:1;30895;30891:9;30886:14;;30721:185;;;;:::o;30912:220::-;31052:34;31048:1;31040:6;31036:14;31029:58;31121:3;31116:2;31108:6;31104:15;31097:28;30912:220;:::o;31138:366::-;31280:3;31301:67;31365:2;31360:3;31301:67;:::i;:::-;31294:74;;31377:93;31466:3;31377:93;:::i;:::-;31495:2;31490:3;31486:12;31479:19;;31138:366;;;:::o;31510:419::-;31676:4;31714:2;31703:9;31699:18;31691:26;;31763:9;31757:4;31753:20;31749:1;31738:9;31734:17;31727:47;31791:131;31917:4;31791:131;:::i;:::-;31783:139;;31510:419;;;:::o;31935:221::-;32075:34;32071:1;32063:6;32059:14;32052:58;32144:4;32139:2;32131:6;32127:15;32120:29;31935:221;:::o;32162:366::-;32304:3;32325:67;32389:2;32384:3;32325:67;:::i;:::-;32318:74;;32401:93;32490:3;32401:93;:::i;:::-;32519:2;32514:3;32510:12;32503:19;;32162:366;;;:::o;32534:419::-;32700:4;32738:2;32727:9;32723:18;32715:26;;32787:9;32781:4;32777:20;32773:1;32762:9;32758:17;32751:47;32815:131;32941:4;32815:131;:::i;:::-;32807:139;;32534:419;;;:::o;32959:143::-;33016:5;33047:6;33041:13;33032:22;;33063:33;33090:5;33063:33;:::i;:::-;32959:143;;;;:::o;33108:351::-;33178:6;33227:2;33215:9;33206:7;33202:23;33198:32;33195:119;;;33233:79;;:::i;:::-;33195:119;33353:1;33378:64;33434:7;33425:6;33414:9;33410:22;33378:64;:::i;:::-;33368:74;;33324:128;33108:351;;;;:::o;33465:85::-;33510:7;33539:5;33528:16;;33465:85;;;:::o;33556:158::-;33614:9;33647:61;33665:42;33674:32;33700:5;33674:32;:::i;:::-;33665:42;:::i;:::-;33647:61;:::i;:::-;33634:74;;33556:158;;;:::o;33720:147::-;33815:45;33854:5;33815:45;:::i;:::-;33810:3;33803:58;33720:147;;:::o;33873:114::-;33940:6;33974:5;33968:12;33958:22;;33873:114;;;:::o;33993:184::-;34092:11;34126:6;34121:3;34114:19;34166:4;34161:3;34157:14;34142:29;;33993:184;;;;:::o;34183:132::-;34250:4;34273:3;34265:11;;34303:4;34298:3;34294:14;34286:22;;34183:132;;;:::o;34321:108::-;34398:24;34416:5;34398:24;:::i;:::-;34393:3;34386:37;34321:108;;:::o;34435:179::-;34504:10;34525:46;34567:3;34559:6;34525:46;:::i;:::-;34603:4;34598:3;34594:14;34580:28;;34435:179;;;;:::o;34620:113::-;34690:4;34722;34717:3;34713:14;34705:22;;34620:113;;;:::o;34769:732::-;34888:3;34917:54;34965:5;34917:54;:::i;:::-;34987:86;35066:6;35061:3;34987:86;:::i;:::-;34980:93;;35097:56;35147:5;35097:56;:::i;:::-;35176:7;35207:1;35192:284;35217:6;35214:1;35211:13;35192:284;;;35293:6;35287:13;35320:63;35379:3;35364:13;35320:63;:::i;:::-;35313:70;;35406:60;35459:6;35406:60;:::i;:::-;35396:70;;35252:224;35239:1;35236;35232:9;35227:14;;35192:284;;;35196:14;35492:3;35485:10;;34893:608;;;34769:732;;;;:::o;35507:831::-;35770:4;35808:3;35797:9;35793:19;35785:27;;35822:71;35890:1;35879:9;35875:17;35866:6;35822:71;:::i;:::-;35903:80;35979:2;35968:9;35964:18;35955:6;35903:80;:::i;:::-;36030:9;36024:4;36020:20;36015:2;36004:9;36000:18;35993:48;36058:108;36161:4;36152:6;36058:108;:::i;:::-;36050:116;;36176:72;36244:2;36233:9;36229:18;36220:6;36176:72;:::i;:::-;36258:73;36326:3;36315:9;36311:19;36302:6;36258:73;:::i;:::-;35507:831;;;;;;;;:::o;36344:179::-;36484:31;36480:1;36472:6;36468:14;36461:55;36344:179;:::o;36529:366::-;36671:3;36692:67;36756:2;36751:3;36692:67;:::i;:::-;36685:74;;36768:93;36857:3;36768:93;:::i;:::-;36886:2;36881:3;36877:12;36870:19;;36529:366;;;:::o;36901:419::-;37067:4;37105:2;37094:9;37090:18;37082:26;;37154:9;37148:4;37144:20;37140:1;37129:9;37125:17;37118:47;37182:131;37308:4;37182:131;:::i;:::-;37174:139;;36901:419;;;:::o;37326:224::-;37466:34;37462:1;37454:6;37450:14;37443:58;37535:7;37530:2;37522:6;37518:15;37511:32;37326:224;:::o;37556:366::-;37698:3;37719:67;37783:2;37778:3;37719:67;:::i;:::-;37712:74;;37795:93;37884:3;37795:93;:::i;:::-;37913:2;37908:3;37904:12;37897:19;;37556:366;;;:::o;37928:419::-;38094:4;38132:2;38121:9;38117:18;38109:26;;38181:9;38175:4;38171:20;38167:1;38156:9;38152:17;38145:47;38209:131;38335:4;38209:131;:::i;:::-;38201:139;;37928:419;;;:::o;38353:222::-;38493:34;38489:1;38481:6;38477:14;38470:58;38562:5;38557:2;38549:6;38545:15;38538:30;38353:222;:::o;38581:366::-;38723:3;38744:67;38808:2;38803:3;38744:67;:::i;:::-;38737:74;;38820:93;38909:3;38820:93;:::i;:::-;38938:2;38933:3;38929:12;38922:19;;38581:366;;;:::o;38953:419::-;39119:4;39157:2;39146:9;39142:18;39134:26;;39206:9;39200:4;39196:20;39192:1;39181:9;39177:17;39170:47;39234:131;39360:4;39234:131;:::i;:::-;39226:139;;38953:419;;;:::o;39378:225::-;39518:34;39514:1;39506:6;39502:14;39495:58;39587:8;39582:2;39574:6;39570:15;39563:33;39378:225;:::o;39609:366::-;39751:3;39772:67;39836:2;39831:3;39772:67;:::i;:::-;39765:74;;39848:93;39937:3;39848:93;:::i;:::-;39966:2;39961:3;39957:12;39950:19;;39609:366;;;:::o;39981:419::-;40147:4;40185:2;40174:9;40170:18;40162:26;;40234:9;40228:4;40224:20;40220:1;40209:9;40205:17;40198:47;40262:131;40388:4;40262:131;:::i;:::-;40254:139;;39981:419;;;:::o;40406:807::-;40655:4;40693:3;40682:9;40678:19;40670:27;;40707:71;40775:1;40764:9;40760:17;40751:6;40707:71;:::i;:::-;40788:72;40856:2;40845:9;40841:18;40832:6;40788:72;:::i;:::-;40870:80;40946:2;40935:9;40931:18;40922:6;40870:80;:::i;:::-;40960;41036:2;41025:9;41021:18;41012:6;40960:80;:::i;:::-;41050:73;41118:3;41107:9;41103:19;41094:6;41050:73;:::i;:::-;41133;41201:3;41190:9;41186:19;41177:6;41133:73;:::i;:::-;40406:807;;;;;;;;;:::o;41219:143::-;41276:5;41307:6;41301:13;41292:22;;41323:33;41350:5;41323:33;:::i;:::-;41219:143;;;;:::o;41368:663::-;41456:6;41464;41472;41521:2;41509:9;41500:7;41496:23;41492:32;41489:119;;;41527:79;;:::i;:::-;41489:119;41647:1;41672:64;41728:7;41719:6;41708:9;41704:22;41672:64;:::i;:::-;41662:74;;41618:128;41785:2;41811:64;41867:7;41858:6;41847:9;41843:22;41811:64;:::i;:::-;41801:74;;41756:129;41924:2;41950:64;42006:7;41997:6;41986:9;41982:22;41950:64;:::i;:::-;41940:74;;41895:129;41368:663;;;;;:::o;42037:179::-;42177:31;42173:1;42165:6;42161:14;42154:55;42037:179;:::o;42222:366::-;42364:3;42385:67;42449:2;42444:3;42385:67;:::i;:::-;42378:74;;42461:93;42550:3;42461:93;:::i;:::-;42579:2;42574:3;42570:12;42563:19;;42222:366;;;:::o;42594:419::-;42760:4;42798:2;42787:9;42783:18;42775:26;;42847:9;42841:4;42837:20;42833:1;42822:9;42818:17;42811:47;42875:131;43001:4;42875:131;:::i;:::-;42867:139;;42594:419;;;:::o;43019:147::-;43120:11;43157:3;43142:18;;43019:147;;;;:::o;43172:114::-;;:::o;43292:398::-;43451:3;43472:83;43553:1;43548:3;43472:83;:::i;:::-;43465:90;;43564:93;43653:3;43564:93;:::i;:::-;43682:1;43677:3;43673:11;43666:18;;43292:398;;;:::o;43696:379::-;43880:3;43902:147;44045:3;43902:147;:::i;:::-;43895:154;;44066:3;44059:10;;43696:379;;;:::o;44081:245::-;44221:34;44217:1;44209:6;44205:14;44198:58;44290:28;44285:2;44277:6;44273:15;44266:53;44081:245;:::o;44332:366::-;44474:3;44495:67;44559:2;44554:3;44495:67;:::i;:::-;44488:74;;44571:93;44660:3;44571:93;:::i;:::-;44689:2;44684:3;44680:12;44673:19;;44332:366;;;:::o;44704:419::-;44870:4;44908:2;44897:9;44893:18;44885:26;;44957:9;44951:4;44947:20;44943:1;44932:9;44928:17;44921:47;44985:131;45111:4;44985:131;:::i;:::-;44977:139;;44704:419;;;:::o
Swarm Source
ipfs://95d985764b64277e24a12777f9c784ca5d78e20392ae6638f3cecdd1283626c9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.