ETH Price: $3,445.08 (+7.92%)
Gas: 14 Gwei

Token

Levi (LEVI)
 

Overview

Max Total Supply

100,000,000 LEVI

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
31,367.568544309 LEVI

Value
$0.00
0x6ea336f5bc82340a303b2b3216108d128164bfe0
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LEVI

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-23
*/

//SPDX-License-Identifier: MIT 
//NOTE: SafeMath library not used as it's redundant since Solidity 0.8

pragma solidity 0.8.11;

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function decimals() external view returns (uint8);
  function symbol() external view returns (string memory);
  function name() external view returns (string memory);
  function getOwner() external view returns (address);
  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);
}

abstract contract Auth {
  address internal owner;
  constructor(address _owner) { owner = _owner; }
  modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
  function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner; emit OwnershipTransferred(newOwner); }
  event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
  function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
  function WETH() external pure returns (address);
  function factory() external pure returns (address);
  function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract LEVI is IERC20, Auth {
  string constant _name = "Levi";
  string constant _symbol = "LEVI";
  uint8 constant _decimals = 9;
  uint256 constant _totalSupply = 100_000_000 * (10 ** _decimals);
  uint32 _smd; uint32 _smr;
  mapping (address => uint256) private _balances;
  mapping (address => mapping (address => uint256)) private _allowances;
  mapping (address => bool) private _noFees;
  mapping (address => bool) private _noLimits;
  bool public tradingOpen;
  uint256 public maxTxAmount; uint256 public maxWalletAmount;
  uint256 private _taxSwapMin; uint256 private _taxSwapMax;
  mapping (address => bool) public _isLiqPool;
  address private _primaryLiqPool;
  uint16 public sniperCount = 0;
  uint8 _defTaxRate = 12;
  uint8 public taxRateBuy; uint8 public taxRateSell;
  uint16 private _autoLPShares   = 200;
  uint16 private _ethTaxShares1  = 500; //marketing
  uint16 private _ethTaxShares2  = 300; //development
  uint16 private _ethTaxShares3  = 200; //team
  uint16 private _totalTaxShares = _autoLPShares + _ethTaxShares1 + _ethTaxShares2 + _ethTaxShares3;

  uint256 private _humanBlock = 0;

  uint8 private _gasPriceBlocks = 15;
  uint256 blackGwei = 170 * 10**9;

  address payable private _ethTaxWallet1 = payable(0x725a444188BbAB0C20B09465Cdb718167c478F16); //marketing
  address payable private _ethTaxWallet2 = payable(0x54d9FA22c13851947e0cFc87e2C03Be65C2cC1Db); //development
  address payable private _ethTaxWallet3 = payable(0x54Ed0003bd7EDED5E636E0E2800bc0bf34536F58); //team
  address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
  IUniswapV2Router02 private _uniswapV2Router;
  bool private _inTaxSwap = false;
  modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

  event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);
  event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

  constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
    tradingOpen = false;
    maxTxAmount = _totalSupply;
    maxWalletAmount = _totalSupply;
    _taxSwapMin = _totalSupply * 10 / 10000;
    _taxSwapMax = _totalSupply * 50 / 10000;
    _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

    _noFees[owner] = true;
    _noFees[address(this)] = true;
    _noFees[_uniswapV2RouterAddress] = true;
    _noFees[_ethTaxWallet1] = true;
    _noFees[_ethTaxWallet2] = true;
    _noFees[_ethTaxWallet3] = true;

    _noLimits[address(this)] = true;
    _noLimits[owner] = true;
    _noLimits[_ethTaxWallet1] = true;
    _noLimits[_ethTaxWallet2] = true;
    _noLimits[_ethTaxWallet3] = true;

    require(smd>0,"Init out of range");
    _smd = smd; _smr = smr;
  }
  
  receive() external payable {}
  
  function totalSupply() external pure override returns (uint256) { return _totalSupply; }
  function decimals() external pure override returns (uint8) { return _decimals; }
  function symbol() external pure override returns (string memory) { return _symbol; }
  function name() external pure override returns (string memory) { return _name; }
  function getOwner() external view override returns (address) { return owner; }
  function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
  function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

  function approve(address spender, uint256 amount) public override returns (bool) {
    _allowances[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override returns (bool) {
    require(_checkTradingOpen(), "Trading not open");
    return _transferFrom(msg.sender, recipient, amount);
  }

  function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
    require(_checkTradingOpen(), "Trading not open");
    if(_allowances[sender][msg.sender] != type(uint256).max){
      _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
    }
    return _transferFrom(sender, recipient, amount);
  }

  function distributeInitials() internal {
    require(!tradingOpen, "trading already open");
    
    uint256 _initLpTokens = _totalSupply * 27 / 100;
    _balances[address(this)] = _initLpTokens;
    emit Transfer(address(0), address(this), _initLpTokens);

    uint256 _airdropAndLockTokens = _totalSupply - _initLpTokens;
    _balances[owner] = _airdropAndLockTokens;
    emit Transfer(address(0), address(owner), _airdropAndLockTokens);
  }

  function initLP(uint256 ethAmountWei) external onlyOwner {
    require(!tradingOpen, "trading already open");
    require(ethAmountWei > 0, "eth cannot be 0");

    distributeInitials();

    uint256 _contractETHBalance = address(this).balance;
    require(_contractETHBalance >= ethAmountWei, "not enough eth");
    uint256 _contractTokenBalance = balanceOf(address(this));
    require(_contractTokenBalance > 0, "no tokens");
    _primaryLiqPool = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

    _isLiqPool[_primaryLiqPool] = true;

    _approveRouter(_contractTokenBalance);
    _addLiquidity(_contractTokenBalance, ethAmountWei, false);

    _openTrading();
  }

  function _approveRouter(uint256 _tokenAmount) internal {
    if ( _allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount ) {
      _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
      emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
    }
  }

  function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
    address lpTokenRecipient = address(0);
    if ( !autoburn ) { lpTokenRecipient = owner; }
    _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
  }

  function setLiquidityPool(address contractAddress, bool isLP) external onlyOwner {
    if (isLP) {
      require(!_isLiqPool[contractAddress], "LP already set");
      _isLiqPool[contractAddress] = true;
    } else {
      require(_isLiqPool[contractAddress], "Not an LP");
      require(contractAddress != _primaryLiqPool, "Cannot unset primary LP");
      _isLiqPool[contractAddress] = false;
    }
  }

  function _openTrading() internal {
    _humanBlock = block.number + 10;
    maxTxAmount     = 5 * _totalSupply / 1000 + 10**_decimals; 
    maxWalletAmount = 10 * _totalSupply / 1000 + 10**_decimals;
    taxRateBuy = _defTaxRate;
    taxRateSell = 2* _defTaxRate; //anti-dump tax post launch 
    tradingOpen = true;
  }

  function safeBlock() external view returns (uint256) {
    uint256 _safeBlock;
    if ( _humanBlock > 0 && block.number >= _humanBlock + 5 ) {
      _safeBlock = _humanBlock;
    }
    return _safeBlock;
  }

  function humanize() external onlyOwner{
    require(tradingOpen,"trading not open");
    _humanize(0);
  }

  function _humanize(uint8 blkcount) internal {
    if ( _humanBlock > block.number || _humanBlock == 0 ) {
      _humanBlock = block.number + blkcount;
    }
  }

  function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
    require(sender != address(0) || recipient != address(0), "Zero wallet cannot transfer.");
    uint256 _taxAmount = _calculateTax(sender, recipient, amount);
    if ( _humanBlock > block.number ) {
      if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); }
      else { _taxAmount = amount * 988 / 1000; sniperCount++; }
    } else if ( block.number <= _humanBlock + _gasPriceBlocks && tx.gasprice > block.basefee) {
      uint256 priceDiff = 0;
      if ( tx.gasprice > block.basefee ) { 
        priceDiff = tx.gasprice - block.basefee;
        if ( priceDiff >= blackGwei ) { revert("Gas price over limit"); } 
      }
    }

    if ( !_inTaxSwap && _isLiqPool[recipient] ) { _swapTaxAndLiquify(); }

    if ( sender != address(this) && recipient != address(this) && sender != owner ) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
    uint256 _transferAmount = amount - _taxAmount;
    _balances[sender] = _balances[sender] - amount;
    if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; }
    _balances[recipient] = _balances[recipient] + _transferAmount;
    emit Transfer(sender, recipient, amount);
    return true;
  }

  function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
    bool limitCheckPassed = true;
    if ( tradingOpen && !_noLimits[recipient] ) {
      if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
      else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > maxWalletAmount) ) { limitCheckPassed = false; }
    }
    return limitCheckPassed;
  }

  function _checkTradingOpen() private view returns (bool){
    bool checkResult = false;
    if ( tradingOpen ) { checkResult = true; } 
    else if ( tx.origin == owner ) { checkResult = true; } 
    return checkResult;
  }

  function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
    uint256 taxAmount;
    if ( !tradingOpen || _noFees[sender] || _noFees[recipient] ) { taxAmount = 0; }
    else if ( _isLiqPool[sender] ) { taxAmount = amount * taxRateBuy / 100; }
    else if ( _isLiqPool[recipient] ) { taxAmount = amount * taxRateSell / 100; }
    else { taxAmount = 0; }
    return taxAmount;
  }

  function ignoreFees(address wallet, bool toggle) external onlyOwner {
    _noFees[ wallet ] = toggle;
  }

  function ignoreLimits(address wallet, bool toggle) external onlyOwner {
    _noLimits[ wallet ] = toggle;
  }

  function setTaxRates(uint8 newBuyTax, uint8 newSellTax) external onlyOwner {
    require(newBuyTax <= _defTaxRate && newSellTax <= _defTaxRate, "Tax too high");
    taxRateBuy = newBuyTax;
    taxRateSell = newSellTax;
  }

  function enableBuySupport() external onlyOwner {
    taxRateBuy = 0;
    taxRateSell = 2 * _defTaxRate;
  }
  
  function setTaxDistribution(uint16 sharesAutoLP, uint16 sharesEthWallet1, uint16 sharesEthWallet2, uint16 sharesEthWallet3) external onlyOwner {
    _autoLPShares = sharesAutoLP;
    _ethTaxShares1 = sharesEthWallet1;
    _ethTaxShares2 = sharesEthWallet2;
    _ethTaxShares3 = sharesEthWallet3;
    _totalTaxShares = sharesAutoLP + sharesEthWallet1 + sharesEthWallet2 + sharesEthWallet3;
  }
  
  function setTaxWallets(address newEthWallet1, address newEthWallet2, address newEthWallet3) external onlyOwner {
    _ethTaxWallet1 = payable(newEthWallet1);
    _ethTaxWallet2 = payable(newEthWallet2);
    _ethTaxWallet3 = payable(newEthWallet3);
    _noFees[newEthWallet1] = true;
    _noFees[newEthWallet2] = true;
    _noFees[newEthWallet3] = true;
  }

  function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner {
    uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1;
    if (newTxAmt > _totalSupply) { newTxAmt = _totalSupply; }
    require(newTxAmt >= maxTxAmount, "tx limit too low");
    maxTxAmount = newTxAmt;
    uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1;
    if (newWalletAmt > _totalSupply) { newWalletAmt = _totalSupply; }
    require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
    maxWalletAmount = newWalletAmt;
  }

  function setTaxSwapLimits(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
    _taxSwapMin = _totalSupply * minValue / minDivider;
    _taxSwapMax = _totalSupply * maxValue / maxDivider;
    require(_taxSwapMax>=_taxSwapMin, "MinMax error");
    require(_taxSwapMax>_totalSupply / 10000, "Upper threshold too low");
  }


  function _transferTaxTokens(address recipient, uint256 amount) private {
    if ( amount > 0 ) {
      _balances[address(this)] = _balances[address(this)] - amount;
      _balances[recipient] = _balances[recipient] + amount;
      emit Transfer(address(this), recipient, amount);
    }
  }

  function _swapTaxAndLiquify() private lockTaxSwap {
    uint256 _taxTokensAvailable = balanceOf(address(this));

    if ( _taxTokensAvailable >= _taxSwapMin && tradingOpen ) {
      if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
      uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / _totalTaxShares / 2;
      uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
      uint256 _ethPreSwap = address(this).balance;
      _swapTaxTokensForEth(_tokensToSwap);
      uint256 _ethSwapped = address(this).balance - _ethPreSwap;
      if ( _autoLPShares > 0 ) {
        uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / _totalTaxShares ;
        _approveRouter(_tokensForLP);
        _addLiquidity(_tokensForLP, _ethWeiAmount, false);
      }
      uint256 _contractETHBalance = address(this).balance;
      if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
    }
  }

  function _swapTaxTokensForEth(uint256 _tokenAmount) private {
    _approveRouter(_tokenAmount);
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = _uniswapV2Router.WETH();
    _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
  }

  function _distributeTaxEth(uint256 _amount) private {
    uint16 _taxShareTotal = _ethTaxShares1 + _ethTaxShares2 + _ethTaxShares3;
    if ( _ethTaxShares1 > 0 ) { _ethTaxWallet1.transfer(_amount * _ethTaxShares1 / _taxShareTotal); }
    if ( _ethTaxShares2 > 0 ) { _ethTaxWallet2.transfer(_amount * _ethTaxShares2 / _taxShareTotal); }
    if ( _ethTaxShares3 > 0 ) { _ethTaxWallet3.transfer(_amount * _ethTaxShares3 / _taxShareTotal); }
  }

  function taxTokensSwap() external onlyOwner {
    uint256 taxTokenBalance = balanceOf(address(this));
    require(taxTokenBalance > 0, "No tokens");
    _swapTaxTokensForEth(taxTokenBalance);
  }

  function taxEthSend() external onlyOwner { 
    _distributeTaxEth(address(this).balance); 
  }

  function burnTokens(uint256 amount) external {
    uint256 _tokensAvailable = balanceOf(msg.sender);
    require(amount <= _tokensAvailable, "Token balance too low");
    _balances[msg.sender] -= amount;
    _balances[address(0)] += amount;
    emit Transfer(msg.sender,address(0), amount);
    emit TokensBurned(msg.sender, amount);
  }

  function airdrop(address[] calldata addresses, uint256[] calldata tokenAmounts) external onlyOwner {
    require(addresses.length <= 200,"Wallet count over 200 (gas risk)");
    require(addresses.length == tokenAmounts.length,"Address and token amount list mismach");

    uint256 airdropTotal = 0;
    for(uint i=0; i < addresses.length; i++){
      airdropTotal += (tokenAmounts[i] * 10**_decimals);
    }
    require(_balances[msg.sender] >= airdropTotal, "Token balance lower than airdrop total");

    for(uint i=0; i < addresses.length; i++){
      _balances[msg.sender] -= (tokenAmounts[i] * 10**_decimals);
      _balances[addresses[i]] += (tokenAmounts[i] * 10**_decimals);
      emit Transfer(msg.sender, addresses[i], (tokenAmounts[i] * 10**_decimals) );       
    }
    emit TokensAirdropped(addresses.length, airdropTotal);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isLiqPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableBuySupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"ignoreFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"ignoreLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"safeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bool","name":"isLP","type":"bool"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesEthWallet3","type":"uint16"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newEthWallet1","type":"address"},{"internalType":"address","name":"newEthWallet2","type":"address"},{"internalType":"address","name":"newEthWallet3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperCount","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxEthSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxRateBuy","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRateSell","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxTokensSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600b60146101000a81548161ffff021916908361ffff160217905550600c600b60166101000a81548160ff021916908360ff16021790555060c8600b60196101000a81548161ffff021916908361ffff1602179055506101f4600b601b6101000a81548161ffff021916908361ffff16021790555061012c600b601d6101000a81548161ffff021916908361ffff16021790555060c8600c60006101000a81548161ffff021916908361ffff160217905550600c60009054906101000a900461ffff16600b601d9054906101000a900461ffff16600b601b9054906101000a900461ffff16600b60199054906101000a900461ffff16620001089190620009f8565b620001149190620009f8565b620001209190620009f8565b600c60026101000a81548161ffff021916908361ffff1602179055506000600d55600f600e60006101000a81548160ff021916908360ff160217905550642794ca2400600f5573725a444188bbab0c20b09465cdb718167c478f16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507354d9fa22c13851947e0cfc87e2c03be65c2cc1db601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507354ed0003bd7eded5e636e0e2800bc0bf34536f58601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055503480156200028d57600080fd5b506040516200676c3803806200676c8339818101604052810190620002b3919062000a7d565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600560006101000a81548160ff0219169083151502179055506009600a62000320919062000c2f565b6305f5e10062000331919062000c80565b6006819055506009600a62000347919062000c2f565b6305f5e10062000358919062000c80565b600781905550612710600a6009600a62000373919062000c2f565b6305f5e10062000384919062000c80565b62000390919062000c80565b6200039c919062000d10565b60088190555061271060326009600a620003b7919062000c2f565b6305f5e100620003c8919062000c80565b620003d4919062000c80565b620003e0919062000d10565b600981905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008263ffffffff161162000971576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009689062000da9565b60405180910390fd5b81600060146101000a81548163ffffffff021916908363ffffffff16021790555080600060186101000a81548163ffffffff021916908363ffffffff160217905550505062000dcb565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a0582620009bb565b915062000a1283620009bb565b92508261ffff0382111562000a2c5762000a2b620009c9565b5b828201905092915050565b600080fd5b600063ffffffff82169050919050565b62000a578162000a3c565b811462000a6357600080fd5b50565b60008151905062000a778162000a4c565b92915050565b6000806040838503121562000a975762000a9662000a37565b5b600062000aa78582860162000a66565b925050602062000aba8582860162000a66565b9150509250929050565b60008160011c9050919050565b6000808291508390505b600185111562000b235780860481111562000afb5762000afa620009c9565b5b600185161562000b0b5780820291505b808102905062000b1b8562000ac4565b945062000adb565b94509492505050565b60008262000b3e576001905062000c11565b8162000b4e576000905062000c11565b816001811462000b67576002811462000b725762000ba8565b600191505062000c11565b60ff84111562000b875762000b86620009c9565b5b8360020a91508482111562000ba15762000ba0620009c9565b5b5062000c11565b5060208310610133831016604e8410600b841016171562000be25782820a90508381111562000bdc5762000bdb620009c9565b5b62000c11565b62000bf1848484600162000ad1565b9250905081840481111562000c0b5762000c0a620009c9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c3c8262000c18565b915062000c498362000c22565b925062000c787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b2c565b905092915050565b600062000c8d8262000c18565b915062000c9a8362000c18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cd65762000cd5620009c9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d1d8262000c18565b915062000d2a8362000c18565b92508262000d3d5762000d3c62000ce1565b5b828204905092915050565b600082825260208201905092915050565b7f496e6974206f7574206f662072616e6765000000000000000000000000000000600082015250565b600062000d9160118362000d48565b915062000d9e8262000d59565b602082019050919050565b6000602082019050818103600083015262000dc48162000d82565b9050919050565b6159918062000ddb6000396000f3fe6080604052600436106101fd5760003560e01c80639c5fd0481161010d578063d457a4a2116100a0578063ed7b6bb51161006f578063ed7b6bb514610706578063f2fde38b1461071d578063f9fdeae314610746578063fd9650241461076f578063ffb54a991461079857610204565b8063d457a4a21461064c578063dca2a8b614610689578063dd62ed3e146106a0578063e4dbc45b146106dd57610204565b8063b1421803116100dc578063b1421803146105a4578063b4c48026146105cd578063c29c669a146105f8578063cc18e05a1461062157610204565b80639c5fd048146104ea5780639fda058114610513578063a9059cbb1461053c578063aa4bde281461057957610204565b8063672434821161019057806371ebe1c31161015f57806371ebe1c31461041557806380781cf91461043e578063893d20e8146104695780638c0b5e221461049457806395d89b41146104bf57610204565b8063672434821461035d5780636969c1a4146103865780636d1b229d146103af57806370a08231146103d857610204565b80631cbbe3e4116101cc5780631cbbe3e4146102b357806323b872dd146102ca578063313ce56714610307578063548c34a31461033257610204565b806306fdde0314610209578063095ea7b31461023457806318160ddd146102715780631c939ee91461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107c3565b60405161022b9190614076565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190614136565b610800565b6040516102689190614191565b60405180910390f35b34801561027d57600080fd5b506102866108f2565b60405161029391906141bb565b60405180910390f35b3480156102a857600080fd5b506102b1610916565b005b3480156102bf57600080fd5b506102c86109af565b005b3480156102d657600080fd5b506102f160048036038101906102ec91906141d6565b610a98565b6040516102fe9190614191565b60405180910390f35b34801561031357600080fd5b5061031c610ca1565b6040516103299190614245565b60405180910390f35b34801561033e57600080fd5b50610347610caa565b604051610354919061427d565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f9190614353565b610cbe565b005b34801561039257600080fd5b506103ad60048036038101906103a891906143d4565b611116565b005b3480156103bb57600080fd5b506103d660048036038101906103d191906143d4565b611551565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190614401565b611705565b60405161040c91906141bb565b60405180910390f35b34801561042157600080fd5b5061043c6004803603810190610437919061445a565b61174e565b005b34801561044a57600080fd5b50610453611837565b6040516104609190614245565b60405180910390f35b34801561047557600080fd5b5061047e61184a565b60405161048b91906144a9565b60405180910390f35b3480156104a057600080fd5b506104a9611873565b6040516104b691906141bb565b60405180910390f35b3480156104cb57600080fd5b506104d4611879565b6040516104e19190614076565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c919061445a565b6118b6565b005b34801561051f57600080fd5b5061053a600480360381019061053591906144c4565b61199f565b005b34801561054857600080fd5b50610563600480360381019061055e9190614136565b611bfd565b6040516105709190614191565b60405180910390f35b34801561058557600080fd5b5061058e611c59565b60405161059b91906141bb565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190614543565b611c5f565b005b3480156105d957600080fd5b506105e2611ea5565b6040516105ef91906141bb565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a919061445a565b611eda565b005b34801561062d57600080fd5b506106366121d2565b6040516106439190614245565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190614401565b6121e5565b6040516106809190614191565b60405180910390f35b34801561069557600080fd5b5061069e612205565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614583565b6122ef565b6040516106d491906141bb565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906145ff565b612376565b005b34801561071257600080fd5b5061071b612548565b005b34801561072957600080fd5b50610744600480360381019061073f91906146a4565b61262a565b005b34801561075257600080fd5b5061076d600480360381019061076891906146d1565b612732565b005b34801561077b57600080fd5b5061079660048036038101906107919190614764565b612878565b005b3480156107a457600080fd5b506107ad6129b9565b6040516107ba9190614191565b60405180910390f35b60606040518060400160405280600481526020017f4c65766900000000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e091906141bb565b60405180910390a36001905092915050565b60006009600a6109029190614906565b6305f5e1006109119190614951565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90614a1d565b60405180910390fd5b6109ad476129cc565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3490614a1d565b60405180910390fd5b600560009054906101000a900460ff16610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8390614a89565b60405180910390fd5b610a966000612c3a565b565b6000610aa2612c6a565b610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890614af5565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0c9190614b15565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c98848484612cf0565b90509392505050565b60006009905090565b600b60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390614a1d565b60405180910390fd5b60c8848490501115610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90614b95565b60405180910390fd5b818190508484905014610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290614c27565b60405180910390fd5b6000805b85859050811015610e3c576009600a610df89190614906565b848483818110610e0b57610e0a614c47565b5b90506020020135610e1c9190614951565b82610e279190614c76565b91508080610e3490614ccc565b915050610ddf565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690614d87565b60405180910390fd5b60005b858590508110156110d2576009600a610edb9190614906565b848483818110610eee57610eed614c47565b5b90506020020135610eff9190614951565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f4d9190614b15565b925050819055506009600a610f629190614906565b848483818110610f7557610f74614c47565b5b90506020020135610f869190614951565b60016000888885818110610f9d57610f9c614c47565b5b9050602002016020810190610fb29190614401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ffb9190614c76565b9250508190555085858281811061101557611014614c47565b5b905060200201602081019061102a9190614401565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6110869190614906565b87878681811061109957611098614c47565b5b905060200201356110aa9190614951565b6040516110b791906141bb565b60405180910390a380806110ca90614ccc565b915050610ec2565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051611107929190614da7565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90614a1d565b60405180910390fd5b600560009054906101000a900460ff16156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90614e1c565b60405180910390fd5b60008111611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e90614e88565b60405180910390fd5b61123f6132c4565b600047905081811015611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90614ef4565b60405180910390fd5b600061129230611705565b9050600081116112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90614f60565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190614f95565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190614f95565b6040518363ffffffff1660e01b8152600401611432929190614fc2565b6020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190614f95565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061153881613512565b611544818460006136fc565b61154c6137da565b505050565b600061155c33611705565b9050808211156115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890615037565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f09190614b15565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116469190614c76565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116ab91906141bb565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516116f991906141bb565b60405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390614a1d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60179054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4c45564900000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193b90614a1d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490614a1d565b60405180910390fd5b82601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000611c07612c6a565b611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d90614af5565b60405180910390fd5b611c51338484612cf0565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490614a1d565b60405180910390fd5b600060016103e88461ffff166009600a611d079190614906565b6305f5e100611d169190614951565b611d209190614951565b611d2a9190615086565b611d349190614c76565b90506009600a611d449190614906565b6305f5e100611d539190614951565b811115611d7a576009600a611d689190614906565b6305f5e100611d779190614951565b90505b600654811015611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690615103565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611de09190614906565b6305f5e100611def9190614951565b611df99190614951565b611e039190615086565b611e0d9190614c76565b90506009600a611e1d9190614906565b6305f5e100611e2c9190614951565b811115611e53576009600a611e419190614906565b6305f5e100611e509190614951565b90505b600754811015611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f9061516f565b60405180910390fd5b8060078190555050505050565b6000806000600d54118015611ec857506005600d54611ec49190614c76565b4310155b15611ed357600d5490505b8091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614a1d565b60405180910390fd5b801561205857600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff2906151db565b60405180910390fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506121ce565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90615247565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c906152b3565b60405180910390fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600b60189054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90614a1d565b60405180910390fd5b600061229e30611705565b9050600081116122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da9061531f565b60405180910390fd5b6122ec81613912565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb90614a1d565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6124209190614906565b6305f5e10061242f9190614951565b6124399190614951565b6124439190615086565b6008819055508063ffffffff168263ffffffff166009600a6124659190614906565b6305f5e1006124749190614951565b61247e9190614951565b6124889190615086565b60098190555060085460095410156124d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9061538b565b60405180910390fd5b6127106009600a6124e69190614906565b6305f5e1006124f59190614951565b6124ff9190615086565b60095411612542576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612539906153f7565b60405180910390fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614a1d565b60405180910390fd5b6000600b60176101000a81548160ff021916908360ff160217905550600b60169054906101000a900460ff16600261260e9190615417565b600b60186101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af90614a1d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161272791906154b1565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b790614a1d565b60405180910390fd5b83600b60196101000a81548161ffff021916908361ffff16021790555082600b601b6101000a81548161ffff021916908361ffff16021790555081600b601d6101000a81548161ffff021916908361ffff16021790555080600c60006101000a81548161ffff021916908361ffff1602179055508082848661284291906154cc565b61284c91906154cc565b61285691906154cc565b600c60026101000a81548161ffff021916908361ffff16021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd90614a1d565b60405180910390fd5b600b60169054906101000a900460ff1660ff168260ff16111580156129405750600b60169054906101000a900460ff1660ff168160ff1611155b61297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690615550565b60405180910390fd5b81600b60176101000a81548160ff021916908360ff16021790555080600b60186101000a81548160ff021916908360ff1602179055505050565b600560009054906101000a900460ff1681565b6000600c60009054906101000a900461ffff16600b601d9054906101000a900461ffff16600b601b9054906101000a900461ffff16612a0b91906154cc565b612a1591906154cc565b90506000600b601b9054906101000a900461ffff1661ffff161115612acc57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b601b9054906101000a900461ffff1661ffff1685612a959190614951565b612a9f9190615086565b9081150290604051600060405180830381858888f19350505050158015612aca573d6000803e3d6000fd5b505b6000600b601d9054906101000a900461ffff1661ffff161115612b8157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b601d9054906101000a900461ffff1661ffff1685612b4a9190614951565b612b549190615086565b9081150290604051600060405180830381858888f19350505050158015612b7f573d6000803e3d6000fd5b505b6000600c60009054906101000a900461ffff1661ffff161115612c3657601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c60009054906101000a900461ffff1661ffff1685612bff9190614951565b612c099190615086565b9081150290604051600060405180830381858888f19350505050158015612c34573d6000803e3d6000fd5b505b5050565b43600d541180612c4c57506000600d54145b15612c67578060ff1643612c609190614c76565b600d819055505b50565b60008060009050600560009054906101000a900460ff1615612c8f5760019050612ce9565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612ce857600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580612d5a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d90906155bc565b60405180910390fd5b6000612da6858585613b31565b905043600d541115612e7857600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff1685612def91906155dc565b73ffffffffffffffffffffffffffffffffffffffff161415612e1a57612e156001612c3a565b612e73565b6103e86103dc84612e2b9190614951565b612e359190615086565b9050600b601481819054906101000a900461ffff1680929190612e579061560d565b91906101000a81548161ffff021916908361ffff160217905550505b612f0b565b600e60009054906101000a900460ff1660ff16600d54612e989190614c76565b4311158015612ea65750483a115b15612f0a576000483a1115612f0857483a612ec19190614b15565b9050600f548110612f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efe90615684565b60405180910390fd5b5b505b5b601360149054906101000a900460ff16158015612f715750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f7f57612f7e613d13565b5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612fe757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561303f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561308e5761304e8484613e9d565b61308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906156f0565b60405180910390fd5b5b6000818461309c9190614b15565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99190614b15565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156131c45781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131809190614c76565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461320f9190614c76565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132af91906141bb565b60405180910390a36001925050509392505050565b600560009054906101000a900460ff1615613314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330b90614e1c565b60405180910390fd5b60006064601b6009600a6133289190614906565b6305f5e1006133379190614951565b6133419190614951565b61334b9190615086565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133ef91906141bb565b60405180910390a36000816009600a6134089190614906565b6305f5e1006134179190614951565b6134219190614b15565b905080600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161350691906141bb565b60405180910390a35050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156136f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516136f091906141bb565b60405180910390a35b50565b6000816137275760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161378e9695949392919061574b565b60606040518083038185885af11580156137ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137d191906157c1565b50505050505050565b600a436137e79190614c76565b600d819055506009600a6137fb9190614906565b6103e86009600a61380c9190614906565b6305f5e10061381b9190614951565b60056138279190614951565b6138319190615086565b61383b9190614c76565b6006819055506009600a61384f9190614906565b6103e86009600a6138609190614906565b6305f5e10061386f9190614951565b600a61387b9190614951565b6138859190615086565b61388f9190614c76565b600781905550600b60169054906101000a900460ff16600b60176101000a81548160ff021916908360ff160217905550600b60169054906101000a900460ff1660026138db9190615417565b600b60186101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b61391b81613512565b6000600267ffffffffffffffff81111561393857613937615814565b5b6040519080825280602002602001820160405280156139665781602001602082028036833780820191505090505b509050308160008151811061397e5761397d614c47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a499190614f95565b81600181518110613a5d57613a5c614c47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613afb959493929190615901565b600060405180830381600087803b158015613b1557600080fd5b505af1158015613b29573d6000803e3d6000fd5b505050505050565b600080600560009054906101000a900460ff161580613b995750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613bed5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613bfb5760009050613d08565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c7e576064600b60179054906101000a900460ff1660ff1684613c6d9190614951565b613c779190615086565b9050613d07565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613d01576064600b60189054906101000a900460ff1660ff1684613cf09190614951565b613cfa9190615086565b9050613d06565b600090505b5b5b809150509392505050565b6001601360146101000a81548160ff0219169083151502179055506000613d3930611705565b90506008548110158015613d595750600560009054906101000a900460ff165b15613e7f576009548110613d6d5760095490505b60006002600c60029054906101000a900461ffff1661ffff16600b60199054906101000a900461ffff1661ffff1684613da69190614951565b613db09190615086565b613dba9190615086565b905060008183613dca9190614b15565b90506000479050613dda82613912565b60008147613de89190614b15565b90506000600b60199054906101000a900461ffff1661ffff161115613e61576000600c60029054906101000a900461ffff1661ffff16600b60199054906101000a900461ffff1661ffff1683613e3e9190614951565b613e489190615086565b9050613e5385613512565b613e5f858260006136fc565b505b60004790506000811115613e7957613e78816129cc565b5b50505050505b506000601360146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff168015613f0a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613fd357600654831115613f225760009050613fd2565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fc7575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc59190614c76565b115b15613fd157600090505b5b5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614017578082015181840152602081019050613ffc565b83811115614026576000848401525b50505050565b6000601f19601f8301169050919050565b600061404882613fdd565b6140528185613fe8565b9350614062818560208601613ff9565b61406b8161402c565b840191505092915050565b60006020820190508181036000830152614090818461403d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006140cd826140a2565b9050919050565b6140dd816140c2565b81146140e857600080fd5b50565b6000813590506140fa816140d4565b92915050565b6000819050919050565b61411381614100565b811461411e57600080fd5b50565b6000813590506141308161410a565b92915050565b6000806040838503121561414d5761414c614098565b5b600061415b858286016140eb565b925050602061416c85828601614121565b9150509250929050565b60008115159050919050565b61418b81614176565b82525050565b60006020820190506141a66000830184614182565b92915050565b6141b581614100565b82525050565b60006020820190506141d060008301846141ac565b92915050565b6000806000606084860312156141ef576141ee614098565b5b60006141fd868287016140eb565b935050602061420e868287016140eb565b925050604061421f86828701614121565b9150509250925092565b600060ff82169050919050565b61423f81614229565b82525050565b600060208201905061425a6000830184614236565b92915050565b600061ffff82169050919050565b61427781614260565b82525050565b6000602082019050614292600083018461426e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126142bd576142bc614298565b5b8235905067ffffffffffffffff8111156142da576142d961429d565b5b6020830191508360208202830111156142f6576142f56142a2565b5b9250929050565b60008083601f84011261431357614312614298565b5b8235905067ffffffffffffffff8111156143305761432f61429d565b5b60208301915083602082028301111561434c5761434b6142a2565b5b9250929050565b6000806000806040858703121561436d5761436c614098565b5b600085013567ffffffffffffffff81111561438b5761438a61409d565b5b614397878288016142a7565b9450945050602085013567ffffffffffffffff8111156143ba576143b961409d565b5b6143c6878288016142fd565b925092505092959194509250565b6000602082840312156143ea576143e9614098565b5b60006143f884828501614121565b91505092915050565b60006020828403121561441757614416614098565b5b6000614425848285016140eb565b91505092915050565b61443781614176565b811461444257600080fd5b50565b6000813590506144548161442e565b92915050565b6000806040838503121561447157614470614098565b5b600061447f858286016140eb565b925050602061449085828601614445565b9150509250929050565b6144a3816140c2565b82525050565b60006020820190506144be600083018461449a565b92915050565b6000806000606084860312156144dd576144dc614098565b5b60006144eb868287016140eb565b93505060206144fc868287016140eb565b925050604061450d868287016140eb565b9150509250925092565b61452081614260565b811461452b57600080fd5b50565b60008135905061453d81614517565b92915050565b6000806040838503121561455a57614559614098565b5b60006145688582860161452e565b92505060206145798582860161452e565b9150509250929050565b6000806040838503121561459a57614599614098565b5b60006145a8858286016140eb565b92505060206145b9858286016140eb565b9150509250929050565b600063ffffffff82169050919050565b6145dc816145c3565b81146145e757600080fd5b50565b6000813590506145f9816145d3565b92915050565b6000806000806080858703121561461957614618614098565b5b6000614627878288016145ea565b9450506020614638878288016145ea565b9350506040614649878288016145ea565b925050606061465a878288016145ea565b91505092959194509250565b6000614671826140a2565b9050919050565b61468181614666565b811461468c57600080fd5b50565b60008135905061469e81614678565b92915050565b6000602082840312156146ba576146b9614098565b5b60006146c88482850161468f565b91505092915050565b600080600080608085870312156146eb576146ea614098565b5b60006146f98782880161452e565b945050602061470a8782880161452e565b935050604061471b8782880161452e565b925050606061472c8782880161452e565b91505092959194509250565b61474181614229565b811461474c57600080fd5b50565b60008135905061475e81614738565b92915050565b6000806040838503121561477b5761477a614098565b5b60006147898582860161474f565b925050602061479a8582860161474f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561482a57808604811115614806576148056147a4565b5b60018516156148155780820291505b8081029050614823856147d3565b94506147ea565b94509492505050565b60008261484357600190506148ff565b8161485157600090506148ff565b81600181146148675760028114614871576148a0565b60019150506148ff565b60ff841115614883576148826147a4565b5b8360020a91508482111561489a576148996147a4565b5b506148ff565b5060208310610133831016604e8410600b84101617156148d55782820a9050838111156148d0576148cf6147a4565b5b6148ff565b6148e284848460016147e0565b925090508184048111156148f9576148f86147a4565b5b81810290505b9392505050565b600061491182614100565b915061491c83614229565b92506149497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614833565b905092915050565b600061495c82614100565b915061496783614100565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156149a05761499f6147a4565b5b828202905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614a07602a83613fe8565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614a73601083613fe8565b9150614a7e82614a3d565b602082019050919050565b60006020820190508181036000830152614aa281614a66565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614adf601083613fe8565b9150614aea82614aa9565b602082019050919050565b60006020820190508181036000830152614b0e81614ad2565b9050919050565b6000614b2082614100565b9150614b2b83614100565b925082821015614b3e57614b3d6147a4565b5b828203905092915050565b7f57616c6c657420636f756e74206f766572203230302028676173207269736b29600082015250565b6000614b7f602083613fe8565b9150614b8a82614b49565b602082019050919050565b60006020820190508181036000830152614bae81614b72565b9050919050565b7f4164647265737320616e6420746f6b656e20616d6f756e74206c697374206d6960008201527f736d616368000000000000000000000000000000000000000000000000000000602082015250565b6000614c11602583613fe8565b9150614c1c82614bb5565b604082019050919050565b60006020820190508181036000830152614c4081614c04565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614c8182614100565b9150614c8c83614100565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614cc157614cc06147a4565b5b828201905092915050565b6000614cd782614100565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614d0a57614d096147a4565b5b600182019050919050565b7f546f6b656e2062616c616e6365206c6f776572207468616e2061697264726f7060008201527f20746f74616c0000000000000000000000000000000000000000000000000000602082015250565b6000614d71602683613fe8565b9150614d7c82614d15565b604082019050919050565b60006020820190508181036000830152614da081614d64565b9050919050565b6000604082019050614dbc60008301856141ac565b614dc960208301846141ac565b9392505050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614e06601483613fe8565b9150614e1182614dd0565b602082019050919050565b60006020820190508181036000830152614e3581614df9565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614e72600f83613fe8565b9150614e7d82614e3c565b602082019050919050565b60006020820190508181036000830152614ea181614e65565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614ede600e83613fe8565b9150614ee982614ea8565b602082019050919050565b60006020820190508181036000830152614f0d81614ed1565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614f4a600983613fe8565b9150614f5582614f14565b602082019050919050565b60006020820190508181036000830152614f7981614f3d565b9050919050565b600081519050614f8f816140d4565b92915050565b600060208284031215614fab57614faa614098565b5b6000614fb984828501614f80565b91505092915050565b6000604082019050614fd7600083018561449a565b614fe4602083018461449a565b9392505050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000615021601583613fe8565b915061502c82614feb565b602082019050919050565b6000602082019050818103600083015261505081615014565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061509182614100565b915061509c83614100565b9250826150ac576150ab615057565b5b828204905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006150ed601083613fe8565b91506150f8826150b7565b602082019050919050565b6000602082019050818103600083015261511c816150e0565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000615159601483613fe8565b915061516482615123565b602082019050919050565b600060208201905081810360008301526151888161514c565b9050919050565b7f4c5020616c726561647920736574000000000000000000000000000000000000600082015250565b60006151c5600e83613fe8565b91506151d08261518f565b602082019050919050565b600060208201905081810360008301526151f4816151b8565b9050919050565b7f4e6f7420616e204c500000000000000000000000000000000000000000000000600082015250565b6000615231600983613fe8565b915061523c826151fb565b602082019050919050565b6000602082019050818103600083015261526081615224565b9050919050565b7f43616e6e6f7420756e736574207072696d617279204c50000000000000000000600082015250565b600061529d601783613fe8565b91506152a882615267565b602082019050919050565b600060208201905081810360008301526152cc81615290565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000615309600983613fe8565b9150615314826152d3565b602082019050919050565b60006020820190508181036000830152615338816152fc565b9050919050565b7f4d696e4d6178206572726f720000000000000000000000000000000000000000600082015250565b6000615375600c83613fe8565b91506153808261533f565b602082019050919050565b600060208201905081810360008301526153a481615368565b9050919050565b7f5570706572207468726573686f6c6420746f6f206c6f77000000000000000000600082015250565b60006153e1601783613fe8565b91506153ec826153ab565b602082019050919050565b60006020820190508181036000830152615410816153d4565b9050919050565b600061542282614229565b915061542d83614229565b92508160ff0483118215151615615447576154466147a4565b5b828202905092915050565b6000819050919050565b600061547761547261546d846140a2565b615452565b6140a2565b9050919050565b60006154898261545c565b9050919050565b600061549b8261547e565b9050919050565b6154ab81615490565b82525050565b60006020820190506154c660008301846154a2565b92915050565b60006154d782614260565b91506154e283614260565b92508261ffff038211156154f9576154f86147a4565b5b828201905092915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b600061553a600c83613fe8565b915061554582615504565b602082019050919050565b600060208201905081810360008301526155698161552d565b9050919050565b7f5a65726f2077616c6c65742063616e6e6f74207472616e736665722e00000000600082015250565b60006155a6601c83613fe8565b91506155b182615570565b602082019050919050565b600060208201905081810360008301526155d581615599565b9050919050565b60006155e7826140a2565b91506155f2836140a2565b92508261560257615601615057565b5b828206905092915050565b600061561882614260565b915061ffff82141561562d5761562c6147a4565b5b600182019050919050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b600061566e601483613fe8565b915061567982615638565b602082019050919050565b6000602082019050818103600083015261569d81615661565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006156da601183613fe8565b91506156e5826156a4565b602082019050919050565b60006020820190508181036000830152615709816156cd565b9050919050565b6000819050919050565b600061573561573061572b84615710565b615452565b614100565b9050919050565b6157458161571a565b82525050565b600060c082019050615760600083018961449a565b61576d60208301886141ac565b61577a604083018761573c565b615787606083018661573c565b615794608083018561449a565b6157a160a08301846141ac565b979650505050505050565b6000815190506157bb8161410a565b92915050565b6000806000606084860312156157da576157d9614098565b5b60006157e8868287016157ac565b93505060206157f9868287016157ac565b925050604061580a868287016157ac565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615878816140c2565b82525050565b600061588a838361586f565b60208301905092915050565b6000602082019050919050565b60006158ae82615843565b6158b8818561584e565b93506158c38361585f565b8060005b838110156158f45781516158db888261587e565b97506158e683615896565b9250506001810190506158c7565b5085935050505092915050565b600060a08201905061591660008301886141ac565b615923602083018761573c565b818103604083015261593581866158a3565b9050615944606083018561449a565b61595160808301846141ac565b969550505050505056fea2646970667358221220accb53bc38ee2e29e0af7405629f6beef82788bf782b9eb7a3ddb51a5caf1f4864736f6c634300080b00330000000000000000000000000000000000000000000000000000000019c7250a000000000000000000000000000000000000000000000000000000000b94f816

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80639c5fd0481161010d578063d457a4a2116100a0578063ed7b6bb51161006f578063ed7b6bb514610706578063f2fde38b1461071d578063f9fdeae314610746578063fd9650241461076f578063ffb54a991461079857610204565b8063d457a4a21461064c578063dca2a8b614610689578063dd62ed3e146106a0578063e4dbc45b146106dd57610204565b8063b1421803116100dc578063b1421803146105a4578063b4c48026146105cd578063c29c669a146105f8578063cc18e05a1461062157610204565b80639c5fd048146104ea5780639fda058114610513578063a9059cbb1461053c578063aa4bde281461057957610204565b8063672434821161019057806371ebe1c31161015f57806371ebe1c31461041557806380781cf91461043e578063893d20e8146104695780638c0b5e221461049457806395d89b41146104bf57610204565b8063672434821461035d5780636969c1a4146103865780636d1b229d146103af57806370a08231146103d857610204565b80631cbbe3e4116101cc5780631cbbe3e4146102b357806323b872dd146102ca578063313ce56714610307578063548c34a31461033257610204565b806306fdde0314610209578063095ea7b31461023457806318160ddd146102715780631c939ee91461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107c3565b60405161022b9190614076565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190614136565b610800565b6040516102689190614191565b60405180910390f35b34801561027d57600080fd5b506102866108f2565b60405161029391906141bb565b60405180910390f35b3480156102a857600080fd5b506102b1610916565b005b3480156102bf57600080fd5b506102c86109af565b005b3480156102d657600080fd5b506102f160048036038101906102ec91906141d6565b610a98565b6040516102fe9190614191565b60405180910390f35b34801561031357600080fd5b5061031c610ca1565b6040516103299190614245565b60405180910390f35b34801561033e57600080fd5b50610347610caa565b604051610354919061427d565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f9190614353565b610cbe565b005b34801561039257600080fd5b506103ad60048036038101906103a891906143d4565b611116565b005b3480156103bb57600080fd5b506103d660048036038101906103d191906143d4565b611551565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190614401565b611705565b60405161040c91906141bb565b60405180910390f35b34801561042157600080fd5b5061043c6004803603810190610437919061445a565b61174e565b005b34801561044a57600080fd5b50610453611837565b6040516104609190614245565b60405180910390f35b34801561047557600080fd5b5061047e61184a565b60405161048b91906144a9565b60405180910390f35b3480156104a057600080fd5b506104a9611873565b6040516104b691906141bb565b60405180910390f35b3480156104cb57600080fd5b506104d4611879565b6040516104e19190614076565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c919061445a565b6118b6565b005b34801561051f57600080fd5b5061053a600480360381019061053591906144c4565b61199f565b005b34801561054857600080fd5b50610563600480360381019061055e9190614136565b611bfd565b6040516105709190614191565b60405180910390f35b34801561058557600080fd5b5061058e611c59565b60405161059b91906141bb565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190614543565b611c5f565b005b3480156105d957600080fd5b506105e2611ea5565b6040516105ef91906141bb565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a919061445a565b611eda565b005b34801561062d57600080fd5b506106366121d2565b6040516106439190614245565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190614401565b6121e5565b6040516106809190614191565b60405180910390f35b34801561069557600080fd5b5061069e612205565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614583565b6122ef565b6040516106d491906141bb565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906145ff565b612376565b005b34801561071257600080fd5b5061071b612548565b005b34801561072957600080fd5b50610744600480360381019061073f91906146a4565b61262a565b005b34801561075257600080fd5b5061076d600480360381019061076891906146d1565b612732565b005b34801561077b57600080fd5b5061079660048036038101906107919190614764565b612878565b005b3480156107a457600080fd5b506107ad6129b9565b6040516107ba9190614191565b60405180910390f35b60606040518060400160405280600481526020017f4c65766900000000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e091906141bb565b60405180910390a36001905092915050565b60006009600a6109029190614906565b6305f5e1006109119190614951565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90614a1d565b60405180910390fd5b6109ad476129cc565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3490614a1d565b60405180910390fd5b600560009054906101000a900460ff16610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8390614a89565b60405180910390fd5b610a966000612c3a565b565b6000610aa2612c6a565b610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890614af5565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0c9190614b15565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c98848484612cf0565b90509392505050565b60006009905090565b600b60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390614a1d565b60405180910390fd5b60c8848490501115610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90614b95565b60405180910390fd5b818190508484905014610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290614c27565b60405180910390fd5b6000805b85859050811015610e3c576009600a610df89190614906565b848483818110610e0b57610e0a614c47565b5b90506020020135610e1c9190614951565b82610e279190614c76565b91508080610e3490614ccc565b915050610ddf565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690614d87565b60405180910390fd5b60005b858590508110156110d2576009600a610edb9190614906565b848483818110610eee57610eed614c47565b5b90506020020135610eff9190614951565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f4d9190614b15565b925050819055506009600a610f629190614906565b848483818110610f7557610f74614c47565b5b90506020020135610f869190614951565b60016000888885818110610f9d57610f9c614c47565b5b9050602002016020810190610fb29190614401565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ffb9190614c76565b9250508190555085858281811061101557611014614c47565b5b905060200201602081019061102a9190614401565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6110869190614906565b87878681811061109957611098614c47565b5b905060200201356110aa9190614951565b6040516110b791906141bb565b60405180910390a380806110ca90614ccc565b915050610ec2565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051611107929190614da7565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90614a1d565b60405180910390fd5b600560009054906101000a900460ff16156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90614e1c565b60405180910390fd5b60008111611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e90614e88565b60405180910390fd5b61123f6132c4565b600047905081811015611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90614ef4565b60405180910390fd5b600061129230611705565b9050600081116112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90614f60565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190614f95565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190614f95565b6040518363ffffffff1660e01b8152600401611432929190614fc2565b6020604051808303816000875af1158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190614f95565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061153881613512565b611544818460006136fc565b61154c6137da565b505050565b600061155c33611705565b9050808211156115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890615037565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f09190614b15565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116469190614c76565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116ab91906141bb565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516116f991906141bb565b60405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390614a1d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60179054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4c45564900000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193b90614a1d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490614a1d565b60405180910390fd5b82601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000611c07612c6a565b611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d90614af5565b60405180910390fd5b611c51338484612cf0565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490614a1d565b60405180910390fd5b600060016103e88461ffff166009600a611d079190614906565b6305f5e100611d169190614951565b611d209190614951565b611d2a9190615086565b611d349190614c76565b90506009600a611d449190614906565b6305f5e100611d539190614951565b811115611d7a576009600a611d689190614906565b6305f5e100611d779190614951565b90505b600654811015611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690615103565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611de09190614906565b6305f5e100611def9190614951565b611df99190614951565b611e039190615086565b611e0d9190614c76565b90506009600a611e1d9190614906565b6305f5e100611e2c9190614951565b811115611e53576009600a611e419190614906565b6305f5e100611e509190614951565b90505b600754811015611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f9061516f565b60405180910390fd5b8060078190555050505050565b6000806000600d54118015611ec857506005600d54611ec49190614c76565b4310155b15611ed357600d5490505b8091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614a1d565b60405180910390fd5b801561205857600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff2906151db565b60405180910390fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506121ce565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90615247565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c906152b3565b60405180910390fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600b60189054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90614a1d565b60405180910390fd5b600061229e30611705565b9050600081116122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da9061531f565b60405180910390fd5b6122ec81613912565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb90614a1d565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6124209190614906565b6305f5e10061242f9190614951565b6124399190614951565b6124439190615086565b6008819055508063ffffffff168263ffffffff166009600a6124659190614906565b6305f5e1006124749190614951565b61247e9190614951565b6124889190615086565b60098190555060085460095410156124d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9061538b565b60405180910390fd5b6127106009600a6124e69190614906565b6305f5e1006124f59190614951565b6124ff9190615086565b60095411612542576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612539906153f7565b60405180910390fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614a1d565b60405180910390fd5b6000600b60176101000a81548160ff021916908360ff160217905550600b60169054906101000a900460ff16600261260e9190615417565b600b60186101000a81548160ff021916908360ff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af90614a1d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161272791906154b1565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b790614a1d565b60405180910390fd5b83600b60196101000a81548161ffff021916908361ffff16021790555082600b601b6101000a81548161ffff021916908361ffff16021790555081600b601d6101000a81548161ffff021916908361ffff16021790555080600c60006101000a81548161ffff021916908361ffff1602179055508082848661284291906154cc565b61284c91906154cc565b61285691906154cc565b600c60026101000a81548161ffff021916908361ffff16021790555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd90614a1d565b60405180910390fd5b600b60169054906101000a900460ff1660ff168260ff16111580156129405750600b60169054906101000a900460ff1660ff168160ff1611155b61297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690615550565b60405180910390fd5b81600b60176101000a81548160ff021916908360ff16021790555080600b60186101000a81548160ff021916908360ff1602179055505050565b600560009054906101000a900460ff1681565b6000600c60009054906101000a900461ffff16600b601d9054906101000a900461ffff16600b601b9054906101000a900461ffff16612a0b91906154cc565b612a1591906154cc565b90506000600b601b9054906101000a900461ffff1661ffff161115612acc57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b601b9054906101000a900461ffff1661ffff1685612a959190614951565b612a9f9190615086565b9081150290604051600060405180830381858888f19350505050158015612aca573d6000803e3d6000fd5b505b6000600b601d9054906101000a900461ffff1661ffff161115612b8157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b601d9054906101000a900461ffff1661ffff1685612b4a9190614951565b612b549190615086565b9081150290604051600060405180830381858888f19350505050158015612b7f573d6000803e3d6000fd5b505b6000600c60009054906101000a900461ffff1661ffff161115612c3657601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c60009054906101000a900461ffff1661ffff1685612bff9190614951565b612c099190615086565b9081150290604051600060405180830381858888f19350505050158015612c34573d6000803e3d6000fd5b505b5050565b43600d541180612c4c57506000600d54145b15612c67578060ff1643612c609190614c76565b600d819055505b50565b60008060009050600560009054906101000a900460ff1615612c8f5760019050612ce9565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612ce857600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580612d5a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d90906155bc565b60405180910390fd5b6000612da6858585613b31565b905043600d541115612e7857600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff1685612def91906155dc565b73ffffffffffffffffffffffffffffffffffffffff161415612e1a57612e156001612c3a565b612e73565b6103e86103dc84612e2b9190614951565b612e359190615086565b9050600b601481819054906101000a900461ffff1680929190612e579061560d565b91906101000a81548161ffff021916908361ffff160217905550505b612f0b565b600e60009054906101000a900460ff1660ff16600d54612e989190614c76565b4311158015612ea65750483a115b15612f0a576000483a1115612f0857483a612ec19190614b15565b9050600f548110612f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efe90615684565b60405180910390fd5b5b505b5b601360149054906101000a900460ff16158015612f715750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f7f57612f7e613d13565b5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612fe757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561303f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561308e5761304e8484613e9d565b61308d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613084906156f0565b60405180910390fd5b5b6000818461309c9190614b15565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99190614b15565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156131c45781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131809190614c76565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461320f9190614c76565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132af91906141bb565b60405180910390a36001925050509392505050565b600560009054906101000a900460ff1615613314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330b90614e1c565b60405180910390fd5b60006064601b6009600a6133289190614906565b6305f5e1006133379190614951565b6133419190614951565b61334b9190615086565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133ef91906141bb565b60405180910390a36000816009600a6134089190614906565b6305f5e1006134179190614951565b6134219190614b15565b905080600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161350691906141bb565b60405180910390a35050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156136f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516136f091906141bb565b60405180910390a35b50565b6000816137275760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161378e9695949392919061574b565b60606040518083038185885af11580156137ac573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137d191906157c1565b50505050505050565b600a436137e79190614c76565b600d819055506009600a6137fb9190614906565b6103e86009600a61380c9190614906565b6305f5e10061381b9190614951565b60056138279190614951565b6138319190615086565b61383b9190614c76565b6006819055506009600a61384f9190614906565b6103e86009600a6138609190614906565b6305f5e10061386f9190614951565b600a61387b9190614951565b6138859190615086565b61388f9190614c76565b600781905550600b60169054906101000a900460ff16600b60176101000a81548160ff021916908360ff160217905550600b60169054906101000a900460ff1660026138db9190615417565b600b60186101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b61391b81613512565b6000600267ffffffffffffffff81111561393857613937615814565b5b6040519080825280602002602001820160405280156139665781602001602082028036833780820191505090505b509050308160008151811061397e5761397d614c47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a499190614f95565b81600181518110613a5d57613a5c614c47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613afb959493929190615901565b600060405180830381600087803b158015613b1557600080fd5b505af1158015613b29573d6000803e3d6000fd5b505050505050565b600080600560009054906101000a900460ff161580613b995750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613bed5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613bfb5760009050613d08565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c7e576064600b60179054906101000a900460ff1660ff1684613c6d9190614951565b613c779190615086565b9050613d07565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613d01576064600b60189054906101000a900460ff1660ff1684613cf09190614951565b613cfa9190615086565b9050613d06565b600090505b5b5b809150509392505050565b6001601360146101000a81548160ff0219169083151502179055506000613d3930611705565b90506008548110158015613d595750600560009054906101000a900460ff165b15613e7f576009548110613d6d5760095490505b60006002600c60029054906101000a900461ffff1661ffff16600b60199054906101000a900461ffff1661ffff1684613da69190614951565b613db09190615086565b613dba9190615086565b905060008183613dca9190614b15565b90506000479050613dda82613912565b60008147613de89190614b15565b90506000600b60199054906101000a900461ffff1661ffff161115613e61576000600c60029054906101000a900461ffff1661ffff16600b60199054906101000a900461ffff1661ffff1683613e3e9190614951565b613e489190615086565b9050613e5385613512565b613e5f858260006136fc565b505b60004790506000811115613e7957613e78816129cc565b5b50505050505b506000601360146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff168015613f0a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613fd357600654831115613f225760009050613fd2565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fc7575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc59190614c76565b115b15613fd157600090505b5b5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614017578082015181840152602081019050613ffc565b83811115614026576000848401525b50505050565b6000601f19601f8301169050919050565b600061404882613fdd565b6140528185613fe8565b9350614062818560208601613ff9565b61406b8161402c565b840191505092915050565b60006020820190508181036000830152614090818461403d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006140cd826140a2565b9050919050565b6140dd816140c2565b81146140e857600080fd5b50565b6000813590506140fa816140d4565b92915050565b6000819050919050565b61411381614100565b811461411e57600080fd5b50565b6000813590506141308161410a565b92915050565b6000806040838503121561414d5761414c614098565b5b600061415b858286016140eb565b925050602061416c85828601614121565b9150509250929050565b60008115159050919050565b61418b81614176565b82525050565b60006020820190506141a66000830184614182565b92915050565b6141b581614100565b82525050565b60006020820190506141d060008301846141ac565b92915050565b6000806000606084860312156141ef576141ee614098565b5b60006141fd868287016140eb565b935050602061420e868287016140eb565b925050604061421f86828701614121565b9150509250925092565b600060ff82169050919050565b61423f81614229565b82525050565b600060208201905061425a6000830184614236565b92915050565b600061ffff82169050919050565b61427781614260565b82525050565b6000602082019050614292600083018461426e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126142bd576142bc614298565b5b8235905067ffffffffffffffff8111156142da576142d961429d565b5b6020830191508360208202830111156142f6576142f56142a2565b5b9250929050565b60008083601f84011261431357614312614298565b5b8235905067ffffffffffffffff8111156143305761432f61429d565b5b60208301915083602082028301111561434c5761434b6142a2565b5b9250929050565b6000806000806040858703121561436d5761436c614098565b5b600085013567ffffffffffffffff81111561438b5761438a61409d565b5b614397878288016142a7565b9450945050602085013567ffffffffffffffff8111156143ba576143b961409d565b5b6143c6878288016142fd565b925092505092959194509250565b6000602082840312156143ea576143e9614098565b5b60006143f884828501614121565b91505092915050565b60006020828403121561441757614416614098565b5b6000614425848285016140eb565b91505092915050565b61443781614176565b811461444257600080fd5b50565b6000813590506144548161442e565b92915050565b6000806040838503121561447157614470614098565b5b600061447f858286016140eb565b925050602061449085828601614445565b9150509250929050565b6144a3816140c2565b82525050565b60006020820190506144be600083018461449a565b92915050565b6000806000606084860312156144dd576144dc614098565b5b60006144eb868287016140eb565b93505060206144fc868287016140eb565b925050604061450d868287016140eb565b9150509250925092565b61452081614260565b811461452b57600080fd5b50565b60008135905061453d81614517565b92915050565b6000806040838503121561455a57614559614098565b5b60006145688582860161452e565b92505060206145798582860161452e565b9150509250929050565b6000806040838503121561459a57614599614098565b5b60006145a8858286016140eb565b92505060206145b9858286016140eb565b9150509250929050565b600063ffffffff82169050919050565b6145dc816145c3565b81146145e757600080fd5b50565b6000813590506145f9816145d3565b92915050565b6000806000806080858703121561461957614618614098565b5b6000614627878288016145ea565b9450506020614638878288016145ea565b9350506040614649878288016145ea565b925050606061465a878288016145ea565b91505092959194509250565b6000614671826140a2565b9050919050565b61468181614666565b811461468c57600080fd5b50565b60008135905061469e81614678565b92915050565b6000602082840312156146ba576146b9614098565b5b60006146c88482850161468f565b91505092915050565b600080600080608085870312156146eb576146ea614098565b5b60006146f98782880161452e565b945050602061470a8782880161452e565b935050604061471b8782880161452e565b925050606061472c8782880161452e565b91505092959194509250565b61474181614229565b811461474c57600080fd5b50565b60008135905061475e81614738565b92915050565b6000806040838503121561477b5761477a614098565b5b60006147898582860161474f565b925050602061479a8582860161474f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561482a57808604811115614806576148056147a4565b5b60018516156148155780820291505b8081029050614823856147d3565b94506147ea565b94509492505050565b60008261484357600190506148ff565b8161485157600090506148ff565b81600181146148675760028114614871576148a0565b60019150506148ff565b60ff841115614883576148826147a4565b5b8360020a91508482111561489a576148996147a4565b5b506148ff565b5060208310610133831016604e8410600b84101617156148d55782820a9050838111156148d0576148cf6147a4565b5b6148ff565b6148e284848460016147e0565b925090508184048111156148f9576148f86147a4565b5b81810290505b9392505050565b600061491182614100565b915061491c83614229565b92506149497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614833565b905092915050565b600061495c82614100565b915061496783614100565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156149a05761499f6147a4565b5b828202905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614a07602a83613fe8565b9150614a12826149ab565b604082019050919050565b60006020820190508181036000830152614a36816149fa565b9050919050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614a73601083613fe8565b9150614a7e82614a3d565b602082019050919050565b60006020820190508181036000830152614aa281614a66565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614adf601083613fe8565b9150614aea82614aa9565b602082019050919050565b60006020820190508181036000830152614b0e81614ad2565b9050919050565b6000614b2082614100565b9150614b2b83614100565b925082821015614b3e57614b3d6147a4565b5b828203905092915050565b7f57616c6c657420636f756e74206f766572203230302028676173207269736b29600082015250565b6000614b7f602083613fe8565b9150614b8a82614b49565b602082019050919050565b60006020820190508181036000830152614bae81614b72565b9050919050565b7f4164647265737320616e6420746f6b656e20616d6f756e74206c697374206d6960008201527f736d616368000000000000000000000000000000000000000000000000000000602082015250565b6000614c11602583613fe8565b9150614c1c82614bb5565b604082019050919050565b60006020820190508181036000830152614c4081614c04565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614c8182614100565b9150614c8c83614100565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614cc157614cc06147a4565b5b828201905092915050565b6000614cd782614100565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614d0a57614d096147a4565b5b600182019050919050565b7f546f6b656e2062616c616e6365206c6f776572207468616e2061697264726f7060008201527f20746f74616c0000000000000000000000000000000000000000000000000000602082015250565b6000614d71602683613fe8565b9150614d7c82614d15565b604082019050919050565b60006020820190508181036000830152614da081614d64565b9050919050565b6000604082019050614dbc60008301856141ac565b614dc960208301846141ac565b9392505050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000614e06601483613fe8565b9150614e1182614dd0565b602082019050919050565b60006020820190508181036000830152614e3581614df9565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614e72600f83613fe8565b9150614e7d82614e3c565b602082019050919050565b60006020820190508181036000830152614ea181614e65565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000614ede600e83613fe8565b9150614ee982614ea8565b602082019050919050565b60006020820190508181036000830152614f0d81614ed1565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614f4a600983613fe8565b9150614f5582614f14565b602082019050919050565b60006020820190508181036000830152614f7981614f3d565b9050919050565b600081519050614f8f816140d4565b92915050565b600060208284031215614fab57614faa614098565b5b6000614fb984828501614f80565b91505092915050565b6000604082019050614fd7600083018561449a565b614fe4602083018461449a565b9392505050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000615021601583613fe8565b915061502c82614feb565b602082019050919050565b6000602082019050818103600083015261505081615014565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061509182614100565b915061509c83614100565b9250826150ac576150ab615057565b5b828204905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006150ed601083613fe8565b91506150f8826150b7565b602082019050919050565b6000602082019050818103600083015261511c816150e0565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000615159601483613fe8565b915061516482615123565b602082019050919050565b600060208201905081810360008301526151888161514c565b9050919050565b7f4c5020616c726561647920736574000000000000000000000000000000000000600082015250565b60006151c5600e83613fe8565b91506151d08261518f565b602082019050919050565b600060208201905081810360008301526151f4816151b8565b9050919050565b7f4e6f7420616e204c500000000000000000000000000000000000000000000000600082015250565b6000615231600983613fe8565b915061523c826151fb565b602082019050919050565b6000602082019050818103600083015261526081615224565b9050919050565b7f43616e6e6f7420756e736574207072696d617279204c50000000000000000000600082015250565b600061529d601783613fe8565b91506152a882615267565b602082019050919050565b600060208201905081810360008301526152cc81615290565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000615309600983613fe8565b9150615314826152d3565b602082019050919050565b60006020820190508181036000830152615338816152fc565b9050919050565b7f4d696e4d6178206572726f720000000000000000000000000000000000000000600082015250565b6000615375600c83613fe8565b91506153808261533f565b602082019050919050565b600060208201905081810360008301526153a481615368565b9050919050565b7f5570706572207468726573686f6c6420746f6f206c6f77000000000000000000600082015250565b60006153e1601783613fe8565b91506153ec826153ab565b602082019050919050565b60006020820190508181036000830152615410816153d4565b9050919050565b600061542282614229565b915061542d83614229565b92508160ff0483118215151615615447576154466147a4565b5b828202905092915050565b6000819050919050565b600061547761547261546d846140a2565b615452565b6140a2565b9050919050565b60006154898261545c565b9050919050565b600061549b8261547e565b9050919050565b6154ab81615490565b82525050565b60006020820190506154c660008301846154a2565b92915050565b60006154d782614260565b91506154e283614260565b92508261ffff038211156154f9576154f86147a4565b5b828201905092915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b600061553a600c83613fe8565b915061554582615504565b602082019050919050565b600060208201905081810360008301526155698161552d565b9050919050565b7f5a65726f2077616c6c65742063616e6e6f74207472616e736665722e00000000600082015250565b60006155a6601c83613fe8565b91506155b182615570565b602082019050919050565b600060208201905081810360008301526155d581615599565b9050919050565b60006155e7826140a2565b91506155f2836140a2565b92508261560257615601615057565b5b828206905092915050565b600061561882614260565b915061ffff82141561562d5761562c6147a4565b5b600182019050919050565b7f476173207072696365206f766572206c696d6974000000000000000000000000600082015250565b600061566e601483613fe8565b915061567982615638565b602082019050919050565b6000602082019050818103600083015261569d81615661565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006156da601183613fe8565b91506156e5826156a4565b602082019050919050565b60006020820190508181036000830152615709816156cd565b9050919050565b6000819050919050565b600061573561573061572b84615710565b615452565b614100565b9050919050565b6157458161571a565b82525050565b600060c082019050615760600083018961449a565b61576d60208301886141ac565b61577a604083018761573c565b615787606083018661573c565b615794608083018561449a565b6157a160a08301846141ac565b979650505050505050565b6000815190506157bb8161410a565b92915050565b6000806000606084860312156157da576157d9614098565b5b60006157e8868287016157ac565b93505060206157f9868287016157ac565b925050604061580a868287016157ac565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615878816140c2565b82525050565b600061588a838361586f565b60208301905092915050565b6000602082019050919050565b60006158ae82615843565b6158b8818561584e565b93506158c38361585f565b8060005b838110156158f45781516158db888261587e565b97506158e683615896565b9250506001810190506158c7565b5085935050505092915050565b600060a08201905061591660008301886141ac565b615923602083018761573c565b818103604083015261593581866158a3565b9050615944606083018561449a565b61595160808301846141ac565b969550505050505056fea2646970667358221220accb53bc38ee2e29e0af7405629f6beef82788bf782b9eb7a3ddb51a5caf1f4864736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000019c7250a000000000000000000000000000000000000000000000000000000000b94f816

-----Decoded View---------------
Arg [0] : smd (uint32): 432481546
Arg [1] : smr (uint32): 194312214

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000019c7250a
Arg [1] : 000000000000000000000000000000000000000000000000000000000b94f816


Deployed Bytecode Sourcemap

2053:15731:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5125:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5539:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4861:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16472:96;;;;;;;;;;;;;:::i;:::-;;9162:109;;;;;;;;;;;;;:::i;:::-;;5958:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4953:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16924:857;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6797:738;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16574:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5291:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12004:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2806:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5209:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2537:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5037:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11891:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12877:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5747:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2565:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13246:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8943:213;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8191:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2831:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2661:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16267:199;;;;;;;;;;;;;:::i;:::-;;5400:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13825:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12353:110;;;;;;;;;;;;;:::i;:::-;;1237:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12471:398;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12121:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2509:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:80;5173:13;5197:5;;;;;;;;;;;;;;;;;5190:12;;5125:80;:::o;5539:202::-;5614:4;5662:6;5627:11;:23;5639:10;5627:23;;;;;;;;;;;;;;;:32;5651:7;5627:32;;;;;;;;;;;;;;;:41;;;;5701:7;5680:37;;5689:10;5680:37;;;5710:6;5680:37;;;;;;:::i;:::-;;;;;;;;5731:4;5724:11;;5539:202;;;;:::o;4861:88::-;4916:7;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;4927:19;;4861:88;:::o;16472:96::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16521:40:::1;16539:21;16521:17;:40::i;:::-;16472:96::o:0;9162:109::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9215:11:::1;;;;;;;;;;;9207:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9253:12;9263:1;9253:9;:12::i;:::-;9162:109::o:0;5958:374::-;6058:4;6079:19;:17;:19::i;:::-;6071:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6164:17;6129:11;:19;6141:6;6129:19;;;;;;;;;;;;;;;:31;6149:10;6129:31;;;;;;;;;;;;;;;;:52;6126:147;;6259:6;6225:11;:19;6237:6;6225:19;;;;;;;;;;;;;;;:31;6245:10;6225:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6191:11;:19;6203:6;6191:19;;;;;;;;;;;;;;;:31;6211:10;6191:31;;;;;;;;;;;;;;;:74;;;;6126:147;6286:40;6300:6;6308:9;6319:6;6286:13;:40::i;:::-;6279:47;;5958:374;;;;;:::o;4953:80::-;5005:5;2187:1;5014:16;;4953:80;:::o;2745:29::-;;;;;;;;;;;;;:::o;16924:857::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17058:3:::1;17038:9;;:16;;:23;;17030:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17132:12;;:19;;17112:9;;:16;;:39;17104:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17201:20;17236:6:::0;17232:106:::1;17250:9;;:16;;17246:1;:20;17232:106;;;2187:1;17316:2;:13;;;;:::i;:::-;17298:12;;17311:1;17298:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;17281:49;;;;;:::i;:::-;;;17268:3;;;;;:::i;:::-;;;;17232:106;;;;17377:12;17352:9;:21;17362:10;17352:21;;;;;;;;;;;;;;;;:37;;17344:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17445:6;17441:275;17459:9;;:16;;17455:1;:20;17441:275;;;2187:1;17534:2;:13;;;;:::i;:::-;17516:12;;17529:1;17516:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;17490:9;:21;17500:10;17490:21;;;;;;;;;;;;;;;;:58;;;;;;;:::i;:::-;;;;;;;;2187:1;17603:2;:13;;;;:::i;:::-;17585:12;;17598:1;17585:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;17557:9;:23;17567:9;;17577:1;17567:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17557:23;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;17652:9;;17662:1;17652:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17631:70;;17640:10;17631:70;;;2187:1;17685:2;:13;;;;:::i;:::-;17667:12;;17680:1;17667:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;17631:70;;;;;;:::i;:::-;;;;;;;;17477:3;;;;;:::i;:::-;;;;17441:275;;;;17727:48;17744:9;;:16;;17762:12;17727:48;;;;;;;:::i;:::-;;;;;;;;17023:758;16924:857:::0;;;;:::o;6797:738::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6870:11:::1;;;;;;;;;;;6869:12;6861:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6936:1;6921:12;:16;6913:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6966:20;:18;:20::i;:::-;6995:27;7025:21;6995:51;;7084:12;7061:19;:35;;7053:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7122:29;7154:24;7172:4;7154:9;:24::i;:::-;7122:56;;7217:1;7193:21;:25;7185:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7275:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7257:56;;;7322:4;7329:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7257:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7239:15;;:114;;;;;;;;;;;;;;;;;;7392:4;7362:10;:27;7373:15;;;;;;;;;;;7362:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7405:37;7420:21;7405:14;:37::i;:::-;7449:57;7463:21;7486:12;7500:5;7449:13;:57::i;:::-;7515:14;:12;:14::i;:::-;6854:681;;6797:738:::0;:::o;16574:344::-;16626:24;16653:21;16663:10;16653:9;:21::i;:::-;16626:48;;16699:16;16689:6;:26;;16681:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16773:6;16748:9;:21;16758:10;16748:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16811:6;16786:9;:21;16804:1;16786:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16857:1;16829:39;;16838:10;16829:39;;;16861:6;16829:39;;;;;;:::i;:::-;;;;;;;;16893:10;16880:32;;;16905:6;16880:32;;;;;;:::i;:::-;;;;;;;;16619:299;16574:344;:::o;5291:105::-;5357:7;5375:9;:18;5385:7;5375:18;;;;;;;;;;;;;;;;5368:25;;5291:105;;;:::o;12004:111::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12103:6:::1;12081:9;:19;12092:6;12081:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12004:111:::0;;:::o;2806:23::-;;;;;;;;;;;;;:::o;5209:78::-;5261:7;5279:5;;;;;;;;;;;5272:12;;5209:78;:::o;2537:26::-;;;;:::o;5037:84::-;5087:13;5111:7;;;;;;;;;;;;;;;;;5104:14;;5037:84;:::o;11891:107::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11986:6:::1;11966:7;:17;11975:6;11966:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11891:107:::0;;:::o;12877:363::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13020:13:::1;12995:14;;:39;;;;;;;;;;;;;;;;;;13066:13;13041:14;;:39;;;;;;;;;;;;;;;;;;13112:13;13087:14;;:39;;;;;;;;;;;;;;;;;;13158:4;13133:7;:22;13141:13;13133:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13194:4;13169:7;:22;13177:13;13169:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13230:4;13205:7;:22;13213:13;13205:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12877:363:::0;;;:::o;5747:205::-;5827:4;5848:19;:17;:19::i;:::-;5840:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5902:44;5916:10;5928:9;5939:6;5902:13;:44::i;:::-;5895:51;;5747:205;;;;:::o;2565:30::-;;;;:::o;13246:573::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13348:16:::1;13407:1;13400:4;13382:15;13367:30;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13367:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;13348:60;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13419:8;:23;13415:57;;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13446:23;;13415:57;13498:11;;13486:8;:23;;13478:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13551:8;13537:11;:22;;;;13566:20;13633:1;13626:4;13604:19;13589:34;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13589:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;13566:68;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13645:12;:27;13641:65;;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13676:27;;13641:65;13736:15;;13720:12;:31;;13712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13801:12;13783:15;:30;;;;13341:478;;13246:573:::0;;:::o;8943:213::-;8987:7;9003:18;9047:1;9033:11;;:15;:50;;;;;9082:1;9068:11;;:15;;;;:::i;:::-;9052:12;:31;;9033:50;9028:99;;;9108:11;;9095:24;;9028:99;9140:10;9133:17;;;8943:213;:::o;8191:413::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8283:4:::1;8279:320;;;8307:10;:27;8318:15;8307:27;;;;;;;;;;;;;;;;;;;;;;;;;8306:28;8298:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8392:4;8362:10;:27;8373:15;8362:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8279:320;;;8427:10;:27;8438:15;8427:27;;;;;;;;;;;;;;;;;;;;;;;;;8419:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8504:15;;;;;;;;;;;8485:34;;:15;:34;;;;8477:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8586:5;8556:10;:27;8567:15;8556:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8279:320;8191:413:::0;;:::o;2831:24::-;;;;;;;;;;;;;:::o;2661:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;16267:199::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16318:23:::1;16344:24;16362:4;16344:9;:24::i;:::-;16318:50;;16401:1;16383:15;:19;16375:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:37;16444:15;16423:20;:37::i;:::-;16311:155;16267:199::o:0;5400:133::-;5484:7;5502:11;:19;5514:6;5502:19;;;;;;;;;;;;;;;:28;5522:7;5502:28;;;;;;;;;;;;;;;;5495:35;;5400:133;;;;:::o;13825:368::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13989:10:::1;13963:36;;13978:8;13963:23;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;13963:23;;;;:::i;:::-;:36;;;;:::i;:::-;13949:11;:50;;;;14046:10;14020:36;;14035:8;14020:23;;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;14020:23;;;;:::i;:::-;:36;;;;:::i;:::-;14006:11;:50;;;;14084:11;;14071;;:24;;14063:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14154:5;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;14139:20;;;;:::i;:::-;14127:11;;:32;14119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13825:368:::0;;;;:::o;12353:110::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12420:1:::1;12407:10;;:14;;;;;;;;;;;;;;;;;;12446:11;;;;;;;;;;;12442:1;:15;;;;:::i;:::-;12428:11;;:29;;;;;;;;;;;;;;;;;;12353:110::o:0;1237:130::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1319:8:::1;1311:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1334:30;1355:8;1334:30;;;;;;:::i;:::-;;;;;;;;1237:130:::0;:::o;12471:398::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12637:12:::1;12621:13;;:28;;;;;;;;;;;;;;;;;;12673:16;12656:14;;:33;;;;;;;;;;;;;;;;;;12713:16;12696:14;;:33;;;;;;;;;;;;;;;;;;12753:16;12736:14;;:33;;;;;;;;;;;;;;;;;;12847:16;12828;12809;12794:12;:31;;;;:::i;:::-;:50;;;;:::i;:::-;:69;;;;:::i;:::-;12776:15;;:87;;;;;;;;;;;;;;;;;;12471:398:::0;;;;:::o;12121:226::-;1175:5;;;;;;;;;;1161:19;;:10;:19;;;1153:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12224:11:::1;;;;;;;;;;;12211:24;;:9;:24;;;;:53;;;;;12253:11;;;;;;;;;;;12239:25;;:10;:25;;;;12211:53;12203:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12301:9;12288:10;;:22;;;;;;;;;;;;;;;;;;12331:10;12317:11;;:24;;;;;;;;;;;;;;;;;;12121:226:::0;;:::o;2509:23::-;;;;;;;;;;;;;:::o;15815:446::-;15874:21;15932:14;;;;;;;;;;;15915;;;;;;;;;;;15898;;;;;;;;;;;:31;;;;:::i;:::-;:48;;;;:::i;:::-;15874:72;;15975:1;15958:14;;;;;;;;;;;:18;;;15953:97;;;15981:14;;;;;;;;;;;:23;;:66;16032:14;16005:41;;16015:14;;;;;;;;;;;16005:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;15981:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15953:97;16078:1;16061:14;;;;;;;;;;;:18;;;16056:97;;;16084:14;;;;;;;;;;;:23;;:66;16135:14;16108:41;;16118:14;;;;;;;;;;;16108:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;16084:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16056:97;16181:1;16164:14;;;;;;;;;;;:18;;;16159:97;;;16187:14;;;;;;;;;;;:23;;:66;16238:14;16211:41;;16221:14;;;;;;;;;;;16211:24;;:7;:24;;;;:::i;:::-;:41;;;;:::i;:::-;16187:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16159:97;15867:394;15815:446;:::o;9277:164::-;9347:12;9333:11;;:26;:46;;;;9378:1;9363:11;;:16;9333:46;9328:108;;;9420:8;9405:23;;:12;:23;;;;:::i;:::-;9391:11;:37;;;;9328:108;9277:164;:::o;11216:228::-;11267:4;11279:16;11298:5;11279:24;;11315:11;;;;;;;;;;;11310:103;;;11345:4;11331:18;;11310:103;;;11382:5;;;;;;;;;;11369:18;;:9;:18;;;11364:49;;;11406:4;11392:18;;11364:49;11310:103;11427:11;11420:18;;;11216:228;:::o;9447:1328::-;9539:4;9578:1;9560:20;;:6;:20;;;;:47;;;;9605:1;9584:23;;:9;:23;;;;9560:47;9552:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9647:18;9668:40;9682:6;9690:9;9701:6;9668:13;:40::i;:::-;9647:61;;9734:12;9720:11;;:26;9715:489;;;9801:4;;;;;;;;;;;9763:42;;9793:4;;;;;;;;;;;9763:34;;9779:9;9763:34;;;;:::i;:::-;:42;;;9758:132;;;9810:12;9820:1;9810:9;:12::i;:::-;9758:132;;;9868:4;9862:3;9853:6;:12;;;;:::i;:::-;:19;;;;:::i;:::-;9840:32;;9874:11;;:13;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9758:132;9715:489;;;9938:15;;;;;;;;;;;9924:29;;:11;;:29;;;;:::i;:::-;9908:12;:45;;:76;;;;;9971:13;9957:11;:27;9908:76;9903:301;;;9995:17;10044:13;10030:11;:27;10025:172;;;10098:13;10084:11;:27;;;;:::i;:::-;10072:39;;10140:9;;10127;:22;10122:65;;10154:30;;;;;;;;;;:::i;:::-;;;;;;;;10122:65;10025:172;9986:218;9903:301;9715:489;10218:10;;;;;;;;;;;10217:11;:36;;;;;10232:10;:21;10243:9;10232:21;;;;;;;;;;;;;;;;;;;;;;;;;10217:36;10212:69;;;10258:20;:18;:20::i;:::-;10212:69;10312:4;10294:23;;:6;:23;;;;:53;;;;;10342:4;10321:26;;:9;:26;;;;10294:53;:72;;;;;10361:5;;;;;;;;;;10351:15;;:6;:15;;;;10294:72;10289:146;;;10379:31;10392:9;10403:6;10379:12;:31::i;:::-;10371:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10289:146;10441:23;10476:10;10467:6;:19;;;;:::i;:::-;10441:45;;10533:6;10513:9;:17;10523:6;10513:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10493:9;:17;10503:6;10493:17;;;;;;;;;;;;;;;:46;;;;10564:1;10551:10;:14;10546:91;;;10624:10;10597:9;:24;10615:4;10597:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;10570:9;:24;10588:4;10570:24;;;;;;;;;;;;;;;:64;;;;10546:91;10689:15;10666:9;:20;10676:9;10666:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;10643:9;:20;10653:9;10643:20;;;;;;;;;;;;;;;:61;;;;10733:9;10716:35;;10725:6;10716:35;;;10744:6;10716:35;;;;;;:::i;:::-;;;;;;;;10765:4;10758:11;;;;9447:1328;;;;;:::o;6338:453::-;6393:11;;;;;;;;;;;6392:12;6384:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6442:21;6486:3;6481:2;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;6466:17;;;;:::i;:::-;:23;;;;:::i;:::-;6442:47;;6523:13;6496:9;:24;6514:4;6496:24;;;;;;;;;;;;;;;:40;;;;6577:4;6548:50;;6565:1;6548:50;;;6584:13;6548:50;;;;;;:::i;:::-;;;;;;;;6607:29;6654:13;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;6639:28;;;;:::i;:::-;6607:60;;6693:21;6674:9;:16;6684:5;;;;;;;;;;;6674:16;;;;;;;;;;;;;;;:40;;;;6755:5;;;;;;;;;;6726:59;;6743:1;6726:59;;;6763:21;6726:59;;;;;;:::i;:::-;;;;;;;;6377:414;;6338:453::o;7541:310::-;7662:12;7608:11;:26;7628:4;7608:26;;;;;;;;;;;;;;;:51;3659:42;7608:51;;;;;;;;;;;;;;;;:66;7603:243;;;7740:17;7686:11;:26;7706:4;7686:26;;;;;;;;;;;;;;;:51;3659:42;7686:51;;;;;;;;;;;;;;;:71;;;;3659:42;7771:67;;7788:4;7771:67;;;7820:17;7771:67;;;;;;:::i;:::-;;;;;;;;7603:243;7541:310;:::o;7857:328::-;7956:24;8006:8;8000:46;;8038:5;;;;;;;;;;8019:24;;8000:46;8052:16;;;;;;;;;;;:32;;;8092:13;8117:4;8124:12;8138:1;8141;8144:16;8162:15;8052:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7949:236;7857:328;;;:::o;8610:327::-;8679:2;8664:12;:17;;;;:::i;:::-;8650:11;:31;;;;2187:1;8732:2;:13;;;;:::i;:::-;8725:4;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;8706:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;:39;;;;:::i;:::-;8688:11;:57;;;;2187:1;8798:2;:13;;;;:::i;:::-;8791:4;2187:1;2240:2;:15;;;;:::i;:::-;2225:11;:31;;;;:::i;:::-;8771:2;:17;;;;:::i;:::-;:24;;;;:::i;:::-;:40;;;;:::i;:::-;8753:15;:58;;;;8831:11;;;;;;;;;;;8818:10;;:24;;;;;;;;;;;;;;;;;;8866:11;;;;;;;;;;;8863:1;:14;;;;:::i;:::-;8849:11;;:28;;;;;;;;;;;;;;;;;;8927:4;8913:11;;:18;;;;;;;;;;;;;;;;;;8610:327::o;15466:343::-;15533:28;15548:12;15533:14;:28::i;:::-;15568:21;15606:1;15592:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15568:40;;15633:4;15615;15620:1;15615:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15655:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15645:4;15650:1;15645:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15685:16;;;;;;;;;;;:67;;;15753:12;15766:1;15768:4;15781;15787:15;15685:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15526:283;15466:343;:::o;11450:435::-;11547:7;11563:17;11593:11;;;;;;;;;;;11592:12;:31;;;;11608:7;:15;11616:6;11608:15;;;;;;;;;;;;;;;;;;;;;;;;;11592:31;:53;;;;11627:7;:18;11635:9;11627:18;;;;;;;;;;;;;;;;;;;;;;;;;11592:53;11587:270;;;11662:1;11650:13;;11587:270;;;11682:10;:18;11693:6;11682:18;;;;;;;;;;;;;;;;;;;;;;;;;11677:180;;;11739:3;11726:10;;;;;;;;;;;11717:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11705:37;;11677:180;;;11761:10;:21;11772:9;11761:21;;;;;;;;;;;;;;;;;;;;;;;;;11756:101;;;11822:3;11808:11;;;;;;;;;;;11799:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11787:38;;11756:101;;;11853:1;11841:13;;11756:101;11677:180;11587:270;11870:9;11863:16;;;11450:435;;;;;:::o;14502:958::-;3827:4;3814:10;;:17;;;;;;;;;;;;;;;;;;14559:27:::1;14589:24;14607:4;14589:9;:24::i;:::-;14559:54;;14650:11;;14627:19;:34;;:49;;;;;14665:11;;;;;;;;;;;14627:49;14622:833;;;14716:11;;14693:19;:34;14688:80;;14754:11;;14732:33;;14688:80;14776:20;14855:1;14837:15;;;;;;;;;;;14799:53;;14821:13;;;;;;;;;;;14799:35;;:19;:35;;;;:::i;:::-;:53;;;;:::i;:::-;:57;;;;:::i;:::-;14776:80;;14865:21;14911:12;14889:19;:34;;;;:::i;:::-;14865:58;;14932:19;14954:21;14932:43;;14984:35;15005:13;14984:20;:35::i;:::-;15028:19;15074:11;15050:21;:35;;;;:::i;:::-;15028:57;;15115:1;15099:13;;;;;;;;;;;:17;;;15094:215;;;15130:21;15184:15;;;;;;;;;;;15154:45;;15168:13;;;;;;;;;;;15154:27;;:11;:27;;;;:::i;:::-;:45;;;;:::i;:::-;15130:69;;15211:28;15226:12;15211:14;:28::i;:::-;15250:49;15264:12;15278:13;15293:5;15250:13;:49::i;:::-;15119:190;15094:215;15317:27;15347:21;15317:51;;15402:1;15380:19;:23;15377:71;;;15407:38;15425:19;15407:17;:38::i;:::-;15377:71;14679:776;;;;;14622:833;14552:908;3849:5:::0;3836:10;;:18;;;;;;;;;;;;;;;;;;14502:958::o;10781:429::-;10869:4;10882:21;10906:4;10882:28;;10922:11;;;;;;;;;;;:36;;;;;10938:9;:20;10948:9;10938:20;;;;;;;;;;;;;;;;;;;;;;;;;10937:21;10922:36;10917:258;;;10992:11;;10975:14;:28;10970:198;;;11027:5;11008:24;;10970:198;;;11054:10;:21;11065:9;11054:21;;;;;;;;;;;;;;;;;;;;;;;;;11053:22;:83;;;;;11120:15;;11103:14;11080:9;:20;11090:9;11080:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:55;11053:83;11048:120;;;11160:5;11141:24;;11048:120;10970:198;10917:258;11188:16;11181:23;;;10781:429;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:89::-;4937:7;4977:6;4970:5;4966:18;4955:29;;4901:89;;;:::o;4996:115::-;5081:23;5098:5;5081:23;:::i;:::-;5076:3;5069:36;4996:115;;:::o;5117:218::-;5208:4;5246:2;5235:9;5231:18;5223:26;;5259:69;5325:1;5314:9;5310:17;5301:6;5259:69;:::i;:::-;5117:218;;;;:::o;5341:117::-;5450:1;5447;5440:12;5464:117;5573:1;5570;5563:12;5587:117;5696:1;5693;5686:12;5727:568;5800:8;5810:6;5860:3;5853:4;5845:6;5841:17;5837:27;5827:122;;5868:79;;:::i;:::-;5827:122;5981:6;5968:20;5958:30;;6011:18;6003:6;6000:30;5997:117;;;6033:79;;:::i;:::-;5997:117;6147:4;6139:6;6135:17;6123:29;;6201:3;6193:4;6185:6;6181:17;6171:8;6167:32;6164:41;6161:128;;;6208:79;;:::i;:::-;6161:128;5727:568;;;;;:::o;6318:::-;6391:8;6401:6;6451:3;6444:4;6436:6;6432:17;6428:27;6418:122;;6459:79;;:::i;:::-;6418:122;6572:6;6559:20;6549:30;;6602:18;6594:6;6591:30;6588:117;;;6624:79;;:::i;:::-;6588:117;6738:4;6730:6;6726:17;6714:29;;6792:3;6784:4;6776:6;6772:17;6762:8;6758:32;6755:41;6752:128;;;6799:79;;:::i;:::-;6752:128;6318:568;;;;;:::o;6892:934::-;7014:6;7022;7030;7038;7087:2;7075:9;7066:7;7062:23;7058:32;7055:119;;;7093:79;;:::i;:::-;7055:119;7241:1;7230:9;7226:17;7213:31;7271:18;7263:6;7260:30;7257:117;;;7293:79;;:::i;:::-;7257:117;7406:80;7478:7;7469:6;7458:9;7454:22;7406:80;:::i;:::-;7388:98;;;;7184:312;7563:2;7552:9;7548:18;7535:32;7594:18;7586:6;7583:30;7580:117;;;7616:79;;:::i;:::-;7580:117;7729:80;7801:7;7792:6;7781:9;7777:22;7729:80;:::i;:::-;7711:98;;;;7506:313;6892:934;;;;;;;:::o;7832:329::-;7891:6;7940:2;7928:9;7919:7;7915:23;7911:32;7908:119;;;7946:79;;:::i;:::-;7908:119;8066:1;8091:53;8136:7;8127:6;8116:9;8112:22;8091:53;:::i;:::-;8081:63;;8037:117;7832:329;;;;:::o;8167:::-;8226:6;8275:2;8263:9;8254:7;8250:23;8246:32;8243:119;;;8281:79;;:::i;:::-;8243:119;8401:1;8426:53;8471:7;8462:6;8451:9;8447:22;8426:53;:::i;:::-;8416:63;;8372:117;8167:329;;;;:::o;8502:116::-;8572:21;8587:5;8572:21;:::i;:::-;8565:5;8562:32;8552:60;;8608:1;8605;8598:12;8552:60;8502:116;:::o;8624:133::-;8667:5;8705:6;8692:20;8683:29;;8721:30;8745:5;8721:30;:::i;:::-;8624:133;;;;:::o;8763:468::-;8828:6;8836;8885:2;8873:9;8864:7;8860:23;8856:32;8853:119;;;8891:79;;:::i;:::-;8853:119;9011:1;9036:53;9081:7;9072:6;9061:9;9057:22;9036:53;:::i;:::-;9026:63;;8982:117;9138:2;9164:50;9206:7;9197:6;9186:9;9182:22;9164:50;:::i;:::-;9154:60;;9109:115;8763:468;;;;;:::o;9237:118::-;9324:24;9342:5;9324:24;:::i;:::-;9319:3;9312:37;9237:118;;:::o;9361:222::-;9454:4;9492:2;9481:9;9477:18;9469:26;;9505:71;9573:1;9562:9;9558:17;9549:6;9505:71;:::i;:::-;9361:222;;;;:::o;9589:619::-;9666:6;9674;9682;9731:2;9719:9;9710:7;9706:23;9702:32;9699:119;;;9737:79;;:::i;:::-;9699:119;9857:1;9882:53;9927:7;9918:6;9907:9;9903:22;9882:53;:::i;:::-;9872:63;;9828:117;9984:2;10010:53;10055:7;10046:6;10035:9;10031:22;10010:53;:::i;:::-;10000:63;;9955:118;10112:2;10138:53;10183:7;10174:6;10163:9;10159:22;10138:53;:::i;:::-;10128:63;;10083:118;9589:619;;;;;:::o;10214:120::-;10286:23;10303:5;10286:23;:::i;:::-;10279:5;10276:34;10266:62;;10324:1;10321;10314:12;10266:62;10214:120;:::o;10340:137::-;10385:5;10423:6;10410:20;10401:29;;10439:32;10465:5;10439:32;:::i;:::-;10340:137;;;;:::o;10483:470::-;10549:6;10557;10606:2;10594:9;10585:7;10581:23;10577:32;10574:119;;;10612:79;;:::i;:::-;10574:119;10732:1;10757:52;10801:7;10792:6;10781:9;10777:22;10757:52;:::i;:::-;10747:62;;10703:116;10858:2;10884:52;10928:7;10919:6;10908:9;10904:22;10884:52;:::i;:::-;10874:62;;10829:117;10483:470;;;;;:::o;10959:474::-;11027:6;11035;11084:2;11072:9;11063:7;11059:23;11055:32;11052:119;;;11090:79;;:::i;:::-;11052:119;11210:1;11235:53;11280:7;11271:6;11260:9;11256:22;11235:53;:::i;:::-;11225:63;;11181:117;11337:2;11363:53;11408:7;11399:6;11388:9;11384:22;11363:53;:::i;:::-;11353:63;;11308:118;10959:474;;;;;:::o;11439:93::-;11475:7;11515:10;11508:5;11504:22;11493:33;;11439:93;;;:::o;11538:120::-;11610:23;11627:5;11610:23;:::i;:::-;11603:5;11600:34;11590:62;;11648:1;11645;11638:12;11590:62;11538:120;:::o;11664:137::-;11709:5;11747:6;11734:20;11725:29;;11763:32;11789:5;11763:32;:::i;:::-;11664:137;;;;:::o;11807:757::-;11889:6;11897;11905;11913;11962:3;11950:9;11941:7;11937:23;11933:33;11930:120;;;11969:79;;:::i;:::-;11930:120;12089:1;12114:52;12158:7;12149:6;12138:9;12134:22;12114:52;:::i;:::-;12104:62;;12060:116;12215:2;12241:52;12285:7;12276:6;12265:9;12261:22;12241:52;:::i;:::-;12231:62;;12186:117;12342:2;12368:52;12412:7;12403:6;12392:9;12388:22;12368:52;:::i;:::-;12358:62;;12313:117;12469:2;12495:52;12539:7;12530:6;12519:9;12515:22;12495:52;:::i;:::-;12485:62;;12440:117;11807:757;;;;;;;:::o;12570:104::-;12615:7;12644:24;12662:5;12644:24;:::i;:::-;12633:35;;12570:104;;;:::o;12680:138::-;12761:32;12787:5;12761:32;:::i;:::-;12754:5;12751:43;12741:71;;12808:1;12805;12798:12;12741:71;12680:138;:::o;12824:155::-;12878:5;12916:6;12903:20;12894:29;;12932:41;12967:5;12932:41;:::i;:::-;12824:155;;;;:::o;12985:345::-;13052:6;13101:2;13089:9;13080:7;13076:23;13072:32;13069:119;;;13107:79;;:::i;:::-;13069:119;13227:1;13252:61;13305:7;13296:6;13285:9;13281:22;13252:61;:::i;:::-;13242:71;;13198:125;12985:345;;;;:::o;13336:757::-;13418:6;13426;13434;13442;13491:3;13479:9;13470:7;13466:23;13462:33;13459:120;;;13498:79;;:::i;:::-;13459:120;13618:1;13643:52;13687:7;13678:6;13667:9;13663:22;13643:52;:::i;:::-;13633:62;;13589:116;13744:2;13770:52;13814:7;13805:6;13794:9;13790:22;13770:52;:::i;:::-;13760:62;;13715:117;13871:2;13897:52;13941:7;13932:6;13921:9;13917:22;13897:52;:::i;:::-;13887:62;;13842:117;13998:2;14024:52;14068:7;14059:6;14048:9;14044:22;14024:52;:::i;:::-;14014:62;;13969:117;13336:757;;;;;;;:::o;14099:118::-;14170:22;14186:5;14170:22;:::i;:::-;14163:5;14160:33;14150:61;;14207:1;14204;14197:12;14150:61;14099:118;:::o;14223:135::-;14267:5;14305:6;14292:20;14283:29;;14321:31;14346:5;14321:31;:::i;:::-;14223:135;;;;:::o;14364:466::-;14428:6;14436;14485:2;14473:9;14464:7;14460:23;14456:32;14453:119;;;14491:79;;:::i;:::-;14453:119;14611:1;14636:51;14679:7;14670:6;14659:9;14655:22;14636:51;:::i;:::-;14626:61;;14582:115;14736:2;14762:51;14805:7;14796:6;14785:9;14781:22;14762:51;:::i;:::-;14752:61;;14707:116;14364:466;;;;;:::o;14836:180::-;14884:77;14881:1;14874:88;14981:4;14978:1;14971:15;15005:4;15002:1;14995:15;15022:102;15064:8;15111:5;15108:1;15104:13;15083:34;;15022:102;;;:::o;15130:848::-;15191:5;15198:4;15222:6;15213:15;;15246:5;15237:14;;15260:712;15281:1;15271:8;15268:15;15260:712;;;15376:4;15371:3;15367:14;15361:4;15358:24;15355:50;;;15385:18;;:::i;:::-;15355:50;15435:1;15425:8;15421:16;15418:451;;;15850:4;15843:5;15839:16;15830:25;;15418:451;15900:4;15894;15890:15;15882:23;;15930:32;15953:8;15930:32;:::i;:::-;15918:44;;15260:712;;;15130:848;;;;;;;:::o;15984:1073::-;16038:5;16229:8;16219:40;;16250:1;16241:10;;16252:5;;16219:40;16278:4;16268:36;;16295:1;16286:10;;16297:5;;16268:36;16364:4;16412:1;16407:27;;;;16448:1;16443:191;;;;16357:277;;16407:27;16425:1;16416:10;;16427:5;;;16443:191;16488:3;16478:8;16475:17;16472:43;;;16495:18;;:::i;:::-;16472:43;16544:8;16541:1;16537:16;16528:25;;16579:3;16572:5;16569:14;16566:40;;;16586:18;;:::i;:::-;16566:40;16619:5;;;16357:277;;16743:2;16733:8;16730:16;16724:3;16718:4;16715:13;16711:36;16693:2;16683:8;16680:16;16675:2;16669:4;16666:12;16662:35;16646:111;16643:246;;;16799:8;16793:4;16789:19;16780:28;;16834:3;16827:5;16824:14;16821:40;;;16841:18;;:::i;:::-;16821:40;16874:5;;16643:246;16914:42;16952:3;16942:8;16936:4;16933:1;16914:42;:::i;:::-;16899:57;;;;16988:4;16983:3;16979:14;16972:5;16969:25;16966:51;;;16997:18;;:::i;:::-;16966:51;17046:4;17039:5;17035:16;17026:25;;15984:1073;;;;;;:::o;17063:281::-;17121:5;17145:23;17163:4;17145:23;:::i;:::-;17137:31;;17189:25;17205:8;17189:25;:::i;:::-;17177:37;;17233:104;17270:66;17260:8;17254:4;17233:104;:::i;:::-;17224:113;;17063:281;;;;:::o;17350:348::-;17390:7;17413:20;17431:1;17413:20;:::i;:::-;17408:25;;17447:20;17465:1;17447:20;:::i;:::-;17442:25;;17635:1;17567:66;17563:74;17560:1;17557:81;17552:1;17545:9;17538:17;17534:105;17531:131;;;17642:18;;:::i;:::-;17531:131;17690:1;17687;17683:9;17672:20;;17350:348;;;;:::o;17704:229::-;17844:34;17840:1;17832:6;17828:14;17821:58;17913:12;17908:2;17900:6;17896:15;17889:37;17704:229;:::o;17939:366::-;18081:3;18102:67;18166:2;18161:3;18102:67;:::i;:::-;18095:74;;18178:93;18267:3;18178:93;:::i;:::-;18296:2;18291:3;18287:12;18280:19;;17939:366;;;:::o;18311:419::-;18477:4;18515:2;18504:9;18500:18;18492:26;;18564:9;18558:4;18554:20;18550:1;18539:9;18535:17;18528:47;18592:131;18718:4;18592:131;:::i;:::-;18584:139;;18311:419;;;:::o;18736:166::-;18876:18;18872:1;18864:6;18860:14;18853:42;18736:166;:::o;18908:366::-;19050:3;19071:67;19135:2;19130:3;19071:67;:::i;:::-;19064:74;;19147:93;19236:3;19147:93;:::i;:::-;19265:2;19260:3;19256:12;19249:19;;18908:366;;;:::o;19280:419::-;19446:4;19484:2;19473:9;19469:18;19461:26;;19533:9;19527:4;19523:20;19519:1;19508:9;19504:17;19497:47;19561:131;19687:4;19561:131;:::i;:::-;19553:139;;19280:419;;;:::o;19705:166::-;19845:18;19841:1;19833:6;19829:14;19822:42;19705:166;:::o;19877:366::-;20019:3;20040:67;20104:2;20099:3;20040:67;:::i;:::-;20033:74;;20116:93;20205:3;20116:93;:::i;:::-;20234:2;20229:3;20225:12;20218:19;;19877:366;;;:::o;20249:419::-;20415:4;20453:2;20442:9;20438:18;20430:26;;20502:9;20496:4;20492:20;20488:1;20477:9;20473:17;20466:47;20530:131;20656:4;20530:131;:::i;:::-;20522:139;;20249:419;;;:::o;20674:191::-;20714:4;20734:20;20752:1;20734:20;:::i;:::-;20729:25;;20768:20;20786:1;20768:20;:::i;:::-;20763:25;;20807:1;20804;20801:8;20798:34;;;20812:18;;:::i;:::-;20798:34;20857:1;20854;20850:9;20842:17;;20674:191;;;;:::o;20871:182::-;21011:34;21007:1;20999:6;20995:14;20988:58;20871:182;:::o;21059:366::-;21201:3;21222:67;21286:2;21281:3;21222:67;:::i;:::-;21215:74;;21298:93;21387:3;21298:93;:::i;:::-;21416:2;21411:3;21407:12;21400:19;;21059:366;;;:::o;21431:419::-;21597:4;21635:2;21624:9;21620:18;21612:26;;21684:9;21678:4;21674:20;21670:1;21659:9;21655:17;21648:47;21712:131;21838:4;21712:131;:::i;:::-;21704:139;;21431:419;;;:::o;21856:224::-;21996:34;21992:1;21984:6;21980:14;21973:58;22065:7;22060:2;22052:6;22048:15;22041:32;21856:224;:::o;22086:366::-;22228:3;22249:67;22313:2;22308:3;22249:67;:::i;:::-;22242:74;;22325:93;22414:3;22325:93;:::i;:::-;22443:2;22438:3;22434:12;22427:19;;22086:366;;;:::o;22458:419::-;22624:4;22662:2;22651:9;22647:18;22639:26;;22711:9;22705:4;22701:20;22697:1;22686:9;22682:17;22675:47;22739:131;22865:4;22739:131;:::i;:::-;22731:139;;22458:419;;;:::o;22883:180::-;22931:77;22928:1;22921:88;23028:4;23025:1;23018:15;23052:4;23049:1;23042:15;23069:305;23109:3;23128:20;23146:1;23128:20;:::i;:::-;23123:25;;23162:20;23180:1;23162:20;:::i;:::-;23157:25;;23316:1;23248:66;23244:74;23241:1;23238:81;23235:107;;;23322:18;;:::i;:::-;23235:107;23366:1;23363;23359:9;23352:16;;23069:305;;;;:::o;23380:233::-;23419:3;23442:24;23460:5;23442:24;:::i;:::-;23433:33;;23488:66;23481:5;23478:77;23475:103;;;23558:18;;:::i;:::-;23475:103;23605:1;23598:5;23594:13;23587:20;;23380:233;;;:::o;23619:225::-;23759:34;23755:1;23747:6;23743:14;23736:58;23828:8;23823:2;23815:6;23811:15;23804:33;23619:225;:::o;23850:366::-;23992:3;24013:67;24077:2;24072:3;24013:67;:::i;:::-;24006:74;;24089:93;24178:3;24089:93;:::i;:::-;24207:2;24202:3;24198:12;24191:19;;23850:366;;;:::o;24222:419::-;24388:4;24426:2;24415:9;24411:18;24403:26;;24475:9;24469:4;24465:20;24461:1;24450:9;24446:17;24439:47;24503:131;24629:4;24503:131;:::i;:::-;24495:139;;24222:419;;;:::o;24647:332::-;24768:4;24806:2;24795:9;24791:18;24783:26;;24819:71;24887:1;24876:9;24872:17;24863:6;24819:71;:::i;:::-;24900:72;24968:2;24957:9;24953:18;24944:6;24900:72;:::i;:::-;24647:332;;;;;:::o;24985:170::-;25125:22;25121:1;25113:6;25109:14;25102:46;24985:170;:::o;25161:366::-;25303:3;25324:67;25388:2;25383:3;25324:67;:::i;:::-;25317:74;;25400:93;25489:3;25400:93;:::i;:::-;25518:2;25513:3;25509:12;25502:19;;25161:366;;;:::o;25533:419::-;25699:4;25737:2;25726:9;25722:18;25714:26;;25786:9;25780:4;25776:20;25772:1;25761:9;25757:17;25750:47;25814:131;25940:4;25814:131;:::i;:::-;25806:139;;25533:419;;;:::o;25958:165::-;26098:17;26094:1;26086:6;26082:14;26075:41;25958:165;:::o;26129:366::-;26271:3;26292:67;26356:2;26351:3;26292:67;:::i;:::-;26285:74;;26368:93;26457:3;26368:93;:::i;:::-;26486:2;26481:3;26477:12;26470:19;;26129:366;;;:::o;26501:419::-;26667:4;26705:2;26694:9;26690:18;26682:26;;26754:9;26748:4;26744:20;26740:1;26729:9;26725:17;26718:47;26782:131;26908:4;26782:131;:::i;:::-;26774:139;;26501:419;;;:::o;26926:164::-;27066:16;27062:1;27054:6;27050:14;27043:40;26926:164;:::o;27096:366::-;27238:3;27259:67;27323:2;27318:3;27259:67;:::i;:::-;27252:74;;27335:93;27424:3;27335:93;:::i;:::-;27453:2;27448:3;27444:12;27437:19;;27096:366;;;:::o;27468:419::-;27634:4;27672:2;27661:9;27657:18;27649:26;;27721:9;27715:4;27711:20;27707:1;27696:9;27692:17;27685:47;27749:131;27875:4;27749:131;:::i;:::-;27741:139;;27468:419;;;:::o;27893:159::-;28033:11;28029:1;28021:6;28017:14;28010:35;27893:159;:::o;28058:365::-;28200:3;28221:66;28285:1;28280:3;28221:66;:::i;:::-;28214:73;;28296:93;28385:3;28296:93;:::i;:::-;28414:2;28409:3;28405:12;28398:19;;28058:365;;;:::o;28429:419::-;28595:4;28633:2;28622:9;28618:18;28610:26;;28682:9;28676:4;28672:20;28668:1;28657:9;28653:17;28646:47;28710:131;28836:4;28710:131;:::i;:::-;28702:139;;28429:419;;;:::o;28854:143::-;28911:5;28942:6;28936:13;28927:22;;28958:33;28985:5;28958:33;:::i;:::-;28854:143;;;;:::o;29003:351::-;29073:6;29122:2;29110:9;29101:7;29097:23;29093:32;29090:119;;;29128:79;;:::i;:::-;29090:119;29248:1;29273:64;29329:7;29320:6;29309:9;29305:22;29273:64;:::i;:::-;29263:74;;29219:128;29003:351;;;;:::o;29360:332::-;29481:4;29519:2;29508:9;29504:18;29496:26;;29532:71;29600:1;29589:9;29585:17;29576:6;29532:71;:::i;:::-;29613:72;29681:2;29670:9;29666:18;29657:6;29613:72;:::i;:::-;29360:332;;;;;:::o;29698:171::-;29838:23;29834:1;29826:6;29822:14;29815:47;29698:171;:::o;29875:366::-;30017:3;30038:67;30102:2;30097:3;30038:67;:::i;:::-;30031:74;;30114:93;30203:3;30114:93;:::i;:::-;30232:2;30227:3;30223:12;30216:19;;29875:366;;;:::o;30247:419::-;30413:4;30451:2;30440:9;30436:18;30428:26;;30500:9;30494:4;30490:20;30486:1;30475:9;30471:17;30464:47;30528:131;30654:4;30528:131;:::i;:::-;30520:139;;30247:419;;;:::o;30672:180::-;30720:77;30717:1;30710:88;30817:4;30814:1;30807:15;30841:4;30838:1;30831:15;30858:185;30898:1;30915:20;30933:1;30915:20;:::i;:::-;30910:25;;30949:20;30967:1;30949:20;:::i;:::-;30944:25;;30988:1;30978:35;;30993:18;;:::i;:::-;30978:35;31035:1;31032;31028:9;31023:14;;30858:185;;;;:::o;31049:166::-;31189:18;31185:1;31177:6;31173:14;31166:42;31049:166;:::o;31221:366::-;31363:3;31384:67;31448:2;31443:3;31384:67;:::i;:::-;31377:74;;31460:93;31549:3;31460:93;:::i;:::-;31578:2;31573:3;31569:12;31562:19;;31221:366;;;:::o;31593:419::-;31759:4;31797:2;31786:9;31782:18;31774:26;;31846:9;31840:4;31836:20;31832:1;31821:9;31817:17;31810:47;31874:131;32000:4;31874:131;:::i;:::-;31866:139;;31593:419;;;:::o;32018:170::-;32158:22;32154:1;32146:6;32142:14;32135:46;32018:170;:::o;32194:366::-;32336:3;32357:67;32421:2;32416:3;32357:67;:::i;:::-;32350:74;;32433:93;32522:3;32433:93;:::i;:::-;32551:2;32546:3;32542:12;32535:19;;32194:366;;;:::o;32566:419::-;32732:4;32770:2;32759:9;32755:18;32747:26;;32819:9;32813:4;32809:20;32805:1;32794:9;32790:17;32783:47;32847:131;32973:4;32847:131;:::i;:::-;32839:139;;32566:419;;;:::o;32991:164::-;33131:16;33127:1;33119:6;33115:14;33108:40;32991:164;:::o;33161:366::-;33303:3;33324:67;33388:2;33383:3;33324:67;:::i;:::-;33317:74;;33400:93;33489:3;33400:93;:::i;:::-;33518:2;33513:3;33509:12;33502:19;;33161:366;;;:::o;33533:419::-;33699:4;33737:2;33726:9;33722:18;33714:26;;33786:9;33780:4;33776:20;33772:1;33761:9;33757:17;33750:47;33814:131;33940:4;33814:131;:::i;:::-;33806:139;;33533:419;;;:::o;33958:159::-;34098:11;34094:1;34086:6;34082:14;34075:35;33958:159;:::o;34123:365::-;34265:3;34286:66;34350:1;34345:3;34286:66;:::i;:::-;34279:73;;34361:93;34450:3;34361:93;:::i;:::-;34479:2;34474:3;34470:12;34463:19;;34123:365;;;:::o;34494:419::-;34660:4;34698:2;34687:9;34683:18;34675:26;;34747:9;34741:4;34737:20;34733:1;34722:9;34718:17;34711:47;34775:131;34901:4;34775:131;:::i;:::-;34767:139;;34494:419;;;:::o;34919:173::-;35059:25;35055:1;35047:6;35043:14;35036:49;34919:173;:::o;35098:366::-;35240:3;35261:67;35325:2;35320:3;35261:67;:::i;:::-;35254:74;;35337:93;35426:3;35337:93;:::i;:::-;35455:2;35450:3;35446:12;35439:19;;35098:366;;;:::o;35470:419::-;35636:4;35674:2;35663:9;35659:18;35651:26;;35723:9;35717:4;35713:20;35709:1;35698:9;35694:17;35687:47;35751:131;35877:4;35751:131;:::i;:::-;35743:139;;35470:419;;;:::o;35895:159::-;36035:11;36031:1;36023:6;36019:14;36012:35;35895:159;:::o;36060:365::-;36202:3;36223:66;36287:1;36282:3;36223:66;:::i;:::-;36216:73;;36298:93;36387:3;36298:93;:::i;:::-;36416:2;36411:3;36407:12;36400:19;;36060:365;;;:::o;36431:419::-;36597:4;36635:2;36624:9;36620:18;36612:26;;36684:9;36678:4;36674:20;36670:1;36659:9;36655:17;36648:47;36712:131;36838:4;36712:131;:::i;:::-;36704:139;;36431:419;;;:::o;36856:162::-;36996:14;36992:1;36984:6;36980:14;36973:38;36856:162;:::o;37024:366::-;37166:3;37187:67;37251:2;37246:3;37187:67;:::i;:::-;37180:74;;37263:93;37352:3;37263:93;:::i;:::-;37381:2;37376:3;37372:12;37365:19;;37024:366;;;:::o;37396:419::-;37562:4;37600:2;37589:9;37585:18;37577:26;;37649:9;37643:4;37639:20;37635:1;37624:9;37620:17;37613:47;37677:131;37803:4;37677:131;:::i;:::-;37669:139;;37396:419;;;:::o;37821:173::-;37961:25;37957:1;37949:6;37945:14;37938:49;37821:173;:::o;38000:366::-;38142:3;38163:67;38227:2;38222:3;38163:67;:::i;:::-;38156:74;;38239:93;38328:3;38239:93;:::i;:::-;38357:2;38352:3;38348:12;38341:19;;38000:366;;;:::o;38372:419::-;38538:4;38576:2;38565:9;38561:18;38553:26;;38625:9;38619:4;38615:20;38611:1;38600:9;38596:17;38589:47;38653:131;38779:4;38653:131;:::i;:::-;38645:139;;38372:419;;;:::o;38797:280::-;38835:7;38858:18;38874:1;38858:18;:::i;:::-;38853:23;;38890:18;38906:1;38890:18;:::i;:::-;38885:23;;39014:1;39008:4;39004:12;39001:1;38998:19;38993:1;38986:9;38979:17;38975:43;38972:69;;;39021:18;;:::i;:::-;38972:69;39069:1;39066;39062:9;39051:20;;38797:280;;;;:::o;39083:60::-;39111:3;39132:5;39125:12;;39083:60;;;:::o;39149:142::-;39199:9;39232:53;39250:34;39259:24;39277:5;39259:24;:::i;:::-;39250:34;:::i;:::-;39232:53;:::i;:::-;39219:66;;39149:142;;;:::o;39297:126::-;39347:9;39380:37;39411:5;39380:37;:::i;:::-;39367:50;;39297:126;;;:::o;39429:134::-;39487:9;39520:37;39551:5;39520:37;:::i;:::-;39507:50;;39429:134;;;:::o;39569:147::-;39664:45;39703:5;39664:45;:::i;:::-;39659:3;39652:58;39569:147;;:::o;39722:238::-;39823:4;39861:2;39850:9;39846:18;39838:26;;39874:79;39950:1;39939:9;39935:17;39926:6;39874:79;:::i;:::-;39722:238;;;;:::o;39966:242::-;40005:3;40024:19;40041:1;40024:19;:::i;:::-;40019:24;;40057:19;40074:1;40057:19;:::i;:::-;40052:24;;40150:1;40142:6;40138:14;40135:1;40132:21;40129:47;;;40156:18;;:::i;:::-;40129:47;40200:1;40197;40193:9;40186:16;;39966:242;;;;:::o;40214:162::-;40354:14;40350:1;40342:6;40338:14;40331:38;40214:162;:::o;40382:366::-;40524:3;40545:67;40609:2;40604:3;40545:67;:::i;:::-;40538:74;;40621:93;40710:3;40621:93;:::i;:::-;40739:2;40734:3;40730:12;40723:19;;40382:366;;;:::o;40754:419::-;40920:4;40958:2;40947:9;40943:18;40935:26;;41007:9;41001:4;40997:20;40993:1;40982:9;40978:17;40971:47;41035:131;41161:4;41035:131;:::i;:::-;41027:139;;40754:419;;;:::o;41179:178::-;41319:30;41315:1;41307:6;41303:14;41296:54;41179:178;:::o;41363:366::-;41505:3;41526:67;41590:2;41585:3;41526:67;:::i;:::-;41519:74;;41602:93;41691:3;41602:93;:::i;:::-;41720:2;41715:3;41711:12;41704:19;;41363:366;;;:::o;41735:419::-;41901:4;41939:2;41928:9;41924:18;41916:26;;41988:9;41982:4;41978:20;41974:1;41963:9;41959:17;41952:47;42016:131;42142:4;42016:131;:::i;:::-;42008:139;;41735:419;;;:::o;42160:176::-;42192:1;42209:20;42227:1;42209:20;:::i;:::-;42204:25;;42243:20;42261:1;42243:20;:::i;:::-;42238:25;;42282:1;42272:35;;42287:18;;:::i;:::-;42272:35;42328:1;42325;42321:9;42316:14;;42160:176;;;;:::o;42342:171::-;42380:3;42403:23;42420:5;42403:23;:::i;:::-;42394:32;;42448:6;42441:5;42438:17;42435:43;;;42458:18;;:::i;:::-;42435:43;42505:1;42498:5;42494:13;42487:20;;42342:171;;;:::o;42519:170::-;42659:22;42655:1;42647:6;42643:14;42636:46;42519:170;:::o;42695:366::-;42837:3;42858:67;42922:2;42917:3;42858:67;:::i;:::-;42851:74;;42934:93;43023:3;42934:93;:::i;:::-;43052:2;43047:3;43043:12;43036:19;;42695:366;;;:::o;43067:419::-;43233:4;43271:2;43260:9;43256:18;43248:26;;43320:9;43314:4;43310:20;43306:1;43295:9;43291:17;43284:47;43348:131;43474:4;43348:131;:::i;:::-;43340:139;;43067:419;;;:::o;43492:167::-;43632:19;43628:1;43620:6;43616:14;43609:43;43492:167;:::o;43665:366::-;43807:3;43828:67;43892:2;43887:3;43828:67;:::i;:::-;43821:74;;43904:93;43993:3;43904:93;:::i;:::-;44022:2;44017:3;44013:12;44006:19;;43665:366;;;:::o;44037:419::-;44203:4;44241:2;44230:9;44226:18;44218:26;;44290:9;44284:4;44280:20;44276:1;44265:9;44261:17;44254:47;44318:131;44444:4;44318:131;:::i;:::-;44310:139;;44037:419;;;:::o;44462:85::-;44507:7;44536:5;44525:16;;44462:85;;;:::o;44553:158::-;44611:9;44644:61;44662:42;44671:32;44697:5;44671:32;:::i;:::-;44662:42;:::i;:::-;44644:61;:::i;:::-;44631:74;;44553:158;;;:::o;44717:147::-;44812:45;44851:5;44812:45;:::i;:::-;44807:3;44800:58;44717:147;;:::o;44870:807::-;45119:4;45157:3;45146:9;45142:19;45134:27;;45171:71;45239:1;45228:9;45224:17;45215:6;45171:71;:::i;:::-;45252:72;45320:2;45309:9;45305:18;45296:6;45252:72;:::i;:::-;45334:80;45410:2;45399:9;45395:18;45386:6;45334:80;:::i;:::-;45424;45500:2;45489:9;45485:18;45476:6;45424:80;:::i;:::-;45514:73;45582:3;45571:9;45567:19;45558:6;45514:73;:::i;:::-;45597;45665:3;45654:9;45650:19;45641:6;45597:73;:::i;:::-;44870:807;;;;;;;;;:::o;45683:143::-;45740:5;45771:6;45765:13;45756:22;;45787:33;45814:5;45787:33;:::i;:::-;45683:143;;;;:::o;45832:663::-;45920:6;45928;45936;45985:2;45973:9;45964:7;45960:23;45956:32;45953:119;;;45991:79;;:::i;:::-;45953:119;46111:1;46136:64;46192:7;46183:6;46172:9;46168:22;46136:64;:::i;:::-;46126:74;;46082:128;46249:2;46275:64;46331:7;46322:6;46311:9;46307:22;46275:64;:::i;:::-;46265:74;;46220:129;46388:2;46414:64;46470:7;46461:6;46450:9;46446:22;46414:64;:::i;:::-;46404:74;;46359:129;45832:663;;;;;:::o;46501:180::-;46549:77;46546:1;46539:88;46646:4;46643:1;46636:15;46670:4;46667:1;46660:15;46687:114;46754:6;46788:5;46782:12;46772:22;;46687:114;;;:::o;46807:184::-;46906:11;46940:6;46935:3;46928:19;46980:4;46975:3;46971:14;46956:29;;46807:184;;;;:::o;46997:132::-;47064:4;47087:3;47079:11;;47117:4;47112:3;47108:14;47100:22;;46997:132;;;:::o;47135:108::-;47212:24;47230:5;47212:24;:::i;:::-;47207:3;47200:37;47135:108;;:::o;47249:179::-;47318:10;47339:46;47381:3;47373:6;47339:46;:::i;:::-;47417:4;47412:3;47408:14;47394:28;;47249:179;;;;:::o;47434:113::-;47504:4;47536;47531:3;47527:14;47519:22;;47434:113;;;:::o;47583:732::-;47702:3;47731:54;47779:5;47731:54;:::i;:::-;47801:86;47880:6;47875:3;47801:86;:::i;:::-;47794:93;;47911:56;47961:5;47911:56;:::i;:::-;47990:7;48021:1;48006:284;48031:6;48028:1;48025:13;48006:284;;;48107:6;48101:13;48134:63;48193:3;48178:13;48134:63;:::i;:::-;48127:70;;48220:60;48273:6;48220:60;:::i;:::-;48210:70;;48066:224;48053:1;48050;48046:9;48041:14;;48006:284;;;48010:14;48306:3;48299:10;;47707:608;;;47583:732;;;;:::o;48321:831::-;48584:4;48622:3;48611:9;48607:19;48599:27;;48636:71;48704:1;48693:9;48689:17;48680:6;48636:71;:::i;:::-;48717:80;48793:2;48782:9;48778:18;48769:6;48717:80;:::i;:::-;48844:9;48838:4;48834:20;48829:2;48818:9;48814:18;48807:48;48872:108;48975:4;48966:6;48872:108;:::i;:::-;48864:116;;48990:72;49058:2;49047:9;49043:18;49034:6;48990:72;:::i;:::-;49072:73;49140:3;49129:9;49125:19;49116:6;49072:73;:::i;:::-;48321:831;;;;;;;;:::o

Swarm Source

ipfs://accb53bc38ee2e29e0af7405629f6beef82788bf782b9eb7a3ddb51a5caf1f48
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.