ERC-20
Overview
Max Total Supply
888,888 FU
Holders
49
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.809697973115253479 FUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FU
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-17 */ // SPDX-License-Identifier: Unlicensed // _ _ __ __ // | |__ (_) __ _ _ __ / _|_ _ _ \ \ // | '_ \| |/ _` | '_ \| |_| | | | (_) | | // | |_) | | (_| | | | | _| |_| | _ | | // |_.__/|_|\__,_|_| |_|_| \__,_| (_) | | // /_/ // biānfú 蝙蝠 – [bat] fú 福 – [fortune, happiness, luck] // fucoinerc.com // t.me/fucoinerc // twitter.com/fucoinerc // opensea.com/fucoinerc // medium.com/@fucoin // fú <3 你 pragma solidity ^0.8.16; 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 ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } abstract contract Ownable is Context { address internal _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } 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 { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IuniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); } interface IUniswapV2Router02 is IuniswapV2Router01 { } contract FU is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; mapping(address => bool) private _isExcludedFromMaxWallet; address[] private _excluded; address public _marketingWalletAddress; address constant _burnAddress = 0x000000000000000000000000000000000000dEaD; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; string private _name; string private _symbol; uint256 private _decimals; uint256 private _buyTaxFee = 150; uint256 private _buyMarketingFee = 175; uint256 private _buyBurnFee = 75; uint256 private _sellTaxFee = 150; uint256 private _sellMarketingFee = 175; uint256 private _sellBurnFee = 75; uint256 public _taxFee = _buyTaxFee; uint256 public _marketingFee = _buyMarketingFee; uint256 public _burnFee = _buyBurnFee; uint256 private _previousTaxFee = _taxFee; uint256 private _previousMarketingFee = _marketingFee; uint256 private _previousBurnFee = _burnFee; IUniswapV2Router02 public uniswapV2Router ; address public uniswapV2Pair; uint256 public maxWalletBalance; bool public tradingEnabled = false; constructor() { _name = "FU"; // _symbol = "FU"; // _decimals = 18; // _tTotal = 888888 * 10**_decimals; // maxWalletBalance = 17777 * 10**_decimals; // _rTotal = (MAX - (MAX % _tTotal)); _marketingWalletAddress = 0xC65774dD78633bAadB5101225658B16bD3eDeD77; // _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02 ( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory (_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _owner = _msgSender(); _isExcludedFromFee[_msgSender()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingWalletAddress] = true; _isExcludedFromMaxWallet[owner()] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[_burnAddress] = true; _isExcludedFromMaxWallet[_marketingWalletAddress]= true; _isExcluded[_burnAddress] = true; _isExcluded[uniswapV2Pair ] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint256) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } 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); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require( !_isExcluded[sender], "Excluded addresses cannot call this function" ); (uint256 rAmount, , , , , , ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount, , , , , , ) = _getValues(tAmount); return rAmount; } else { (, uint256 rTransferAmount, , , , , ) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner { require(_isExcluded[account], "Account is already included"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _transferBothExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeBurn(tBurn); _takeMarketing(tMarket); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function enableTrading() external onlyOwner { tradingEnabled = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner { _isExcludedFromMaxWallet[account] = value; } function isExcludedFromMaxWallet(address account) public view returns(bool){ return _isExcludedFromMaxWallet[account]; } function setSellFeePercent( uint256 tFee, uint256 mFee, uint256 cFee ) external onlyOwner { _sellTaxFee = tFee; _taxFee = _sellTaxFee; _sellMarketingFee = mFee; _marketingFee = _sellMarketingFee; _sellBurnFee = cFee; _burnFee = _sellBurnFee; } function setBuyFeePercent( uint256 tFee, uint256 mFee, uint256 cFee ) external onlyOwner { _buyTaxFee = tFee; _taxFee = _buyTaxFee; _buyMarketingFee = mFee; _marketingFee = _buyMarketingFee; _buyBurnFee = cFee; _burnFee = _buyBurnFee; } function setMarketingWalletAddress(address _addr) external onlyOwner { _marketingWalletAddress = _addr; } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256, uint256 ) { ( uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket ) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues( tAmount, tFee, tBurn, tMarket, _getRate() ); return ( rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tMarket ); } function _getTValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256 ) { uint256 tFee = calculateTaxFee(tAmount); uint256 tBurn = calculateBurn(tAmount); uint256 tMarket = calculateMarketingFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn).sub( tMarket ); return (tTransferAmount, tFee, tBurn, tMarket); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tMarket, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurn = tBurn.mul(currentRate); uint256 rMarket= tMarket.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub( rMarket ); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeBurn(uint256 tBurn) private { uint256 currentRate = _getRate(); uint256 rBurn = tBurn.mul( currentRate ); _rOwned[_burnAddress] = _rOwned[_burnAddress].add( rBurn ); if (_isExcluded[_burnAddress]) _tOwned[_burnAddress] = _tOwned[_burnAddress].add( tBurn ); } function _takeMarketing(uint256 tMarket) private { uint256 currentRate = _getRate(); uint256 rMarket = tMarket.mul(currentRate); _rOwned[_marketingWalletAddress] = _rOwned[_marketingWalletAddress].add( rMarket ); if (_isExcluded[_marketingWalletAddress]) _tOwned[_marketingWalletAddress] = _tOwned[_marketingWalletAddress].add( tMarket ); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div(10**4); } function calculateMarketingFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_marketingFee).div(10**4); } function calculateBurn(uint256 _amount) private view returns (uint256) { return _amount.mul(_burnFee).div(10**4); } function removeAllFee() private { _previousTaxFee = _taxFee; _previousMarketingFee = _marketingFee; _previousBurnFee = _burnFee; _taxFee = 0; _marketingFee = 0; _burnFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _marketingFee = _previousMarketingFee; _burnFee = _previousBurnFee; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && !tradingEnabled) { require(tradingEnabled, "Trading is not enabled yet"); } if ( from != owner() && to != address(this) && to != _burnAddress && to != uniswapV2Pair ) { uint256 currentBalance = balanceOf(to); require( _isExcludedFromMaxWallet[to] || (currentBalance + amount <= maxWalletBalance), "ERC20: Reached Max wallet holding" ); } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } else { if (from == uniswapV2Pair ) { _taxFee = _buyTaxFee; _marketingFee = _buyMarketingFee; _burnFee = _buyBurnFee; } else if (to == uniswapV2Pair ) { _taxFee = _sellTaxFee; _marketingFee = _sellMarketingFee; _burnFee = _sellBurnFee; } else { _taxFee = 0; _marketingFee = 0; _burnFee = 0; } } _tokenTransfer(from, to, amount, takeFee); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeBurn(tBurn); _takeMarketing(tMarket); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeBurn(tBurn); _takeMarketing(tMarket); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeBurn(tBurn); _takeMarketing(tMarket); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"cFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052609660105560af601155604b601255609660135560af601455604b601555601054601655601154601755601254601855601654601955601754601a55601854601b556000601f60006101000a81548160ff0219169083151502179055503480156200006e57600080fd5b506200007f6200095b60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36040518060400160405280600281526020017f4655000000000000000000000000000000000000000000000000000000000000815250600d90816200017f919062000c06565b506040518060400160405280600281526020017f4655000000000000000000000000000000000000000000000000000000000000815250600e9081620001c6919062000c06565b506012600f81905550600f54600a620001e0919062000e70565b620d9038620001f0919062000ec1565b600a81905550600f54600a62000207919062000e70565b61457162000216919062000ec1565b601e81905550600a546000196200022e919062000f51565b6000196200023d919062000f89565b600b8190555073c65774dd78633baadb5101225658b16bd3eded77600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5460026000620002af6200095b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037891906200102e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040691906200102e565b6040518363ffffffff1660e01b81526004016200042592919062001071565b6020604051808303816000875af115801562000445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046b91906200102e565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004fc6200095b60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005516200095b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200068a6200096360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008eb6200095b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200094c9190620010af565b60405180910390a350620010cc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a0e57607f821691505b60208210810362000a245762000a23620009c6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a4f565b62000a9a868362000a4f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ae762000ae162000adb8462000ab2565b62000abc565b62000ab2565b9050919050565b6000819050919050565b62000b038362000ac6565b62000b1b62000b128262000aee565b84845462000a5c565b825550505050565b600090565b62000b3262000b23565b62000b3f81848462000af8565b505050565b5b8181101562000b675762000b5b60008262000b28565b60018101905062000b45565b5050565b601f82111562000bb65762000b808162000a2a565b62000b8b8462000a3f565b8101602085101562000b9b578190505b62000bb362000baa8562000a3f565b83018262000b44565b50505b505050565b600082821c905092915050565b600062000bdb6000198460080262000bbb565b1980831691505092915050565b600062000bf6838362000bc8565b9150826002028217905092915050565b62000c11826200098c565b67ffffffffffffffff81111562000c2d5762000c2c62000997565b5b62000c398254620009f5565b62000c4682828562000b6b565b600060209050601f83116001811462000c7e576000841562000c69578287015190505b62000c75858262000be8565b86555062000ce5565b601f19841662000c8e8662000a2a565b60005b8281101562000cb85784890151825560018201915060208501945060208101905062000c91565b8683101562000cd8578489015162000cd4601f89168262000bc8565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d7b5780860481111562000d535762000d5262000ced565b5b600185161562000d635780820291505b808102905062000d738562000d1c565b945062000d33565b94509492505050565b60008262000d96576001905062000e69565b8162000da6576000905062000e69565b816001811462000dbf576002811462000dca5762000e00565b600191505062000e69565b60ff84111562000ddf5762000dde62000ced565b5b8360020a91508482111562000df95762000df862000ced565b5b5062000e69565b5060208310610133831016604e8410600b841016171562000e3a5782820a90508381111562000e345762000e3362000ced565b5b62000e69565b62000e49848484600162000d29565b9250905081840481111562000e635762000e6262000ced565b5b81810290505b9392505050565b600062000e7d8262000ab2565b915062000e8a8362000ab2565b925062000eb97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d84565b905092915050565b600062000ece8262000ab2565b915062000edb8362000ab2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f175762000f1662000ced565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f5e8262000ab2565b915062000f6b8362000ab2565b92508262000f7e5762000f7d62000f22565b5b828206905092915050565b600062000f968262000ab2565b915062000fa38362000ab2565b925082820390508181111562000fbe5762000fbd62000ced565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ff68262000fc9565b9050919050565b620010088162000fe9565b81146200101457600080fd5b50565b600081519050620010288162000ffd565b92915050565b60006020828403121562001047576200104662000fc4565b5b6000620010578482850162001017565b91505092915050565b6200106b8162000fe9565b82525050565b600060408201905062001088600083018562001060565b62001097602083018462001060565b9392505050565b620010a98162000ab2565b82525050565b6000602082019050620010c660008301846200109e565b92915050565b614b7a80620010dc6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614af860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b206025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aec57614aeb61435b565b5b82820290509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b8a97e3e6eb2c0b4c6583177d8a0728fd551eacf8bac4cf634e984fcc45721264736f6c63430008100033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102325760003560e01c80634ada218b116101305780638da5cb5b116100b8578063be19674b1161007c578063be19674b146106a5578063c0b0fda2146106c1578063dd62ed3e146106df578063ea2f0b371461070f578063f2fde38b1461072b57610232565b80638da5cb5b146105eb57806395d89b4114610609578063a457c2d714610627578063a9059cbb14610657578063bbde77c11461068757610232565b80636dd3d39f116100ff5780636dd3d39f1461054757806370a0823114610577578063715018a6146105a757806388f82020146105b15780638a8c523c146105e157610232565b80634ada218b146104c15780634cb80fd5146104df57806352390c02146104fb5780635342acb41461051757610232565b8063313ce567116101be5780634144d9e4116101825780634144d9e41461041d578063437823ec1461043b5780634549b0391461045757806348eb61b61461048757806349bd5a5e146104a357610232565b8063313ce567146103795780633685d4191461039757806339509351146103b35780633b124fe7146103e35780633bd5d1731461040157610232565b80631694505e116102055780631694505e146102bf57806318160ddd146102dd57806322976e0d146102fb57806323b872dd146103195780632d8381191461034957610232565b806306fdde0314610237578063095ea7b31461025557806313114a9d14610285578063151cd1c2146102a3575b600080fd5b61023f610747565b60405161024c9190613d77565b60405180910390f35b61026f600480360381019061026a9190613e32565b6107d9565b60405161027c9190613e8d565b60405180910390f35b61028d6107f7565b60405161029a9190613eb7565b60405180910390f35b6102bd60048036038101906102b89190613ed2565b610801565b005b6102c76108b2565b6040516102d49190613f84565b60405180910390f35b6102e56108d8565b6040516102f29190613eb7565b60405180910390f35b6103036108e2565b6040516103109190613eb7565b60405180910390f35b610333600480360381019061032e9190613f9f565b6108e8565b6040516103409190613e8d565b60405180910390f35b610363600480360381019061035e9190613ff2565b6109c1565b6040516103709190613eb7565b60405180910390f35b610381610a2f565b60405161038e9190613eb7565b60405180910390f35b6103b160048036038101906103ac919061401f565b610a39565b005b6103cd60048036038101906103c89190613e32565b610d6e565b6040516103da9190613e8d565b60405180910390f35b6103eb610e21565b6040516103f89190613eb7565b60405180910390f35b61041b60048036038101906104169190613ff2565b610e27565b005b610425610fa3565b604051610432919061405b565b60405180910390f35b6104556004803603810190610450919061401f565b610fc9565b005b610471600480360381019061046c91906140a2565b6110a0565b60405161047e9190613eb7565b60405180910390f35b6104a1600480360381019061049c91906140e2565b611126565b005b6104ab6111fd565b6040516104b8919061405b565b60405180910390f35b6104c9611223565b6040516104d69190613e8d565b60405180910390f35b6104f960048036038101906104f4919061401f565b611236565b005b6105156004803603810190610510919061401f565b6112f6565b005b610531600480360381019061052c919061401f565b611591565b60405161053e9190613e8d565b60405180910390f35b610561600480360381019061055c919061401f565b6115e7565b60405161056e9190613e8d565b60405180910390f35b610591600480360381019061058c919061401f565b61163d565b60405161059e9190613eb7565b60405180910390f35b6105af611728565b005b6105cb60048036038101906105c6919061401f565b611862565b6040516105d89190613e8d565b60405180910390f35b6105e96118b8565b005b6105f3611951565b604051610600919061405b565b60405180910390f35b61061161197a565b60405161061e9190613d77565b60405180910390f35b610641600480360381019061063c9190613e32565b611a0c565b60405161064e9190613e8d565b60405180910390f35b610671600480360381019061066c9190613e32565b611ad9565b60405161067e9190613e8d565b60405180910390f35b61068f611af7565b60405161069c9190613eb7565b60405180910390f35b6106bf60048036038101906106ba9190613ed2565b611afd565b005b6106c9611bae565b6040516106d69190613eb7565b60405180910390f35b6106f960048036038101906106f49190614122565b611bb4565b6040516107069190613eb7565b60405180910390f35b6107296004803603810190610724919061401f565b611c3b565b005b6107456004803603810190610740919061401f565b611d12565b005b6060600d805461075690614191565b80601f016020809104026020016040519081016040528092919081815260200182805461078290614191565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b60006107ed6107e6611eba565b8484611ec2565b6001905092915050565b6000600c54905090565b610809611eba565b73ffffffffffffffffffffffffffffffffffffffff16610827611951565b73ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108749061420e565b60405180910390fd5b826013819055506013546016819055508160148190555060145460178190555080601581905550601554601881905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60175481565b60006108f584848461208b565b6109b684610901611eba565b6109b185604051806060016040528060288152602001614af860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610967611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b600190509392505050565b6000600b54821115610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906142a0565b60405180910390fd5b6000610a1261262d565b9050610a27818461265890919063ffffffff16565b915050919050565b6000600f54905090565b610a41611eba565b73ffffffffffffffffffffffffffffffffffffffff16610a5f611951565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061430c565b60405180910390fd5b60005b600880549050811015610d6a578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7c57610b7b61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d575760086001600880549050610bd6919061438a565b81548110610be757610be661432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c2657610c2561432c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d1d57610d1c6143be565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d6a565b8080610d62906143ed565b915050610b44565b5050565b6000610e17610d7b611eba565b84610e128560046000610d8c611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611ec2565b6001905092915050565b60165481565b6000610e31611eba565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906144a7565b60405180910390fd5b6000610ecb83612684565b5050505050509050610f2581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7d81600b546126ec90919063ffffffff16565b600b81905550610f9883600c5461266e90919063ffffffff16565b600c81905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16610fef611951565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061420e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90614513565b60405180910390fd5b816111085760006110f784612684565b505050505050905080915050611120565b600061111384612684565b5050505050915050809150505b92915050565b61112e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661114c611951565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061420e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b61123e611eba565b73ffffffffffffffffffffffffffffffffffffffff1661125c611951565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061420e565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112fe611eba565b73ffffffffffffffffffffffffffffffffffffffff1661131c611951565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113699061420e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f69061457f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114d35761148f600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611723565b611720600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c1565b90505b919050565b611730611eba565b73ffffffffffffffffffffffffffffffffffffffff1661174e611951565b73ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b9061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118c0611eba565b73ffffffffffffffffffffffffffffffffffffffff166118de611951565b73ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b9061420e565b60405180910390fd5b6001601f60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e805461198990614191565b80601f01602080910402602001604051908101604052809291908181526020018280546119b590614191565b8015611a025780601f106119d757610100808354040283529160200191611a02565b820191906000526020600020905b8154815290600101906020018083116119e557829003601f168201915b5050505050905090565b6000611acf611a19611eba565b84611aca85604051806060016040528060258152602001614b206025913960046000611a43611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d89092919063ffffffff16565b611ec2565b6001905092915050565b6000611aed611ae6611eba565b848461208b565b6001905092915050565b601e5481565b611b05611eba565b73ffffffffffffffffffffffffffffffffffffffff16611b23611951565b73ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b709061420e565b60405180910390fd5b826010819055506010546016819055508160118190555060115460178190555080601281905550601254601881905550505050565b60185481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c43611eba565b73ffffffffffffffffffffffffffffffffffffffff16611c61611951565b73ffffffffffffffffffffffffffffffffffffffff1614611cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cae9061420e565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d1a611eba565b73ffffffffffffffffffffffffffffffffffffffff16611d38611951565b73ffffffffffffffffffffffffffffffffffffffff1614611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d859061420e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490614611565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906146a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9790614735565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161207e9190613eb7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906147c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216090614859565b60405180910390fd5b600081116121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906148eb565b60405180910390fd5b6121b4611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121fc5750601f60009054906101000a900460ff16155b1561225157601f60009054906101000a900460ff16612250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224790614957565b60405180910390fd5b5b612259611951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122c057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122fa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123545750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240c5760006123648361163d565b9050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601e5482826123c89190614977565b11155b61240a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240190614a1d565b60405180910390fd5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124b35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124c157600090506125c6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612536576010546016819055506011546017819055506012546018819055506125c5565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125ab576013546016819055506014546017819055506015546018819055506125c4565b6000601681905550600060178190555060006018819055505b5b5b6125d284848484612702565b50505050565b6000838311158290612620576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126179190613d77565b60405180910390fd5b5082840390509392505050565b600080600061263a612a13565b91509150612651818361265890919063ffffffff16565b9250505090565b600081836126669190614a6c565b905092915050565b6000818361267c9190614977565b905092915050565b600080600080600080600080600080600061269e8c612cc6565b935093509350935060008060006126bf8f8787876126ba61262d565b612d45565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b600081836126fa919061438a565b905092915050565b806127105761270f612df9565b5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127b35750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c8576127c3848484612e2e565b6129ff565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561286b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128805761287b84848461309c565b6129fe565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129245750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129395761293484848461330a565b6129fd565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129db5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129f0576129eb8484846134e3565b6129fc565b6129fb84848461330a565b5b5b5b5b80612a0d57612a0c6137e6565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015612c8957826002600060088481548110612a4d57612a4c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b3b5750816003600060088481548110612ad357612ad261432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b5257600b54600a5494509450505050612cc2565b612be26002600060088481548110612b6d57612b6c61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126ec90919063ffffffff16565b9250612c746003600060088481548110612bff57612bfe61432c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126ec90919063ffffffff16565b91508080612c81906143ed565b915050612a27565b50612ca1600a54600b5461265890919063ffffffff16565b821015612cb957600b54600a54935093505050612cc2565b81819350935050505b9091565b6000806000806000612cd786613803565b90506000612ce487613835565b90506000612cf188613867565b90506000612d2c82612d1e85612d10888e6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b9050808484849750975097509750505050509193509193565b600080600080612d5e858a61389990919063ffffffff16565b90506000612d75868a61389990919063ffffffff16565b90506000612d8c878a61389990919063ffffffff16565b90506000612da3888a61389990919063ffffffff16565b90506000612dde82612dd085612dc2888a6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b6126ec90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b601654601981905550601754601a81905550601854601b81905550600060168190555060006017819055506000601881905550565b6000806000806000806000612e4288612684565b9650965096509650965096509650612ea288600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3787600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fcc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613018826138af565b61302181613a5e565b61302b8584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516130889190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006130b088612684565b965096509650965096509650965061311087600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a584600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061323a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613286826138af565b61328f81613a5e565b6132998584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132f69190613eb7565b60405180910390a350505050505050505050565b600080600080600080600061331e88612684565b965096509650965096509650965061337e87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345f826138af565b61346881613a5e565b6134728584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf9190613eb7565b60405180910390a350505050505050505050565b60008060008060008060006134f788612684565b965096509650965096509650965061355788600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135ec87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ec90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368184600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613762826138af565b61376b81613a5e565b6137758584613cad565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516137d29190613eb7565b60405180910390a350505050505050505050565b601954601681905550601a54601781905550601b54601881905550565b600061382e6127106138206016548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138606127106138526018548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b60006138926127106138846017548561389990919063ffffffff16565b61265890919063ffffffff16565b9050919050565b600081836138a79190614a9d565b905092915050565b60006138b961262d565b905060006138d0828461389990919063ffffffff16565b9050613926816002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a5957613a13836003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b6003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000613a6861262d565b90506000613a7f828461389990919063ffffffff16565b9050613af58160026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60026000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ca857613c428360036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b60036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b613cc282600b546126ec90919063ffffffff16565b600b81905550613cdd81600c5461266e90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d21578082015181840152602081019050613d06565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d4982613ce7565b613d538185613cf2565b9350613d63818560208601613d03565b613d6c81613d2d565b840191505092915050565b60006020820190508181036000830152613d918184613d3e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613dc982613d9e565b9050919050565b613dd981613dbe565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b6000819050919050565b613e0f81613dfc565b8114613e1a57600080fd5b50565b600081359050613e2c81613e06565b92915050565b60008060408385031215613e4957613e48613d99565b5b6000613e5785828601613de7565b9250506020613e6885828601613e1d565b9150509250929050565b60008115159050919050565b613e8781613e72565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b613eb181613dfc565b82525050565b6000602082019050613ecc6000830184613ea8565b92915050565b600080600060608486031215613eeb57613eea613d99565b5b6000613ef986828701613e1d565b9350506020613f0a86828701613e1d565b9250506040613f1b86828701613e1d565b9150509250925092565b6000819050919050565b6000613f4a613f45613f4084613d9e565b613f25565b613d9e565b9050919050565b6000613f5c82613f2f565b9050919050565b6000613f6e82613f51565b9050919050565b613f7e81613f63565b82525050565b6000602082019050613f996000830184613f75565b92915050565b600080600060608486031215613fb857613fb7613d99565b5b6000613fc686828701613de7565b9350506020613fd786828701613de7565b9250506040613fe886828701613e1d565b9150509250925092565b60006020828403121561400857614007613d99565b5b600061401684828501613e1d565b91505092915050565b60006020828403121561403557614034613d99565b5b600061404384828501613de7565b91505092915050565b61405581613dbe565b82525050565b6000602082019050614070600083018461404c565b92915050565b61407f81613e72565b811461408a57600080fd5b50565b60008135905061409c81614076565b92915050565b600080604083850312156140b9576140b8613d99565b5b60006140c785828601613e1d565b92505060206140d88582860161408d565b9150509250929050565b600080604083850312156140f9576140f8613d99565b5b600061410785828601613de7565b92505060206141188582860161408d565b9150509250929050565b6000806040838503121561413957614138613d99565b5b600061414785828601613de7565b925050602061415885828601613de7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141a957607f821691505b6020821081036141bc576141bb614162565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141f8602083613cf2565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061428a602a83613cf2565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006142f6601b83613cf2565b9150614301826142c0565b602082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061439582613dfc565b91506143a083613dfc565b92508282039050818111156143b8576143b761435b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006143f882613dfc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361442a5761442961435b565b5b600182019050919050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000614491602c83613cf2565b915061449c82614435565b604082019050919050565b600060208201905081810360008301526144c081614484565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006144fd601f83613cf2565b9150614508826144c7565b602082019050919050565b6000602082019050818103600083015261452c816144f0565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000614569601b83613cf2565b915061457482614533565b602082019050919050565b600060208201905081810360008301526145988161455c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145fb602683613cf2565b91506146068261459f565b604082019050919050565b6000602082019050818103600083015261462a816145ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061468d602483613cf2565b915061469882614631565b604082019050919050565b600060208201905081810360008301526146bc81614680565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061471f602283613cf2565b915061472a826146c3565b604082019050919050565b6000602082019050818103600083015261474e81614712565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147b1602583613cf2565b91506147bc82614755565b604082019050919050565b600060208201905081810360008301526147e0816147a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614843602383613cf2565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006148d5602983613cf2565b91506148e082614879565b604082019050919050565b60006020820190508181036000830152614904816148c8565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000614941601a83613cf2565b915061494c8261490b565b602082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b600061498282613dfc565b915061498d83613dfc565b92508282019050808211156149a5576149a461435b565b5b92915050565b7f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e60008201527f6700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a07602183613cf2565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a7782613dfc565b9150614a8283613dfc565b925082614a9257614a91614a3d565b5b828204905092915050565b6000614aa882613dfc565b9150614ab383613dfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aec57614aeb61435b565b5b82820290509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b8a97e3e6eb2c0b4c6583177d8a0728fd551eacf8bac4cf634e984fcc45721264736f6c63430008100033
Deployed Bytecode Sourcemap
3962:19699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6803:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9289:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12908:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5340:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7082:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5080:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7991:446;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10304:322;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10974:477;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8445:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9384:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4427:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12273:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9813:483;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12603:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5390:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5463:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13585:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10634:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18446:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12762:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7185:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3166:148;;;:::i;:::-;;9161:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:84;;;:::i;:::-;;2943:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8753:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7391:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5425:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13250:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5134:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7598:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12485:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3322:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6803:83;6840:13;6873:5;6866:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6803:83;:::o;7790:193::-;7892:4;7914:39;7923:12;:10;:12::i;:::-;7937:7;7946:6;7914:8;:39::i;:::-;7971:4;7964:11;;7790:193;;;;:::o;9289:87::-;9331:7;9358:10;;9351:17;;9289:87;:::o;12908:334::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13055:4:::1;13041:11;:18;;;;13080:11;;13070:7;:21;;;;13122:4;13102:17;:24;;;;13153:17;;13137:13;:33;;;;13196:4;13181:12;:19;;;;13222:12;;13211:8;:23;;;;12908:334:::0;;;:::o;5340:42::-;;;;;;;;;;;;;:::o;7082:95::-;7135:7;7162;;7155:14;;7082:95;:::o;5080:47::-;;;;:::o;7991:446::-;8123:4;8140:36;8150:6;8158:9;8169:6;8140:9;:36::i;:::-;8187:220;8210:6;8231:12;:10;:12::i;:::-;8258:138;8314:6;8258:138;;;;;;;;;;;;;;;;;:11;:19;8270:6;8258:19;;;;;;;;;;;;;;;:33;8278:12;:10;:12::i;:::-;8258:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8187:8;:220::i;:::-;8425:4;8418:11;;7991:446;;;;;:::o;10304:322::-;10398:7;10456;;10445;:18;;10423:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10544:19;10566:10;:8;:10::i;:::-;10544:32;;10594:24;10606:11;10594:7;:11;;:24;;;;:::i;:::-;10587:31;;;10304:322;;;:::o;6989:85::-;7030:7;7057:9;;7050:16;;6989:85;:::o;10974:477::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11054:11:::1;:20;11066:7;11054:20;;;;;;;;;;;;;;;;;;;;;;;;;11046:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11122:9;11117:327;11141:9;:16;;;;11137:1;:20;11117:327;;;11199:7;11183:23;;:9;11193:1;11183:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;::::0;11179:254:::1;;11242:9;11271:1;11252:9;:16;;;;:20;;;;:::i;:::-;11242:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11227:9;11237:1;11227:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11311:1;11292:7;:16;11300:7;11292:16;;;;;;;;;;;;;;;:20;;;;11354:5;11331:11;:20;11343:7;11331:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11378:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11412:5;;11179:254;11159:3;;;;;:::i;:::-;;;;11117:327;;;;10974:477:::0;:::o;8445:300::-;8560:4;8582:133;8605:12;:10;:12::i;:::-;8632:7;8654:50;8693:10;8654:11;:25;8666:12;:10;:12::i;:::-;8654:25;;;;;;;;;;;;;;;:34;8680:7;8654:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8582:8;:133::i;:::-;8733:4;8726:11;;8445:300;;;;:::o;5038:35::-;;;;:::o;9384:421::-;9436:14;9453:12;:10;:12::i;:::-;9436:29;;9499:11;:19;9511:6;9499:19;;;;;;;;;;;;;;;;;;;;;;;;;9498:20;9476:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;9602:15;9633:19;9644:7;9633:10;:19::i;:::-;9601:51;;;;;;;;9681:28;9701:7;9681;:15;9689:6;9681:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9663:7;:15;9671:6;9663:15;;;;;;;;;;;;;;;:46;;;;9730:20;9742:7;9730;;:11;;:20;;;;:::i;:::-;9720:7;:30;;;;9774:23;9789:7;9774:10;;:14;;:23;;;;:::i;:::-;9761:10;:36;;;;9425:380;;9384:421;:::o;4427:38::-;;;;;;;;;;;;;:::o;12273:111::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12372:4:::1;12342:18;:27;12361:7;12342:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12273:111:::0;:::o;9813:483::-;9931:7;9975;;9964;:18;;9956:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10034:17;10029:260;;10069:15;10100:19;10111:7;10100:10;:19::i;:::-;10068:51;;;;;;;;10141:7;10134:14;;;;;10029:260;10184:23;10221:19;10232:7;10221:10;:19::i;:::-;10181:59;;;;;;;;10262:15;10255:22;;;9813:483;;;;;:::o;12603:151::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12741:5:::1;12705:24;:33;12730:7;12705:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12603:151:::0;;:::o;5390:28::-;;;;;;;;;;;;;:::o;5463:34::-;;;;;;;;;;;;;:::o;13585:119::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13691:5:::1;13665:23;;:31;;;;;;;;;;;;;;;;;;13585:119:::0;:::o;10634:332::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10715:11:::1;:20;10727:7;10715:20;;;;;;;;;;;;;;;;;;;;;;;;;10714:21;10706:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10801:1;10782:7;:16;10790:7;10782:16;;;;;;;;;;;;;;;;:20;10778:109;;;10838:37;10858:7;:16;10866:7;10858:16;;;;;;;;;;;;;;;;10838:19;:37::i;:::-;10819:7;:16;10827:7;10819:16;;;;;;;;;;;;;;;:56;;;;10778:109;10920:4;10897:11;:20;10909:7;10897:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10935:9;10950:7;10935:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10634:332:::0;:::o;18446:124::-;18511:4;18535:18;:27;18554:7;18535:27;;;;;;;;;;;;;;;;;;;;;;;;;18528:34;;18446:124;;;:::o;12762:138::-;12832:4;12859:24;:33;12884:7;12859:33;;;;;;;;;;;;;;;;;;;;;;;;;12852:40;;12762:138;;;:::o;7185:198::-;7251:7;7275:11;:20;7287:7;7275:20;;;;;;;;;;;;;;;;;;;;;;;;;7271:49;;;7304:7;:16;7312:7;7304:16;;;;;;;;;;;;;;;;7297:23;;;;7271:49;7338:37;7358:7;:16;7366:7;7358:16;;;;;;;;;;;;;;;;7338:19;:37::i;:::-;7331:44;;7185:198;;;;:::o;3166:148::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3273:1:::1;3236:40;;3257:6;::::0;::::1;;;;;;;;3236:40;;;;;;;;;;;;3304:1;3287:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3166:148::o:0;9161:120::-;9229:4;9253:11;:20;9265:7;9253:20;;;;;;;;;;;;;;;;;;;;;;;;;9246:27;;9161:120;;;:::o;12393:84::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12465:4:::1;12448:14;;:21;;;;;;;;;;;;;;;;;;12393:84::o:0;2943:87::-;2989:7;3016:6;;;;;;;;;;;3009:13;;2943:87;:::o;6894:::-;6933:13;6966:7;6959:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6894:87;:::o;8753:400::-;8873:4;8895:228;8918:12;:10;:12::i;:::-;8945:7;8967:145;9024:15;8967:145;;;;;;;;;;;;;;;;;:11;:25;8979:12;:10;:12::i;:::-;8967:25;;;;;;;;;;;;;;;:34;8993:7;8967:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;8895:8;:228::i;:::-;9141:4;9134:11;;8753:400;;;;:::o;7391:199::-;7496:4;7518:42;7528:12;:10;:12::i;:::-;7542:9;7553:6;7518:9;:42::i;:::-;7578:4;7571:11;;7391:199;;;;:::o;5425:31::-;;;;:::o;13250:327::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13395:4:::1;13382:10;:17;;;;13420:10;;13410:7;:20;;;;13460:4;13441:16;:23;;;;13491:16;;13475:13;:32;;;;13532:4;13518:11;:18;;;;13558:11;;13547:8;:22;;;;13250:327:::0;;;:::o;5134:37::-;;;;:::o;7598:184::-;7715:7;7747:11;:18;7759:5;7747:18;;;;;;;;;;;;;;;:27;7766:7;7747:27;;;;;;;;;;;;;;;;7740:34;;7598:184;;;;:::o;12485:110::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12582:5:::1;12552:18;:27;12571:7;12552:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12485:110:::0;:::o;3322:281::-;3089:12;:10;:12::i;:::-;3078:23;;:7;:5;:7::i;:::-;:23;;;3070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3445:1:::1;3425:22;;:8;:22;;::::0;3403:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3558:8;3529:38;;3550:6;::::0;::::1;;;;;;;;3529:38;;;;;;;;;;;;3587:8;3578:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3322:281:::0;:::o;2365:98::-;2418:7;2445:10;2438:17;;2365:98;:::o;18578:371::-;18722:1;18705:19;;:5;:19;;;18697:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18803:1;18784:21;;:7;:21;;;18776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18887:6;18857:11;:18;18869:5;18857:18;;;;;;;;;;;;;;;:27;18876:7;18857:27;;;;;;;;;;;;;;;:36;;;;18925:7;18909:32;;18918:5;18909:32;;;18934:6;18909:32;;;;;;:::i;:::-;;;;;;;;18578:371;;;:::o;18957:1675::-;19095:1;19079:18;;:4;:18;;;19071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19172:1;19158:16;;:2;:16;;;19150:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19242:1;19233:6;:10;19225:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19312:7;:5;:7::i;:::-;19304:15;;:4;:15;;;;:34;;;;;19324:14;;;;;;;;;;;19323:15;19304:34;19300:120;;;19363:14;;;;;;;;;;;19355:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;19300:120;19463:7;:5;:7::i;:::-;19455:15;;:4;:15;;;;:55;;;;;19505:4;19491:19;;:2;:19;;;;19455:55;:94;;;;;4504:42;19531:18;;:2;:18;;;;19455:94;:134;;;;;19576:13;;;;;;;;;;;19570:19;;:2;:19;;;;19455:134;19433:473;;;19624:22;19649:13;19659:2;19649:9;:13::i;:::-;19624:38;;19711:24;:28;19736:2;19711:28;;;;;;;;;;;;;;;;;;;;;;;;;:102;;;;19796:16;;19786:6;19769:14;:23;;;;:::i;:::-;:43;;19711:102;19681:209;;;;;;;;;;;;:::i;:::-;;;;;;;;;19605:301;19433:473;19926:12;19941:4;19926:19;;19960:18;:24;19979:4;19960:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19988:18;:22;20007:2;19988:22;;;;;;;;;;;;;;;;;;;;;;;;;19960:50;19956:606;;;20037:5;20027:15;;19956:606;;;20087:13;;;;;;;;;;;20079:21;;:4;:21;;;20075:476;;20132:10;;20122:7;:20;;;;20177:16;;20161:13;:32;;;;20223:11;;20212:8;:22;;;;20075:476;;;20266:13;;;;;;;;;;;20260:19;;:2;:19;;;20256:295;;20311:11;;20301:7;:21;;;;20357:17;;20341:13;:33;;;;20404:12;;20393:8;:23;;;;20256:295;;;20467:1;20457:7;:11;;;;20503:1;20487:13;:17;;;;20534:1;20523:8;:12;;;;20256:295;20075:476;19956:606;20581:41;20596:4;20602:2;20606:6;20614:7;20581:14;:41::i;:::-;19060:1572;18957:1675;;;:::o;1836:240::-;1956:7;2014:1;2009;:6;;2017:12;2001:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2056:1;2052;:5;2045:12;;1836:240;;;;;:::o;15879:164::-;15921:7;15942:15;15959;15978:19;:17;:19::i;:::-;15941:56;;;;16015:20;16027:7;16015;:11;;:20;;;;:::i;:::-;16008:27;;;;15879:164;:::o;1730:98::-;1788:7;1819:1;1815;:5;;;;:::i;:::-;1808:12;;1730:98;;;;:::o;1412:::-;1470:7;1501:1;1497;:5;;;;:::i;:::-;1490:12;;1412:98;;;;:::o;13867:823::-;13967:7;13989;14011;14033;14055;14077;14099;14149:23;14187:12;14214:13;14242:15;14271:20;14283:7;14271:11;:20::i;:::-;14134:157;;;;;;;;14303:15;14320:23;14345:12;14361:130;14387:7;14409:4;14428:5;14448:7;14470:10;:8;:10::i;:::-;14361:11;:130::i;:::-;14302:189;;;;;;14524:7;14546:15;14576:4;14595:15;14625:4;14644:5;14664:7;14502:180;;;;;;;;;;;;;;;;;;;;;13867:823;;;;;;;;;:::o;1518:98::-;1576:7;1607:1;1603;:5;;;;:::i;:::-;1596:12;;1518:98;;;;:::o;20640:838::-;20796:7;20791:28;;20805:14;:12;:14::i;:::-;20791:28;20836:11;:19;20848:6;20836:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;20860:11;:22;20872:9;20860:22;;;;;;;;;;;;;;;;;;;;;;;;;20859:23;20836:46;20832:597;;;20899:48;20921:6;20929:9;20940:6;20899:21;:48::i;:::-;20832:597;;;20970:11;:19;20982:6;20970:19;;;;;;;;;;;;;;;;;;;;;;;;;20969:20;:46;;;;;20993:11;:22;21005:9;20993:22;;;;;;;;;;;;;;;;;;;;;;;;;20969:46;20965:464;;;21032:46;21052:6;21060:9;21071:6;21032:19;:46::i;:::-;20965:464;;;21101:11;:19;21113:6;21101:19;;;;;;;;;;;;;;;;;;;;;;;;;21100:20;:47;;;;;21125:11;:22;21137:9;21125:22;;;;;;;;;;;;;;;;;;;;;;;;;21124:23;21100:47;21096:333;;;21164:44;21182:6;21190:9;21201:6;21164:17;:44::i;:::-;21096:333;;;21230:11;:19;21242:6;21230:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;21253:11;:22;21265:9;21253:22;;;;;;;;;;;;;;;;;;;;;;;;;21230:45;21226:203;;;21292:48;21314:6;21322:9;21333:6;21292:21;:48::i;:::-;21226:203;;;21373:44;21391:6;21399:9;21410:6;21373:17;:44::i;:::-;21226:203;21096:333;20965:464;20832:597;21446:7;21441:29;;21455:15;:13;:15::i;:::-;21441:29;20640:838;;;;:::o;16051:605::-;16102:7;16111;16131:15;16149:7;;16131:25;;16167:15;16185:7;;16167:25;;16208:9;16203:338;16227:9;:16;;;;16223:1;:20;16203:338;;;16311:7;16287;:21;16295:9;16305:1;16295:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16287:21;;;;;;;;;;;;;;;;:31;:83;;;;16363:7;16339;:21;16347:9;16357:1;16347:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16339:21;;;;;;;;;;;;;;;;:31;16287:83;16265:146;;;16394:7;;16403;;16386:25;;;;;;;;;16265:146;16436:34;16448:7;:21;16456:9;16466:1;16456:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16448:21;;;;;;;;;;;;;;;;16436:7;:11;;:34;;;;:::i;:::-;16426:44;;16495:34;16507:7;:21;16515:9;16525:1;16515:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16507:21;;;;;;;;;;;;;;;;16495:7;:11;;:34;;;;:::i;:::-;16485:44;;16245:3;;;;;:::i;:::-;;;;16203:338;;;;16565:20;16577:7;;16565;;:11;;:20;;;;:::i;:::-;16555:7;:30;16551:61;;;16595:7;;16604;;16587:25;;;;;;;;16551:61;16631:7;16640;16623:25;;;;;;16051:605;;;:::o;14698:516::-;14799:7;14821;14843;14865;14900:12;14915:24;14931:7;14915:15;:24::i;:::-;14900:39;;14950:13;14966:22;14980:7;14966:13;:22::i;:::-;14950:38;;14999:15;15017:30;15039:7;15017:21;:30::i;:::-;14999:48;;15058:23;15084:65;15131:7;15084:28;15106:5;15084:17;15096:4;15084:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;15058:91;;15168:15;15185:4;15191:5;15198:7;15160:46;;;;;;;;;;;;14698:516;;;;;:::o;15222:649::-;15442:7;15464;15486;15521:15;15539:24;15551:11;15539:7;:11;;:24;;;;:::i;:::-;15521:42;;15574:12;15589:21;15598:11;15589:4;:8;;:21;;;;:::i;:::-;15574:36;;15621:13;15637:22;15647:11;15637:5;:9;;:22;;;;:::i;:::-;15621:38;;15670:15;15687:24;15699:11;15687:7;:11;;:24;;;;:::i;:::-;15670:41;;15722:23;15748:65;15795:7;15748:28;15770:5;15748:17;15760:4;15748:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;15722:91;;15832:7;15841:15;15858:4;15824:39;;;;;;;;;;;15222:649;;;;;;;;;:::o;18030:237::-;18091:7;;18073:15;:25;;;;18133:13;;18109:21;:37;;;;18176:8;;18157:16;:27;;;;18207:1;18197:7;:11;;;;18235:1;18219:13;:17;;;;18258:1;18247:8;:12;;;;18030:237::o;22923:735::-;23074:15;23104:23;23142:12;23169:23;23207:12;23234:13;23262:15;23291:19;23302:7;23291:10;:19::i;:::-;23059:251;;;;;;;;;;;;;;23339:28;23359:7;23339;:15;23347:6;23339:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23321:7;:15;23329:6;23321:15;;;;;;;;;;;;;;;:46;;;;23396:28;23416:7;23396;:15;23404:6;23396:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23378:7;:15;23386:6;23378:15;;;;;;;;;;;;;;;:46;;;;23456:39;23479:15;23456:7;:18;23464:9;23456:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23435:7;:18;23443:9;23435:18;;;;;;;;;;;;;;;:60;;;;23506:16;23516:5;23506:9;:16::i;:::-;23533:23;23548:7;23533:14;:23::i;:::-;23567;23579:4;23585;23567:11;:23::i;:::-;23623:9;23606:44;;23615:6;23606:44;;;23634:15;23606:44;;;;;;:::i;:::-;;;;;;;;23048:610;;;;;;;22923:735;;;:::o;22168:747::-;22317:15;22347:23;22385:12;22412:23;22450:12;22477:13;22505:15;22534:19;22545:7;22534:10;:19::i;:::-;22302:251;;;;;;;;;;;;;;22582:28;22602:7;22582;:15;22590:6;22582:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22564:7;:15;22572:6;22564:15;;;;;;;;;;;;;;;:46;;;;22642:39;22665:15;22642:7;:18;22650:9;22642:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22621:7;:18;22629:9;22621:18;;;;;;;;;;;;;;;:60;;;;22713:39;22736:15;22713:7;:18;22721:9;22713:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22692:7;:18;22700:9;22692:18;;;;;;;;;;;;;;;:60;;;;22763:16;22773:5;22763:9;:16::i;:::-;22790:23;22805:7;22790:14;:23::i;:::-;22824;22836:4;22842;22824:11;:23::i;:::-;22880:9;22863:44;;22872:6;22863:44;;;22891:15;22863:44;;;;;;:::i;:::-;;;;;;;;22291:624;;;;;;;22168:747;;;:::o;21486:674::-;21633:15;21663:23;21701:12;21728:23;21766:12;21793:13;21821:15;21850:19;21861:7;21850:10;:19::i;:::-;21618:251;;;;;;;;;;;;;;21898:28;21918:7;21898;:15;21906:6;21898:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21880:7;:15;21888:6;21880:15;;;;;;;;;;;;;;;:46;;;;21958:39;21981:15;21958:7;:18;21966:9;21958:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21937:7;:18;21945:9;21937:18;;;;;;;;;;;;;;;:60;;;;22008:16;22018:5;22008:9;:16::i;:::-;22035:23;22050:7;22035:14;:23::i;:::-;22069;22081:4;22087;22069:11;:23::i;:::-;22125:9;22108:44;;22117:6;22108:44;;;22136:15;22108:44;;;;;;:::i;:::-;;;;;;;;21607:553;;;;;;;21486:674;;;:::o;11459:806::-;11610:15;11640:23;11678:12;11705:23;11743:12;11770:13;11798:15;11827:19;11838:7;11827:10;:19::i;:::-;11595:251;;;;;;;;;;;;;;11875:28;11895:7;11875;:15;11883:6;11875:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11857:7;:15;11865:6;11857:15;;;;;;;;;;;;;;;:46;;;;11932:28;11952:7;11932;:15;11940:6;11932:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11914:7;:15;11922:6;11914:15;;;;;;;;;;;;;;;:46;;;;11992:39;12015:15;11992:7;:18;12000:9;11992:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11971:7;:18;11979:9;11971:18;;;;;;;;;;;;;;;:60;;;;12063:39;12086:15;12063:7;:18;12071:9;12063:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12042:7;:18;12050:9;12042:18;;;;;;;;;;;;;;;:60;;;;12113:16;12123:5;12113:9;:16::i;:::-;12140:23;12155:7;12140:14;:23::i;:::-;12174;12186:4;12192;12174:11;:23::i;:::-;12230:9;12213:44;;12222:6;12213:44;;;12241:15;12213:44;;;;;;:::i;:::-;;;;;;;;11584:681;;;;;;;11459:806;;;:::o;18275:163::-;18329:15;;18319:7;:25;;;;18371:21;;18355:13;:37;;;;18414:16;;18403:8;:27;;;;18275:163::o;17541:130::-;17605:7;17632:31;17657:5;17632:20;17644:7;;17632;:11;;:20;;;;:::i;:::-;:24;;:31;;;;:::i;:::-;17625:38;;17541:130;;;:::o;17861:161::-;17950:7;17982:32;18008:5;17982:21;17994:8;;17982:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;17975:39;;17861:161;;;:::o;17679:174::-;17776:7;17808:37;17839:5;17808:26;17820:13;;17808:7;:11;;:26;;;;:::i;:::-;:30;;:37;;;;:::i;:::-;17801:44;;17679:174;;;:::o;1624:98::-;1682:7;1713:1;1709;:5;;;;:::i;:::-;1702:12;;1624:98;;;;:::o;16664:415::-;16732:19;16754:10;:8;:10::i;:::-;16732:32;;16775:13;16791:46;16815:11;16791:5;:9;;:46;;;;:::i;:::-;16775:62;;16872:56;16912:5;16872:7;:21;4504:42;16872:21;;;;;;;;;;;;;;;;:25;;:56;;;;:::i;:::-;16848:7;:21;4504:42;16848:21;;;;;;;;;;;;;;;:80;;;;16943:11;:25;4504:42;16943:25;;;;;;;;;;;;;;;;;;;;;;;;;16939:132;;;17007:64;17051:5;17007:7;:21;4504:42;17007:21;;;;;;;;;;;;;;;;:25;;:64;;;;:::i;:::-;16983:7;:21;4504:42;16983:21;;;;;;;;;;;;;;;:88;;;;16939:132;16720:359;;16664:415;:::o;17087:446::-;17147:19;17169:10;:8;:10::i;:::-;17147:32;;17190:15;17208:24;17220:11;17208:7;:11;;:24;;;;:::i;:::-;17190:42;;17278:69;17329:7;17278;:32;17286:23;;;;;;;;;;;17278:32;;;;;;;;;;;;;;;;:36;;:69;;;;:::i;:::-;17243:7;:32;17251:23;;;;;;;;;;;17243:32;;;;;;;;;;;;;;;:104;;;;17362:11;:36;17374:23;;;;;;;;;;;17362:36;;;;;;;;;;;;;;;;;;;;;;;;;17358:167;;;17448:77;17503:7;17448;:32;17456:23;;;;;;;;;;;17448:32;;;;;;;;;;;;;;;;:36;;:77;;;;:::i;:::-;17413:7;:32;17421:23;;;;;;;;;;;17413:32;;;;;;;;;;;;;;;:112;;;;17358:167;17136:397;;17087:446;:::o;13712:147::-;13790:17;13802:4;13790:7;;:11;;:17;;;;:::i;:::-;13780:7;:27;;;;13831:20;13846:4;13831:10;;:14;;:20;;;;:::i;:::-;13818:10;:33;;;;13712:147;;:::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;1430:117::-;1539:1;1536;1529: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:60::-;4451:3;4472:5;4465:12;;4423:60;;;:::o;4489:142::-;4539:9;4572:53;4590:34;4599:24;4617:5;4599:24;:::i;:::-;4590:34;:::i;:::-;4572:53;:::i;:::-;4559:66;;4489:142;;;:::o;4637:126::-;4687:9;4720:37;4751:5;4720:37;:::i;:::-;4707:50;;4637:126;;;:::o;4769:152::-;4845:9;4878:37;4909:5;4878:37;:::i;:::-;4865:50;;4769:152;;;:::o;4927:183::-;5040:63;5097:5;5040:63;:::i;:::-;5035:3;5028:76;4927:183;;:::o;5116:274::-;5235:4;5273:2;5262:9;5258:18;5250:26;;5286:97;5380:1;5369:9;5365:17;5356:6;5286:97;:::i;:::-;5116:274;;;;:::o;5396:619::-;5473:6;5481;5489;5538:2;5526:9;5517:7;5513:23;5509:32;5506:119;;;5544:79;;:::i;:::-;5506:119;5664:1;5689:53;5734:7;5725:6;5714:9;5710:22;5689:53;:::i;:::-;5679:63;;5635:117;5791:2;5817:53;5862:7;5853:6;5842:9;5838:22;5817:53;:::i;:::-;5807:63;;5762:118;5919:2;5945:53;5990:7;5981:6;5970:9;5966:22;5945:53;:::i;:::-;5935:63;;5890:118;5396:619;;;;;:::o;6021:329::-;6080:6;6129:2;6117:9;6108:7;6104:23;6100:32;6097:119;;;6135:79;;:::i;:::-;6097:119;6255:1;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6226:117;6021:329;;;;:::o;6356:::-;6415:6;6464:2;6452:9;6443:7;6439:23;6435:32;6432:119;;;6470:79;;:::i;:::-;6432:119;6590:1;6615:53;6660:7;6651:6;6640:9;6636:22;6615:53;:::i;:::-;6605:63;;6561:117;6356:329;;;;:::o;6691:118::-;6778:24;6796:5;6778:24;:::i;:::-;6773:3;6766:37;6691:118;;:::o;6815:222::-;6908:4;6946:2;6935:9;6931:18;6923:26;;6959:71;7027:1;7016:9;7012:17;7003:6;6959:71;:::i;:::-;6815:222;;;;:::o;7043:116::-;7113:21;7128:5;7113:21;:::i;:::-;7106:5;7103:32;7093:60;;7149:1;7146;7139:12;7093:60;7043:116;:::o;7165:133::-;7208:5;7246:6;7233:20;7224:29;;7262:30;7286:5;7262:30;:::i;:::-;7165:133;;;;:::o;7304:468::-;7369:6;7377;7426:2;7414:9;7405:7;7401:23;7397:32;7394:119;;;7432:79;;:::i;:::-;7394:119;7552:1;7577:53;7622:7;7613:6;7602:9;7598:22;7577:53;:::i;:::-;7567:63;;7523:117;7679:2;7705:50;7747:7;7738:6;7727:9;7723:22;7705:50;:::i;:::-;7695:60;;7650:115;7304:468;;;;;:::o;7778:::-;7843:6;7851;7900:2;7888:9;7879:7;7875:23;7871:32;7868:119;;;7906:79;;:::i;:::-;7868:119;8026:1;8051:53;8096:7;8087:6;8076:9;8072:22;8051:53;:::i;:::-;8041:63;;7997:117;8153:2;8179:50;8221:7;8212:6;8201:9;8197:22;8179:50;:::i;:::-;8169:60;;8124:115;7778:468;;;;;:::o;8252:474::-;8320:6;8328;8377:2;8365:9;8356:7;8352:23;8348:32;8345:119;;;8383:79;;:::i;:::-;8345:119;8503:1;8528:53;8573:7;8564:6;8553:9;8549:22;8528:53;:::i;:::-;8518:63;;8474:117;8630:2;8656:53;8701:7;8692:6;8681:9;8677:22;8656:53;:::i;:::-;8646:63;;8601:118;8252:474;;;;;:::o;8732:180::-;8780:77;8777:1;8770:88;8877:4;8874:1;8867:15;8901:4;8898:1;8891:15;8918:320;8962:6;8999:1;8993:4;8989:12;8979:22;;9046:1;9040:4;9036:12;9067:18;9057:81;;9123:4;9115:6;9111:17;9101:27;;9057:81;9185:2;9177:6;9174:14;9154:18;9151:38;9148:84;;9204:18;;:::i;:::-;9148:84;8969:269;8918:320;;;:::o;9244:182::-;9384:34;9380:1;9372:6;9368:14;9361:58;9244:182;:::o;9432:366::-;9574:3;9595:67;9659:2;9654:3;9595:67;:::i;:::-;9588:74;;9671:93;9760:3;9671:93;:::i;:::-;9789:2;9784:3;9780:12;9773:19;;9432:366;;;:::o;9804:419::-;9970:4;10008:2;9997:9;9993:18;9985:26;;10057:9;10051:4;10047:20;10043:1;10032:9;10028:17;10021:47;10085:131;10211:4;10085:131;:::i;:::-;10077:139;;9804:419;;;:::o;10229:229::-;10369:34;10365:1;10357:6;10353:14;10346:58;10438:12;10433:2;10425:6;10421:15;10414:37;10229:229;:::o;10464:366::-;10606:3;10627:67;10691:2;10686:3;10627:67;:::i;:::-;10620:74;;10703:93;10792:3;10703:93;:::i;:::-;10821:2;10816:3;10812:12;10805:19;;10464:366;;;:::o;10836:419::-;11002:4;11040:2;11029:9;11025:18;11017:26;;11089:9;11083:4;11079:20;11075:1;11064:9;11060:17;11053:47;11117:131;11243:4;11117:131;:::i;:::-;11109:139;;10836:419;;;:::o;11261:177::-;11401:29;11397:1;11389:6;11385:14;11378:53;11261:177;:::o;11444:366::-;11586:3;11607:67;11671:2;11666:3;11607:67;:::i;:::-;11600:74;;11683:93;11772:3;11683:93;:::i;:::-;11801:2;11796:3;11792:12;11785:19;;11444:366;;;:::o;11816:419::-;11982:4;12020:2;12009:9;12005:18;11997:26;;12069:9;12063:4;12059:20;12055:1;12044:9;12040:17;12033:47;12097:131;12223:4;12097:131;:::i;:::-;12089:139;;11816:419;;;:::o;12241:180::-;12289:77;12286:1;12279:88;12386:4;12383:1;12376:15;12410:4;12407:1;12400:15;12427:180;12475:77;12472:1;12465:88;12572:4;12569:1;12562:15;12596:4;12593:1;12586:15;12613:194;12653:4;12673:20;12691:1;12673:20;:::i;:::-;12668:25;;12707:20;12725:1;12707:20;:::i;:::-;12702:25;;12751:1;12748;12744:9;12736:17;;12775:1;12769:4;12766:11;12763:37;;;12780:18;;:::i;:::-;12763:37;12613:194;;;;:::o;12813:180::-;12861:77;12858:1;12851:88;12958:4;12955:1;12948:15;12982:4;12979:1;12972:15;12999:233;13038:3;13061:24;13079:5;13061:24;:::i;:::-;13052:33;;13107:66;13100:5;13097:77;13094:103;;13177:18;;:::i;:::-;13094:103;13224:1;13217:5;13213:13;13206:20;;12999:233;;;:::o;13238:231::-;13378:34;13374:1;13366:6;13362:14;13355:58;13447:14;13442:2;13434:6;13430:15;13423:39;13238:231;:::o;13475:366::-;13617:3;13638:67;13702:2;13697:3;13638:67;:::i;:::-;13631:74;;13714:93;13803:3;13714:93;:::i;:::-;13832:2;13827:3;13823:12;13816:19;;13475:366;;;:::o;13847:419::-;14013:4;14051:2;14040:9;14036:18;14028:26;;14100:9;14094:4;14090:20;14086:1;14075:9;14071:17;14064:47;14128:131;14254:4;14128:131;:::i;:::-;14120:139;;13847:419;;;:::o;14272:181::-;14412:33;14408:1;14400:6;14396:14;14389:57;14272:181;:::o;14459:366::-;14601:3;14622:67;14686:2;14681:3;14622:67;:::i;:::-;14615:74;;14698:93;14787:3;14698:93;:::i;:::-;14816:2;14811:3;14807:12;14800:19;;14459:366;;;:::o;14831:419::-;14997:4;15035:2;15024:9;15020:18;15012:26;;15084:9;15078:4;15074:20;15070:1;15059:9;15055:17;15048:47;15112:131;15238:4;15112:131;:::i;:::-;15104:139;;14831:419;;;:::o;15256:177::-;15396:29;15392:1;15384:6;15380:14;15373:53;15256:177;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:225::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:8;16440:2;16432:6;16428:15;16421:33;16236:225;:::o;16467:366::-;16609:3;16630:67;16694:2;16689:3;16630:67;:::i;:::-;16623:74;;16706:93;16795:3;16706:93;:::i;:::-;16824:2;16819:3;16815:12;16808:19;;16467:366;;;:::o;16839:419::-;17005:4;17043:2;17032:9;17028:18;17020:26;;17092:9;17086:4;17082:20;17078:1;17067:9;17063:17;17056:47;17120:131;17246:4;17120:131;:::i;:::-;17112:139;;16839:419;;;:::o;17264:223::-;17404:34;17400:1;17392:6;17388:14;17381:58;17473:6;17468:2;17460:6;17456:15;17449:31;17264:223;:::o;17493:366::-;17635:3;17656:67;17720:2;17715:3;17656:67;:::i;:::-;17649:74;;17732:93;17821:3;17732:93;:::i;:::-;17850:2;17845:3;17841:12;17834:19;;17493:366;;;:::o;17865:419::-;18031:4;18069:2;18058:9;18054:18;18046:26;;18118:9;18112:4;18108:20;18104:1;18093:9;18089:17;18082:47;18146:131;18272:4;18146:131;:::i;:::-;18138:139;;17865:419;;;:::o;18290:221::-;18430:34;18426:1;18418:6;18414:14;18407:58;18499:4;18494:2;18486:6;18482:15;18475:29;18290:221;:::o;18517:366::-;18659:3;18680:67;18744:2;18739:3;18680:67;:::i;:::-;18673:74;;18756:93;18845:3;18756:93;:::i;:::-;18874:2;18869:3;18865:12;18858:19;;18517:366;;;:::o;18889:419::-;19055:4;19093:2;19082:9;19078:18;19070:26;;19142:9;19136:4;19132:20;19128:1;19117:9;19113:17;19106:47;19170:131;19296:4;19170:131;:::i;:::-;19162:139;;18889:419;;;:::o;19314:224::-;19454:34;19450:1;19442:6;19438:14;19431:58;19523:7;19518:2;19510:6;19506:15;19499:32;19314:224;:::o;19544:366::-;19686:3;19707:67;19771:2;19766:3;19707:67;:::i;:::-;19700:74;;19783:93;19872:3;19783:93;:::i;:::-;19901:2;19896:3;19892:12;19885:19;;19544:366;;;:::o;19916:419::-;20082:4;20120:2;20109:9;20105:18;20097:26;;20169:9;20163:4;20159:20;20155:1;20144:9;20140:17;20133:47;20197:131;20323:4;20197:131;:::i;:::-;20189:139;;19916:419;;;:::o;20341:222::-;20481:34;20477:1;20469:6;20465:14;20458:58;20550:5;20545:2;20537:6;20533:15;20526:30;20341:222;:::o;20569:366::-;20711:3;20732:67;20796:2;20791:3;20732:67;:::i;:::-;20725:74;;20808:93;20897:3;20808:93;:::i;:::-;20926:2;20921:3;20917:12;20910:19;;20569:366;;;:::o;20941:419::-;21107:4;21145:2;21134:9;21130:18;21122:26;;21194:9;21188:4;21184:20;21180:1;21169:9;21165:17;21158:47;21222:131;21348:4;21222:131;:::i;:::-;21214:139;;20941:419;;;:::o;21366:228::-;21506:34;21502:1;21494:6;21490:14;21483:58;21575:11;21570:2;21562:6;21558:15;21551:36;21366:228;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o;22397:176::-;22537:28;22533:1;22525:6;22521:14;22514:52;22397:176;:::o;22579:366::-;22721:3;22742:67;22806:2;22801:3;22742:67;:::i;:::-;22735:74;;22818:93;22907:3;22818:93;:::i;:::-;22936:2;22931:3;22927:12;22920:19;;22579:366;;;:::o;22951:419::-;23117:4;23155:2;23144:9;23140:18;23132:26;;23204:9;23198:4;23194:20;23190:1;23179:9;23175:17;23168:47;23232:131;23358:4;23232:131;:::i;:::-;23224:139;;22951:419;;;:::o;23376:191::-;23416:3;23435:20;23453:1;23435:20;:::i;:::-;23430:25;;23469:20;23487:1;23469:20;:::i;:::-;23464:25;;23512:1;23509;23505:9;23498:16;;23533:3;23530:1;23527:10;23524:36;;;23540:18;;:::i;:::-;23524:36;23376:191;;;;:::o;23573:220::-;23713:34;23709:1;23701:6;23697:14;23690:58;23782:3;23777:2;23769:6;23765:15;23758:28;23573:220;:::o;23799:366::-;23941:3;23962:67;24026:2;24021:3;23962:67;:::i;:::-;23955:74;;24038:93;24127:3;24038:93;:::i;:::-;24156:2;24151:3;24147:12;24140:19;;23799:366;;;:::o;24171:419::-;24337:4;24375:2;24364:9;24360:18;24352:26;;24424:9;24418:4;24414:20;24410:1;24399:9;24395:17;24388:47;24452:131;24578:4;24452:131;:::i;:::-;24444:139;;24171:419;;;:::o;24596:180::-;24644:77;24641:1;24634:88;24741:4;24738:1;24731:15;24765:4;24762:1;24755:15;24782:185;24822:1;24839:20;24857:1;24839:20;:::i;:::-;24834:25;;24873:20;24891:1;24873:20;:::i;:::-;24868:25;;24912:1;24902:35;;24917:18;;:::i;:::-;24902:35;24959:1;24956;24952:9;24947:14;;24782:185;;;;:::o;24973:348::-;25013:7;25036:20;25054:1;25036:20;:::i;:::-;25031:25;;25070:20;25088:1;25070:20;:::i;:::-;25065:25;;25258:1;25190:66;25186:74;25183:1;25180:81;25175:1;25168:9;25161:17;25157:105;25154:131;;;25265:18;;:::i;:::-;25154:131;25313:1;25310;25306:9;25295:20;;24973:348;;;;:::o
Swarm Source
ipfs://5b8a97e3e6eb2c0b4c6583177d8a0728fd551eacf8bac4cf634e984fcc457212
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.