ETH Price: $3,349.54 (+0.09%)
 

Overview

Max Total Supply

84,917,782.504388605928024533 VISERION

Holders

60

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
VISERION

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-18
*/

pragma solidity ^0.8.17;
// SPDX-License-Identifier: Unlicensed
interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    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.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by 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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Context {
    //function _msgSender() internal view virtual returns (address payable) {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value : weiValue}(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}



interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address token0, address token1) external view returns (address);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external payable returns (uint[] memory amounts);
    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 WETH() external pure returns (address);
}

contract VISERION is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event TokensBurned(uint256, uint256);
    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public marketPair = address(0);
    IUniswapV2Pair private v2Pair;
    address private feeOne = 0x9592cF0Ea1C0caf34964Bd4911d8EA36f42BeEf4;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    string private _name = "VISERION";
    string private _symbol = "VISERION";
    uint8 private _decimals = 18;
    uint256 private _tTotal = 1e8 * 1e18;
    uint256 public _maxWalletAmount = (_tTotal * 3) / 100;
    bool inSwapAndLiquify;
    uint256 public buyFee = 5;
    uint256 public sellFee = 5;
    address public deployer;
    uint256 public ethPriceToSwap = 0.01 ether; 
    bool public isBurnEnabled = true;
    uint256 public burnFrequencynMinutes = 30;  
    uint256 public burnRateInBasePoints = 100;  //100 = 1%
    uint256 public tokensBurnedSinceLaunch = 0;
    uint public nextLiquidityBurnTimeStamp;

    uint256 totalShare = 50;
    uint256 feeShare = 30;
    uint256 lpShare = 20;
   
    constructor () {
        address tokenOwner = 0x9592cF0Ea1C0caf34964Bd4911d8EA36f42BeEf4;
         _balances[tokenOwner] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[tokenOwner] = true;
        _isExcludedFromFee[feeOne] = true;

        deployer = tokenOwner;
        transferOwnership(deployer);
        emit Transfer(address(0), tokenOwner, _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function setShares(uint256 _feeShar, uint256 _lpShare) public onlyOwner{
        lpShare = _lpShare;
        feeShare = _feeShar;
        totalShare = _lpShare + _feeShar;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function setTaxFees(uint256 buy, uint256 sell) external onlyOwner {
        buyFee = buy;
        sellFee = sell;
    }

   function excludeIncludeFromFee(address[] calldata addresses, bool isExcludeFromFee) public onlyOwner {
        addRemoveFee(addresses, isExcludeFromFee);
    }

   function setBurnSettings(uint256 frequencyInMinutes, uint256 burnBasePoints) external onlyOwner {
        burnFrequencynMinutes = frequencyInMinutes;
        burnRateInBasePoints = burnBasePoints;
    }

    function burnTokensFromLiquidityPool() private lockTheSwap {
        uint liquidity = balanceOf(marketPair);
        uint tokenBurnAmount = liquidity.div(burnRateInBasePoints);
        if(tokenBurnAmount > 0) {
            //burn tokens from LP and update liquidity pool price
            _burn(marketPair, tokenBurnAmount);
            v2Pair.sync();
            tokensBurnedSinceLaunch = tokensBurnedSinceLaunch.add(tokenBurnAmount);
            nextLiquidityBurnTimeStamp = block.timestamp.add(burnFrequencynMinutes.mul(60));
            emit TokensBurned(tokenBurnAmount, nextLiquidityBurnTimeStamp);
        }
    }

    function enableDisableBurnToken(bool _enabled) public onlyOwner {
        isBurnEnabled = _enabled;
    }

    function burnTokens() external {
        require(block.timestamp >= nextLiquidityBurnTimeStamp, "Next burn time is not due yet, be patient");
        require(isBurnEnabled, "Burning tokens is currently disabled");
        burnTokensFromLiquidityPool();
    }

    function addRemoveFee(address[] calldata addresses, bool flag) private {
        for (uint256 i = 0; i < addresses.length; i++) {
            address addr = addresses[i];
            _isExcludedFromFee[addr] = flag;
        }
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        _tTotal = _tTotal.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }
    
    function openTrading(address _pair) external onlyOwner() {
        require(marketPair == address(0),"UniswapV2Pair has already been set");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        marketPair = _pair; 
        v2Pair = IUniswapV2Pair(marketPair);
        nextLiquidityBurnTimeStamp = block.timestamp;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function setMaxWalletAmount(uint256 maxWalletAmount) external onlyOwner() {
        _maxWalletAmount = maxWalletAmount;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        bool takeFees = !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && from != owner() && to != owner();
        if(from != deployer && to != deployer && from != address(this) && to != address(this)) {
            if(takeFees) {
                if (from == marketPair) {
                    taxAmount = amount.mul(buyFee).div(100);
                    uint256 amountToHolder = amount.sub(taxAmount);
                    uint256 holderBalance = balanceOf(to).add(amountToHolder);
                    require(holderBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit");
                }
                if (from != marketPair && to == marketPair) {
                    if(block.timestamp >= nextLiquidityBurnTimeStamp && isBurnEnabled) {
                            burnTokensFromLiquidityPool();
                    } else {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            
                                uint256 tokenAmount = getTokenPrice();
                                if (contractTokenBalance >= tokenAmount && !inSwapAndLiquify) {
                                    swapTokensForEth(tokenAmount);
                                }
                            }
                        }
                }
                if (from != marketPair && to != marketPair) {
                    uint256 fromBalance = balanceOf(from);
                    uint256 toBalance = balanceOf(to);
                    require(fromBalance <= _maxWalletAmount && toBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit");
                }
            }
        }       
        uint256 transferAmount = amount.sub(taxAmount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(transferAmount);
        _balances[address(this)] = _balances[address(this)].add(taxAmount);
        emit Transfer(from, to, transferAmount);
    }

    function manualSwap() external {
        uint256 contractTokenBalance = balanceOf(address(this));
        if (contractTokenBalance > 0) {
            if (!inSwapAndLiquify) {
                swapTokensForEth(contractTokenBalance);
            }
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth

        uint256 lpTokens = (tokenAmount * lpShare) / totalShare;
        uint256 feeTokens = (tokenAmount * feeShare) / totalShare;

        uint256 beforeBalance;

        if(lpTokens > 0){
            uint256 firstHalf = lpTokens / 2;
            uint256 secondHalf = lpTokens - firstHalf;
            beforeBalance = address(this).balance;
            swapToETH(firstHalf);
            if(address(this).balance > beforeBalance){
                addLiquidity(secondHalf, address(this).balance - beforeBalance);
            }
        }          

        if(feeTokens > 0) {
            swapToETH(feeTokens);
            if(address(this).balance > 0) {
                uint256 ethBalance = address(this).balance;
                payable(feeOne).transfer(ethBalance);
            }
        }
   }

    function swapToETH(uint256 tokensAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokensAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokensAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);
 
        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this),
            block.timestamp
        );
    }

    function getTokenPrice() public view returns (uint256)  {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        return uniswapV2Router.getAmountsOut(ethPriceToSwap, path)[1];
    }

    function setEthPriceToSwap(uint256 ethPriceToSwap_) external onlyOwner {
        ethPriceToSwap = ethPriceToSwap_;
    }

    receive() external payable {}

    function sendEth() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        payable(msg.sender).transfer(ethBalance);
    }

    function sendERC20Tokens(address contractAddress) external onlyOwner {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(msg.sender, balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFrequencynMinutes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRateInBasePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"enableDisableBurnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethPriceToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"isExcludeFromFee","type":"bool"}],"name":"excludeIncludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextLiquidityBurnTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"sendERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frequencyInMinutes","type":"uint256"},{"internalType":"uint256","name":"burnBasePoints","type":"uint256"}],"name":"setBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethPriceToSwap_","type":"uint256"}],"name":"setEthPriceToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeShar","type":"uint256"},{"internalType":"uint256","name":"_lpShare","type":"uint256"}],"name":"setShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensBurnedSinceLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739592cf0ea1c0caf34964bd4911d8ea36f42beef4600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600881526020017f5649534552494f4e0000000000000000000000000000000000000000000000008152506008908162000136919062000af8565b506040518060400160405280600881526020017f5649534552494f4e000000000000000000000000000000000000000000000000815250600990816200017d919062000af8565b506012600a60006101000a81548160ff021916908360ff1602179055506a52b7d2dcc80cd2e4000000600b5560646003600b54620001bc919062000c0e565b620001c8919062000c88565b600c556005600e556005600f55662386f26fc100006011556001601260006101000a81548160ff021916908315150217905550601e601355606460145560006015556032601755601e60185560146019553480156200022657600080fd5b506000620002396200067e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000739592cf0ea1c0caf34964bd4911d8ea36f42beef49050600b54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760006200034c6200068660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200060d601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620006af60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200066f919062000cd1565b60405180910390a35062000e09565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006bf6200067e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200074f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007469062000d4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620007c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b89062000de7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200090057607f821691505b602082108103620009165762000915620008b8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000941565b6200098c868362000941565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009d9620009d3620009cd84620009a4565b620009ae565b620009a4565b9050919050565b6000819050919050565b620009f583620009b8565b62000a0d62000a0482620009e0565b8484546200094e565b825550505050565b600090565b62000a2462000a15565b62000a31818484620009ea565b505050565b5b8181101562000a595762000a4d60008262000a1a565b60018101905062000a37565b5050565b601f82111562000aa85762000a72816200091c565b62000a7d8462000931565b8101602085101562000a8d578190505b62000aa562000a9c8562000931565b83018262000a36565b50505b505050565b600082821c905092915050565b600062000acd6000198460080262000aad565b1980831691505092915050565b600062000ae8838362000aba565b9150826002028217905092915050565b62000b03826200087e565b67ffffffffffffffff81111562000b1f5762000b1e62000889565b5b62000b2b8254620008e7565b62000b3882828562000a5d565b600060209050601f83116001811462000b70576000841562000b5b578287015190505b62000b67858262000ada565b86555062000bd7565b601f19841662000b80866200091c565b60005b8281101562000baa5784890151825560018201915060208501945060208101905062000b83565b8683101562000bca578489015162000bc6601f89168262000aba565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c1b82620009a4565b915062000c2883620009a4565b925082820262000c3881620009a4565b9150828204841483151762000c525762000c5162000bdf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c9582620009a4565b915062000ca283620009a4565b92508262000cb55762000cb462000c59565b5b828204905092915050565b62000ccb81620009a4565b82525050565b600060208201905062000ce8600083018462000cc0565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d3760208362000cee565b915062000d448262000cff565b602082019050919050565b6000602082019050818103600083015262000d6a8162000d28565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000dcf60268362000cee565b915062000ddc8262000d71565b604082019050919050565b6000602082019050818103600083015262000e028162000dc0565b9050919050565b6147d68062000e196000396000f3fe60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461084a578063d9058bd514610875578063dc13b31c1461089e578063dd62ed3e146108c9578063f2fde38b1461090657610246565b806395d89b4114610753578063a457c2d71461077e578063a9059cbb146107bb578063b2abbbc4146107f8578063ca72a4e71461082157610246565b806370a08231116100f257806370a0823114610682578063715018a6146106bf578063794ac149146106d657806381230a83146106ff5780638da5cb5b1461072857610246565b806350faa48f146105ad57806351bc3c85146105d85780635342acb4146105ef57806354a5df1f1461062c5780636c0a24eb1461065757610246565b806327a14fc2116101bc578063441d801f11610180578063441d801f146104d85780634706240214610501578063482e53ff1461052c57806348fad638146105575780634b94f50e1461058257610246565b806327a14fc2146103f35780632aca3e7d1461041c5780632b14ca5614610445578063313ce56714610470578063395093511461049b57610246565b8063139196f711610203578063139196f71461030c5780631694505e1461033557806318160ddd146103605780631f61fd5a1461038b57806323b872dd146103b657610246565b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b8578063095ea7b3146102cf57610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061092f565b005b34801561026e57600080fd5b50610277610a13565b604051610284919061342d565b60405180910390f35b34801561029957600080fd5b506102a2610aa5565b6040516102af919061346a565b60405180910390f35b3480156102c457600080fd5b506102cd610ab8565b005b3480156102db57600080fd5b506102f660048036038101906102f1919061352d565b610b56565b604051610303919061346a565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061356d565b610b74565b005b34801561034157600080fd5b5061034a610d10565b60405161035791906135f9565b60405180910390f35b34801561036c57600080fd5b50610375610d36565b6040516103829190613623565b60405180910390f35b34801561039757600080fd5b506103a0610d40565b6040516103ad9190613623565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061363e565b610d46565b6040516103ea919061346a565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613691565b610e1f565b005b34801561042857600080fd5b50610443600480360381019061043e91906136be565b610ebe565b005b34801561045157600080fd5b5061045a610f77565b6040516104679190613623565b60405180910390f35b34801561047c57600080fd5b50610485610f7d565b604051610492919061371a565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd919061352d565b610f94565b6040516104cf919061346a565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906137c6565b611047565b005b34801561050d57600080fd5b506105166110ec565b6040516105239190613623565b60405180910390f35b34801561053857600080fd5b506105416110f2565b60405161054e9190613623565b60405180910390f35b34801561056357600080fd5b5061056c6110f8565b6040516105799190613623565b60405180910390f35b34801561058e57600080fd5b506105976110fe565b6040516105a49190613623565b60405180910390f35b3480156105b957600080fd5b506105c2611341565b6040516105cf9190613835565b60405180910390f35b3480156105e457600080fd5b506105ed611367565b005b3480156105fb57600080fd5b506106166004803603810190610611919061356d565b61139f565b604051610623919061346a565b60405180910390f35b34801561063857600080fd5b506106416113f5565b60405161064e9190613623565b60405180910390f35b34801561066357600080fd5b5061066c6113fb565b6040516106799190613623565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061356d565b611401565b6040516106b69190613623565b60405180910390f35b3480156106cb57600080fd5b506106d461144a565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613850565b61159d565b005b34801561070b57600080fd5b50610726600480360381019061072191906136be565b61164f565b005b34801561073457600080fd5b5061073d6116f6565b60405161074a9190613835565b60405180910390f35b34801561075f57600080fd5b5061076861171f565b604051610775919061342d565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a0919061352d565b6117b1565b6040516107b2919061346a565b60405180910390f35b3480156107c757600080fd5b506107e260048036038101906107dd919061352d565b61187e565b6040516107ef919061346a565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613691565b61189c565b005b34801561082d57600080fd5b506108486004803603810190610843919061356d565b61193b565b005b34801561085657600080fd5b5061085f611b3e565b60405161086c9190613835565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906136be565b611b64565b005b3480156108aa57600080fd5b506108b3611c0b565b6040516108c09190613623565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061387d565b611c11565b6040516108fd9190613623565b60405180910390f35b34801561091257600080fd5b5061092d6004803603810190610928919061356d565b611c98565b005b610937611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90613909565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a0f573d6000803e3d6000fd5b5050565b606060088054610a2290613958565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90613958565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b601654421015610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af4906139fb565b60405180910390fd5b601260009054906101000a900460ff16610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390613a8d565b60405180910390fd5b610b54611e61565b565b6000610b6a610b63611e59565b848461201f565b6001905092915050565b610b7c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090613909565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c499190613835565b602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190613ac2565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cc7929190613aef565b6020604051808303816000875af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190613b2d565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60135481565b6000610d538484846121e8565b610e1484610d5f611e59565b610e0f8560405180606001604052806028815260200161475460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dc5611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b600190509392505050565b610e27611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613909565b60405180910390fd5b80600c8190555050565b610ec6611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613909565b60405180910390fd5b80601981905550816018819055508181610f6d9190613b89565b6017819055505050565b600f5481565b6000600a60009054906101000a900460ff16905090565b600061103d610fa1611e59565b846110388560066000610fb2611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b61201f565b6001905092915050565b61104f611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390613909565b60405180910390fd5b6110e7838383612baf565b505050565b600e5481565b60145481565b60165481565b600080600267ffffffffffffffff81111561111c5761111b613bbd565b5b60405190808252806020026020018201604052801561114a5781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de9190613c01565b816000815181106111f2576111f1613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061124157611240613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601154836040518363ffffffff1660e01b81526004016112da929190613d1b565b600060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113209190613e5a565b60018151811061133357611332613c2e565b5b602002602001015191505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061137230611401565b9050600081111561139c57600d60009054906101000a900460ff1661139b5761139a81612c5a565b5b5b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611452611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115a5611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613909565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b611657611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613909565b60405180910390fd5b81600e8190555080600f819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606009805461172e90613958565b80601f016020809104026020016040519081016040528092919081815260200182805461175a90613958565b80156117a75780601f1061177c576101008083540402835291602001916117a7565b820191906000526020600020905b81548152906001019060200180831161178a57829003601f168201915b5050505050905090565b60006118746117be611e59565b8461186f8560405180606001604052806025815260200161477c60259139600660006117e8611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b6001905092915050565b600061189261188b611e59565b84846121e8565b6001905092915050565b6118a4611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613909565b60405180910390fd5b8060118190555050565b611943611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613f15565b60405180910390fd5b611a9030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461201f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260168190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613909565b60405180910390fd5b81601381905550806014819055505050565b60155481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ca0611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613fa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6001600d60006101000a81548160ff0219169083151502179055506000611ea9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611401565b90506000611ec260145483612d8290919063ffffffff16565b9050600081111561200057611ef9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612dcc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f6357600080fd5b505af1158015611f77573d6000803e3d6000fd5b50505050611f9081601554612b5190919063ffffffff16565b601581905550611fbe611faf603c601354612f5590919063ffffffff16565b42612b5190919063ffffffff16565b6016819055507f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d81601654604051611ff7929190613fc7565b60405180910390a15b50506000600d60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590614062565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906140f4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121db9190613623565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90614186565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90614218565b60405180910390fd5b60008111612309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612300906142aa565b60405180910390fd5b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b05750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ef57506123bf6116f6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561242e57506123fe6116f6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124dc5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561254c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128aa5780156128a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612654576125d460646125c6600e5486612f5590919063ffffffff16565b612d8290919063ffffffff16565b915060006125eb8385612fcf90919063ffffffff16565b9050600061260a826125fc88611401565b612b5190919063ffffffff16565b9050600c54811115612651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126489061433c565b60405180910390fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ff5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156127875760165442101580156127225750601260009054906101000a900460ff165b156127345761272f611e61565b612786565b600061273f30611401565b905060008111156127845760006127546110fe565b90508082101580156127735750600d60009054906101000a900460ff16155b156127825761278181612c5a565b5b505b505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156128335750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128a857600061284386611401565b9050600061285086611401565b9050600c5482111580156128665750600c548111155b6128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c9061433c565b60405180910390fd5b50505b5b5b60006128bf8385612fcf90919063ffffffff16565b905061291384600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a881600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3d83600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612add9190613623565b60405180910390a3505050505050565b6000838311158290612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c919061342d565b60405180910390fd5b5060008385612b44919061435c565b9050809150509392505050565b6000808284612b609190613b89565b905083811015612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c906143dc565b60405180910390fd5b8091505092915050565b60005b83839050811015612c54576000848483818110612bd257612bd1613c2e565b5b9050602002016020810190612be7919061356d565b905082600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612c4c906143fc565b915050612bb2565b50505050565b600060175460195483612c6d9190614444565b612c7791906144b5565b9050600060175460185484612c8c9190614444565b612c9691906144b5565b9050600080831115612cf0576000600284612cb191906144b5565b905060008185612cc1919061435c565b9050479250612ccf82613019565b82471115612ced57612cec818447612ce7919061435c565b61325c565b5b50505b6000821115612d7c57612d0282613019565b6000471115612d7b576000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d78573d6000803e3d6000fd5b50505b5b50505050565b6000612dc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3290614558565b60405180910390fd5b612e5081600b54612fcf90919063ffffffff16565b600b81905550612ea881600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f499190613623565b60405180910390a35050565b6000808303612f675760009050612fc9565b60008284612f759190614444565b9050828482612f8491906144b5565b14612fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbb906145ea565b60405180910390fd5b809150505b92915050565b600061301183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aed565b905092915050565b6000600267ffffffffffffffff81111561303657613035613bbd565b5b6040519080825280602002602001820160405280156130645781602001602082028036833780820191505090505b509050308160008151811061307c5761307b613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131479190613c01565b8160018151811061315b5761315a613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131c230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613226959493929190614645565b600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050505050565b61328930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016132f09695949392919061469f565b60606040518083038185885af115801561330e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133339190614700565b5050505050565b60008083118290613381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613378919061342d565b60405180910390fd5b506000838561339091906144b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d75780820151818401526020810190506133bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ff8261339d565b61340981856133a8565b93506134198185602086016133b9565b613422816133e3565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b60008115159050919050565b6134648161344f565b82525050565b600060208201905061347f600083018461345b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c482613499565b9050919050565b6134d4816134b9565b81146134df57600080fd5b50565b6000813590506134f1816134cb565b92915050565b6000819050919050565b61350a816134f7565b811461351557600080fd5b50565b60008135905061352781613501565b92915050565b600080604083850312156135445761354361348f565b5b6000613552858286016134e2565b925050602061356385828601613518565b9150509250929050565b6000602082840312156135835761358261348f565b5b6000613591848285016134e2565b91505092915050565b6000819050919050565b60006135bf6135ba6135b584613499565b61359a565b613499565b9050919050565b60006135d1826135a4565b9050919050565b60006135e3826135c6565b9050919050565b6135f3816135d8565b82525050565b600060208201905061360e60008301846135ea565b92915050565b61361d816134f7565b82525050565b60006020820190506136386000830184613614565b92915050565b6000806000606084860312156136575761365661348f565b5b6000613665868287016134e2565b9350506020613676868287016134e2565b925050604061368786828701613518565b9150509250925092565b6000602082840312156136a7576136a661348f565b5b60006136b584828501613518565b91505092915050565b600080604083850312156136d5576136d461348f565b5b60006136e385828601613518565b92505060206136f485828601613518565b9150509250929050565b600060ff82169050919050565b613714816136fe565b82525050565b600060208201905061372f600083018461370b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261375a57613759613735565b5b8235905067ffffffffffffffff8111156137775761377661373a565b5b6020830191508360208202830111156137935761379261373f565b5b9250929050565b6137a38161344f565b81146137ae57600080fd5b50565b6000813590506137c08161379a565b92915050565b6000806000604084860312156137df576137de61348f565b5b600084013567ffffffffffffffff8111156137fd576137fc613494565b5b61380986828701613744565b9350935050602061381c868287016137b1565b9150509250925092565b61382f816134b9565b82525050565b600060208201905061384a6000830184613826565b92915050565b6000602082840312156138665761386561348f565b5b6000613874848285016137b1565b91505092915050565b600080604083850312156138945761389361348f565b5b60006138a2858286016134e2565b92505060206138b3858286016134e2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f36020836133a8565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061397057607f821691505b60208210810361398357613982613929565b5b50919050565b7f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260008201527f652070617469656e740000000000000000000000000000000000000000000000602082015250565b60006139e56029836133a8565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4275726e696e6720746f6b656e732069732063757272656e746c79206469736160008201527f626c656400000000000000000000000000000000000000000000000000000000602082015250565b6000613a776024836133a8565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b600081519050613abc81613501565b92915050565b600060208284031215613ad857613ad761348f565b5b6000613ae684828501613aad565b91505092915050565b6000604082019050613b046000830185613826565b613b116020830184613614565b9392505050565b600081519050613b278161379a565b92915050565b600060208284031215613b4357613b4261348f565b5b6000613b5184828501613b18565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b94826134f7565b9150613b9f836134f7565b9250828201905080821115613bb757613bb6613b5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bfb816134cb565b92915050565b600060208284031215613c1757613c1661348f565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c92816134b9565b82525050565b6000613ca48383613c89565b60208301905092915050565b6000602082019050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613cdd83613c79565b8060005b83811015613d0e578151613cf58882613c98565b9750613d0083613cb0565b925050600181019050613ce1565b5085935050505092915050565b6000604082019050613d306000830185613614565b8181036020830152613d428184613cbd565b90509392505050565b613d54826133e3565b810181811067ffffffffffffffff82111715613d7357613d72613bbd565b5b80604052505050565b6000613d86613485565b9050613d928282613d4b565b919050565b600067ffffffffffffffff821115613db257613db1613bbd565b5b602082029050602081019050919050565b6000613dd6613dd184613d97565b613d7c565b90508083825260208201905060208402830185811115613df957613df861373f565b5b835b81811015613e225780613e0e8882613aad565b845260208401935050602081019050613dfb565b5050509392505050565b600082601f830112613e4157613e40613735565b5b8151613e51848260208601613dc3565b91505092915050565b600060208284031215613e7057613e6f61348f565b5b600082015167ffffffffffffffff811115613e8e57613e8d613494565b5b613e9a84828501613e2c565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eff6022836133a8565b9150613f0a82613ea3565b604082019050919050565b60006020820190508181036000830152613f2e81613ef2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f916026836133a8565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b6000604082019050613fdc6000830185613614565b613fe96020830184613614565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404c6024836133a8565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140de6022836133a8565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836133a8565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142026023836133a8565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142946029836133a8565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006143266025836133a8565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b6000614367826134f7565b9150614372836134f7565b925082820390508181111561438a57614389613b5a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143c6601b836133a8565b91506143d182614390565b602082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b6000614407826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443957614438613b5a565b5b600182019050919050565b600061444f826134f7565b915061445a836134f7565b9250828202614468816134f7565b9150828204841483151761447f5761447e613b5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144c0826134f7565b91506144cb836134f7565b9250826144db576144da614486565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006145426021836133a8565b915061454d826144e6565b604082019050919050565b6000602082019050818103600083015261457181614535565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d46021836133a8565b91506145df82614578565b604082019050919050565b60006020820190508181036000830152614603816145c7565b9050919050565b6000819050919050565b600061462f61462a6146258461460a565b61359a565b6134f7565b9050919050565b61463f81614614565b82525050565b600060a08201905061465a6000830188613614565b6146676020830187614636565b81810360408301526146798186613cbd565b90506146886060830185613826565b6146956080830184613614565b9695505050505050565b600060c0820190506146b46000830189613826565b6146c16020830188613614565b6146ce6040830187614636565b6146db6060830186614636565b6146e86080830185613826565b6146f560a0830184613614565b979650505050505050565b6000806000606084860312156147195761471861348f565b5b600061472786828701613aad565b935050602061473886828701613aad565b925050604061474986828701613aad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220797121d09eac82ef07469b8aef07aa55b54f2295454de208d89e1692b7b1adc864736f6c63430008110033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461084a578063d9058bd514610875578063dc13b31c1461089e578063dd62ed3e146108c9578063f2fde38b1461090657610246565b806395d89b4114610753578063a457c2d71461077e578063a9059cbb146107bb578063b2abbbc4146107f8578063ca72a4e71461082157610246565b806370a08231116100f257806370a0823114610682578063715018a6146106bf578063794ac149146106d657806381230a83146106ff5780638da5cb5b1461072857610246565b806350faa48f146105ad57806351bc3c85146105d85780635342acb4146105ef57806354a5df1f1461062c5780636c0a24eb1461065757610246565b806327a14fc2116101bc578063441d801f11610180578063441d801f146104d85780634706240214610501578063482e53ff1461052c57806348fad638146105575780634b94f50e1461058257610246565b806327a14fc2146103f35780632aca3e7d1461041c5780632b14ca5614610445578063313ce56714610470578063395093511461049b57610246565b8063139196f711610203578063139196f71461030c5780631694505e1461033557806318160ddd146103605780631f61fd5a1461038b57806323b872dd146103b657610246565b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b8578063095ea7b3146102cf57610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061092f565b005b34801561026e57600080fd5b50610277610a13565b604051610284919061342d565b60405180910390f35b34801561029957600080fd5b506102a2610aa5565b6040516102af919061346a565b60405180910390f35b3480156102c457600080fd5b506102cd610ab8565b005b3480156102db57600080fd5b506102f660048036038101906102f1919061352d565b610b56565b604051610303919061346a565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061356d565b610b74565b005b34801561034157600080fd5b5061034a610d10565b60405161035791906135f9565b60405180910390f35b34801561036c57600080fd5b50610375610d36565b6040516103829190613623565b60405180910390f35b34801561039757600080fd5b506103a0610d40565b6040516103ad9190613623565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061363e565b610d46565b6040516103ea919061346a565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613691565b610e1f565b005b34801561042857600080fd5b50610443600480360381019061043e91906136be565b610ebe565b005b34801561045157600080fd5b5061045a610f77565b6040516104679190613623565b60405180910390f35b34801561047c57600080fd5b50610485610f7d565b604051610492919061371a565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd919061352d565b610f94565b6040516104cf919061346a565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906137c6565b611047565b005b34801561050d57600080fd5b506105166110ec565b6040516105239190613623565b60405180910390f35b34801561053857600080fd5b506105416110f2565b60405161054e9190613623565b60405180910390f35b34801561056357600080fd5b5061056c6110f8565b6040516105799190613623565b60405180910390f35b34801561058e57600080fd5b506105976110fe565b6040516105a49190613623565b60405180910390f35b3480156105b957600080fd5b506105c2611341565b6040516105cf9190613835565b60405180910390f35b3480156105e457600080fd5b506105ed611367565b005b3480156105fb57600080fd5b506106166004803603810190610611919061356d565b61139f565b604051610623919061346a565b60405180910390f35b34801561063857600080fd5b506106416113f5565b60405161064e9190613623565b60405180910390f35b34801561066357600080fd5b5061066c6113fb565b6040516106799190613623565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061356d565b611401565b6040516106b69190613623565b60405180910390f35b3480156106cb57600080fd5b506106d461144a565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613850565b61159d565b005b34801561070b57600080fd5b50610726600480360381019061072191906136be565b61164f565b005b34801561073457600080fd5b5061073d6116f6565b60405161074a9190613835565b60405180910390f35b34801561075f57600080fd5b5061076861171f565b604051610775919061342d565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a0919061352d565b6117b1565b6040516107b2919061346a565b60405180910390f35b3480156107c757600080fd5b506107e260048036038101906107dd919061352d565b61187e565b6040516107ef919061346a565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613691565b61189c565b005b34801561082d57600080fd5b506108486004803603810190610843919061356d565b61193b565b005b34801561085657600080fd5b5061085f611b3e565b60405161086c9190613835565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906136be565b611b64565b005b3480156108aa57600080fd5b506108b3611c0b565b6040516108c09190613623565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061387d565b611c11565b6040516108fd9190613623565b60405180910390f35b34801561091257600080fd5b5061092d6004803603810190610928919061356d565b611c98565b005b610937611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90613909565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a0f573d6000803e3d6000fd5b5050565b606060088054610a2290613958565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90613958565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b601654421015610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af4906139fb565b60405180910390fd5b601260009054906101000a900460ff16610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390613a8d565b60405180910390fd5b610b54611e61565b565b6000610b6a610b63611e59565b848461201f565b6001905092915050565b610b7c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090613909565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c499190613835565b602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190613ac2565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cc7929190613aef565b6020604051808303816000875af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190613b2d565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60135481565b6000610d538484846121e8565b610e1484610d5f611e59565b610e0f8560405180606001604052806028815260200161475460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dc5611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b600190509392505050565b610e27611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613909565b60405180910390fd5b80600c8190555050565b610ec6611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613909565b60405180910390fd5b80601981905550816018819055508181610f6d9190613b89565b6017819055505050565b600f5481565b6000600a60009054906101000a900460ff16905090565b600061103d610fa1611e59565b846110388560066000610fb2611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b61201f565b6001905092915050565b61104f611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390613909565b60405180910390fd5b6110e7838383612baf565b505050565b600e5481565b60145481565b60165481565b600080600267ffffffffffffffff81111561111c5761111b613bbd565b5b60405190808252806020026020018201604052801561114a5781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de9190613c01565b816000815181106111f2576111f1613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061124157611240613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601154836040518363ffffffff1660e01b81526004016112da929190613d1b565b600060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113209190613e5a565b60018151811061133357611332613c2e565b5b602002602001015191505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061137230611401565b9050600081111561139c57600d60009054906101000a900460ff1661139b5761139a81612c5a565b5b5b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611452611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115a5611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613909565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b611657611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613909565b60405180910390fd5b81600e8190555080600f819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606009805461172e90613958565b80601f016020809104026020016040519081016040528092919081815260200182805461175a90613958565b80156117a75780601f1061177c576101008083540402835291602001916117a7565b820191906000526020600020905b81548152906001019060200180831161178a57829003601f168201915b5050505050905090565b60006118746117be611e59565b8461186f8560405180606001604052806025815260200161477c60259139600660006117e8611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b6001905092915050565b600061189261188b611e59565b84846121e8565b6001905092915050565b6118a4611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613909565b60405180910390fd5b8060118190555050565b611943611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613f15565b60405180910390fd5b611a9030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461201f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260168190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613909565b60405180910390fd5b81601381905550806014819055505050565b60155481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ca0611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613fa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6001600d60006101000a81548160ff0219169083151502179055506000611ea9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611401565b90506000611ec260145483612d8290919063ffffffff16565b9050600081111561200057611ef9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612dcc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f6357600080fd5b505af1158015611f77573d6000803e3d6000fd5b50505050611f9081601554612b5190919063ffffffff16565b601581905550611fbe611faf603c601354612f5590919063ffffffff16565b42612b5190919063ffffffff16565b6016819055507f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d81601654604051611ff7929190613fc7565b60405180910390a15b50506000600d60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590614062565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906140f4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121db9190613623565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90614186565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90614218565b60405180910390fd5b60008111612309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612300906142aa565b60405180910390fd5b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b05750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ef57506123bf6116f6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561242e57506123fe6116f6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124dc5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561254c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128aa5780156128a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612654576125d460646125c6600e5486612f5590919063ffffffff16565b612d8290919063ffffffff16565b915060006125eb8385612fcf90919063ffffffff16565b9050600061260a826125fc88611401565b612b5190919063ffffffff16565b9050600c54811115612651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126489061433c565b60405180910390fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ff5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156127875760165442101580156127225750601260009054906101000a900460ff165b156127345761272f611e61565b612786565b600061273f30611401565b905060008111156127845760006127546110fe565b90508082101580156127735750600d60009054906101000a900460ff16155b156127825761278181612c5a565b5b505b505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156128335750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128a857600061284386611401565b9050600061285086611401565b9050600c5482111580156128665750600c548111155b6128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c9061433c565b60405180910390fd5b50505b5b5b60006128bf8385612fcf90919063ffffffff16565b905061291384600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a881600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3d83600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612add9190613623565b60405180910390a3505050505050565b6000838311158290612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c919061342d565b60405180910390fd5b5060008385612b44919061435c565b9050809150509392505050565b6000808284612b609190613b89565b905083811015612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c906143dc565b60405180910390fd5b8091505092915050565b60005b83839050811015612c54576000848483818110612bd257612bd1613c2e565b5b9050602002016020810190612be7919061356d565b905082600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612c4c906143fc565b915050612bb2565b50505050565b600060175460195483612c6d9190614444565b612c7791906144b5565b9050600060175460185484612c8c9190614444565b612c9691906144b5565b9050600080831115612cf0576000600284612cb191906144b5565b905060008185612cc1919061435c565b9050479250612ccf82613019565b82471115612ced57612cec818447612ce7919061435c565b61325c565b5b50505b6000821115612d7c57612d0282613019565b6000471115612d7b576000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d78573d6000803e3d6000fd5b50505b5b50505050565b6000612dc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3290614558565b60405180910390fd5b612e5081600b54612fcf90919063ffffffff16565b600b81905550612ea881600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f499190613623565b60405180910390a35050565b6000808303612f675760009050612fc9565b60008284612f759190614444565b9050828482612f8491906144b5565b14612fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbb906145ea565b60405180910390fd5b809150505b92915050565b600061301183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aed565b905092915050565b6000600267ffffffffffffffff81111561303657613035613bbd565b5b6040519080825280602002602001820160405280156130645781602001602082028036833780820191505090505b509050308160008151811061307c5761307b613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131479190613c01565b8160018151811061315b5761315a613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131c230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613226959493929190614645565b600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050505050565b61328930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016132f09695949392919061469f565b60606040518083038185885af115801561330e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133339190614700565b5050505050565b60008083118290613381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613378919061342d565b60405180910390fd5b506000838561339091906144b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d75780820151818401526020810190506133bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ff8261339d565b61340981856133a8565b93506134198185602086016133b9565b613422816133e3565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b60008115159050919050565b6134648161344f565b82525050565b600060208201905061347f600083018461345b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c482613499565b9050919050565b6134d4816134b9565b81146134df57600080fd5b50565b6000813590506134f1816134cb565b92915050565b6000819050919050565b61350a816134f7565b811461351557600080fd5b50565b60008135905061352781613501565b92915050565b600080604083850312156135445761354361348f565b5b6000613552858286016134e2565b925050602061356385828601613518565b9150509250929050565b6000602082840312156135835761358261348f565b5b6000613591848285016134e2565b91505092915050565b6000819050919050565b60006135bf6135ba6135b584613499565b61359a565b613499565b9050919050565b60006135d1826135a4565b9050919050565b60006135e3826135c6565b9050919050565b6135f3816135d8565b82525050565b600060208201905061360e60008301846135ea565b92915050565b61361d816134f7565b82525050565b60006020820190506136386000830184613614565b92915050565b6000806000606084860312156136575761365661348f565b5b6000613665868287016134e2565b9350506020613676868287016134e2565b925050604061368786828701613518565b9150509250925092565b6000602082840312156136a7576136a661348f565b5b60006136b584828501613518565b91505092915050565b600080604083850312156136d5576136d461348f565b5b60006136e385828601613518565b92505060206136f485828601613518565b9150509250929050565b600060ff82169050919050565b613714816136fe565b82525050565b600060208201905061372f600083018461370b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261375a57613759613735565b5b8235905067ffffffffffffffff8111156137775761377661373a565b5b6020830191508360208202830111156137935761379261373f565b5b9250929050565b6137a38161344f565b81146137ae57600080fd5b50565b6000813590506137c08161379a565b92915050565b6000806000604084860312156137df576137de61348f565b5b600084013567ffffffffffffffff8111156137fd576137fc613494565b5b61380986828701613744565b9350935050602061381c868287016137b1565b9150509250925092565b61382f816134b9565b82525050565b600060208201905061384a6000830184613826565b92915050565b6000602082840312156138665761386561348f565b5b6000613874848285016137b1565b91505092915050565b600080604083850312156138945761389361348f565b5b60006138a2858286016134e2565b92505060206138b3858286016134e2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f36020836133a8565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061397057607f821691505b60208210810361398357613982613929565b5b50919050565b7f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260008201527f652070617469656e740000000000000000000000000000000000000000000000602082015250565b60006139e56029836133a8565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4275726e696e6720746f6b656e732069732063757272656e746c79206469736160008201527f626c656400000000000000000000000000000000000000000000000000000000602082015250565b6000613a776024836133a8565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b600081519050613abc81613501565b92915050565b600060208284031215613ad857613ad761348f565b5b6000613ae684828501613aad565b91505092915050565b6000604082019050613b046000830185613826565b613b116020830184613614565b9392505050565b600081519050613b278161379a565b92915050565b600060208284031215613b4357613b4261348f565b5b6000613b5184828501613b18565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b94826134f7565b9150613b9f836134f7565b9250828201905080821115613bb757613bb6613b5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bfb816134cb565b92915050565b600060208284031215613c1757613c1661348f565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c92816134b9565b82525050565b6000613ca48383613c89565b60208301905092915050565b6000602082019050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613cdd83613c79565b8060005b83811015613d0e578151613cf58882613c98565b9750613d0083613cb0565b925050600181019050613ce1565b5085935050505092915050565b6000604082019050613d306000830185613614565b8181036020830152613d428184613cbd565b90509392505050565b613d54826133e3565b810181811067ffffffffffffffff82111715613d7357613d72613bbd565b5b80604052505050565b6000613d86613485565b9050613d928282613d4b565b919050565b600067ffffffffffffffff821115613db257613db1613bbd565b5b602082029050602081019050919050565b6000613dd6613dd184613d97565b613d7c565b90508083825260208201905060208402830185811115613df957613df861373f565b5b835b81811015613e225780613e0e8882613aad565b845260208401935050602081019050613dfb565b5050509392505050565b600082601f830112613e4157613e40613735565b5b8151613e51848260208601613dc3565b91505092915050565b600060208284031215613e7057613e6f61348f565b5b600082015167ffffffffffffffff811115613e8e57613e8d613494565b5b613e9a84828501613e2c565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eff6022836133a8565b9150613f0a82613ea3565b604082019050919050565b60006020820190508181036000830152613f2e81613ef2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f916026836133a8565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b6000604082019050613fdc6000830185613614565b613fe96020830184613614565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404c6024836133a8565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140de6022836133a8565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836133a8565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142026023836133a8565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142946029836133a8565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006143266025836133a8565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b6000614367826134f7565b9150614372836134f7565b925082820390508181111561438a57614389613b5a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143c6601b836133a8565b91506143d182614390565b602082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b6000614407826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443957614438613b5a565b5b600182019050919050565b600061444f826134f7565b915061445a836134f7565b9250828202614468816134f7565b9150828204841483151761447f5761447e613b5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144c0826134f7565b91506144cb836134f7565b9250826144db576144da614486565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006145426021836133a8565b915061454d826144e6565b604082019050919050565b6000602082019050818103600083015261457181614535565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d46021836133a8565b91506145df82614578565b604082019050919050565b60006020820190508181036000830152614603816145c7565b9050919050565b6000819050919050565b600061462f61462a6146258461460a565b61359a565b6134f7565b9050919050565b61463f81614614565b82525050565b600060a08201905061465a6000830188613614565b6146676020830187614636565b81810360408301526146798186613cbd565b90506146886060830185613826565b6146956080830184613614565b9695505050505050565b600060c0820190506146b46000830189613826565b6146c16020830188613614565b6146ce6040830187614636565b6146db6060830186614636565b6146e86080830185613826565b6146f560a0830184613614565b979650505050505050565b6000806000606084860312156147195761471861348f565b5b600061472786828701613aad565b935050602061473886828701613aad565b925050604061474986828701613aad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220797121d09eac82ef07469b8aef07aa55b54f2295454de208d89e1692b7b1adc864736f6c63430008110033

Deployed Bytecode Sourcemap

11432:12562:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23587:150;;;;;;;;;;;;;:::i;:::-;;13464:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12554:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16743:262;;;;;;;;;;;;;:::i;:::-;;14297:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23745:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11709:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13741:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14655:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18049:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14466:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12441:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13650:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14976:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15608:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12409:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12643:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12752:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23148:264;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11822:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20924:267;;;;;;;;;;;;;:::i;:::-;;17917:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12504:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13844:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:148;;;;;;;;;;;;;:::i;:::-;;16628:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15479:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6292:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13555:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15202:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13971:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23420:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17563:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12474:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15776:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12703:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14146:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23587:150;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23636:18:::1;23657:21;23636:42;;23697:10;23689:28;;:40;23718:10;23689:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;23625:112;23587:150::o:0;13464:83::-;13501:13;13534:5;13527:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13464:83;:::o;12554:32::-;;;;;;;;;;;;;:::o;16743:262::-;16812:26;;16793:15;:45;;16785:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;16903:13;;;;;;;;;;;16895:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;16968:29;:27;:29::i;:::-;16743:262::o;14297:161::-;14372:4;14389:39;14398:12;:10;:12::i;:::-;14412:7;14421:6;14389:8;:39::i;:::-;14446:4;14439:11;;14297:161;;;;:::o;23745:246::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23825:17:::1;23852:15;23825:43;;23879:15;23897:10;:20;;;23926:4;23897:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23879:53;;23943:10;:19;;;23963:10;23975:7;23943:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23814:177;;23745:246:::0;:::o;11709:106::-;;;;;;;;;;;;;:::o;13741:95::-;13794:7;13821;;13814:14;;13741:95;:::o;12593:41::-;;;;:::o;14655:313::-;14753:4;14770:36;14780:6;14788:9;14799:6;14770:9;:36::i;:::-;14817:121;14826:6;14834:12;:10;:12::i;:::-;14848:89;14886:6;14848:89;;;;;;;;;;;;;;;;;:11;:19;14860:6;14848:19;;;;;;;;;;;;;;;:33;14868:12;:10;:12::i;:::-;14848:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14817:8;:121::i;:::-;14956:4;14949:11;;14655:313;;;;;:::o;18049:127::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18153:15:::1;18134:16;:34;;;;18049:127:::0;:::o;14466:181::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14558:8:::1;14548:7;:18;;;;14588:8;14577;:19;;;;14631:8;14620;:19;;;;:::i;:::-;14607:10;:32;;;;14466:181:::0;;:::o;12441:26::-;;;;:::o;13650:83::-;13691:5;13716:9;;;;;;;;;;;13709:16;;13650:83;:::o;14976:218::-;15064:4;15081:83;15090:12;:10;:12::i;:::-;15104:7;15113:50;15152:10;15113:11;:25;15125:12;:10;:12::i;:::-;15113:25;;;;;;;;;;;;;;;:34;15139:7;15113:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15081:8;:83::i;:::-;15182:4;15175:11;;14976:218;;;;:::o;15608:161::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15720:41:::1;15733:9;;15744:16;15720:12;:41::i;:::-;15608:161:::0;;;:::o;12409:25::-;;;;:::o;12643:41::-;;;;:::o;12752:38::-;;;;:::o;23148:264::-;23194:7;23215:21;23253:1;23239:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23215:40;;23276:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23266:4;23271:1;23266:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23327:4;23309;23314:1;23309:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23350:15;;;;;;;;;;;:29;;;23380:14;;23396:4;23350:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23402:1;23350:54;;;;;;;;:::i;:::-;;;;;;;;23343:61;;;23148:264;:::o;11822:38::-;;;;;;;;;;;;;:::o;20924:267::-;20966:28;20997:24;21015:4;20997:9;:24::i;:::-;20966:55;;21059:1;21036:20;:24;21032:152;;;21082:16;;;;;;;;;;;21077:96;;21119:38;21136:20;21119:16;:38::i;:::-;21077:96;21032:152;20955:236;20924:267::o;17917:124::-;17982:4;18006:18;:27;18025:7;18006:27;;;;;;;;;;;;;;;;;;;;;;;;;17999:34;;17917:124;;;:::o;12504:42::-;;;;:::o;12321:53::-;;;;:::o;13844:119::-;13910:7;13937:9;:18;13947:7;13937:18;;;;;;;;;;;;;;;;13930:25;;13844:119;;;:::o;6506:148::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6613:1:::1;6576:40;;6597:6;::::0;::::1;;;;;;;;6576:40;;;;;;;;;;;;6644:1;6627:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6506:148::o:0;16628:107::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16719:8:::1;16703:13;;:24;;;;;;;;;;;;;;;;;;16628:107:::0;:::o;15479:122::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15565:3:::1;15556:6;:12;;;;15589:4;15579:7;:14;;;;15479:122:::0;;:::o;6292:79::-;6330:7;6357:6;;;;;;;;;;;6350:13;;6292:79;:::o;13555:87::-;13594:13;13627:7;13620:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13555:87;:::o;15202:269::-;15295:4;15312:129;15321:12;:10;:12::i;:::-;15335:7;15344:96;15383:15;15344:96;;;;;;;;;;;;;;;;;:11;:25;15356:12;:10;:12::i;:::-;15344:25;;;;;;;;;;;;;;;:34;15370:7;15344:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15312:8;:129::i;:::-;15459:4;15452:11;;15202:269;;;;:::o;13971:167::-;14049:4;14066:42;14076:12;:10;:12::i;:::-;14090:9;14101:6;14066:9;:42::i;:::-;14126:4;14119:11;;13971:167;;;;:::o;23420:122::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23519:15:::1;23502:14;:32;;;;23420:122:::0;:::o;17563:346::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17661:1:::1;17639:24;;:10;;;;;;;;;;;:24;;;17631:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17712:58;17729:4;17744:15;;;;;;;;;;;17762:7;;17712:8;:58::i;:::-;17794:5;17781:10;;:18;;;;;;;;;;;;;;;;;;17835:10;;;;;;;;;;;17811:6;;:35;;;;;;;;;;;;;;;;;;17886:15;17857:26;:44;;;;17563:346:::0;:::o;12474:23::-;;;;;;;;;;;;;:::o;15776:205::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15907:18:::1;15883:21;:42;;;;15959:14;15936:20;:37;;;;15776:205:::0;;:::o;12703:42::-;;;;:::o;14146:143::-;14227:7;14254:11;:18;14266:5;14254:18;;;;;;;;;;;;;;;:27;14273:7;14254:27;;;;;;;;;;;;;;;;14247:34;;14146:143;;;;:::o;6662:244::-;6429:12;:10;:12::i;:::-;6419:22;;:6;;;;;;;;;;:22;;;6411:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6771:1:::1;6751:22;;:8;:22;;::::0;6743:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6861:8;6832:38;;6853:6;::::0;::::1;;;;;;;;6832:38;;;;;;;;;;;;6890:8;6881:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6662:244:::0;:::o;2634:98::-;2687:7;2714:10;2707:17;;2634:98;:::o;15989:631::-;11601:4;11582:16;;:23;;;;;;;;;;;;;;;;;;16059:14:::1;16076:21;16086:10;;;;;;;;;;;16076:9;:21::i;:::-;16059:38;;16108:20;16131:35;16145:20;;16131:9;:13;;:35;;;;:::i;:::-;16108:58;;16198:1;16180:15;:19;16177:436;;;16283:34;16289:10;;;;;;;;;;;16301:15;16283:5;:34::i;:::-;16332:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16386:44;16414:15;16386:23;;:27;;:44;;;;:::i;:::-;16360:23;:70;;;;16474:50;16494:29;16520:2;16494:21;;:25;;:29;;;;:::i;:::-;16474:15;:19;;:50;;;;:::i;:::-;16445:26;:79;;;;16544:57;16557:15;16574:26;;16544:57;;;;;;;:::i;:::-;;;;;;;;16177:436;16048:572;;11647:5:::0;11628:16;;:24;;;;;;;;;;;;;;;;;;15989:631::o;18184:337::-;18294:1;18277:19;;:5;:19;;;18269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18375:1;18356:21;;:7;:21;;;18348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18459:6;18429:11;:18;18441:5;18429:18;;;;;;;;;;;;;;;:27;18448:7;18429:27;;;;;;;;;;;;;;;:36;;;;18497:7;18481:32;;18490:5;18481:32;;;18506:6;18481:32;;;;;;:::i;:::-;;;;;;;;18184:337;;;:::o;18529:2387::-;18633:1;18617:18;;:4;:18;;;18609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18710:1;18696:16;;:2;:16;;;18688:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18780:1;18771:6;:10;18763:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18838:17;18870:13;18887:18;:24;18906:4;18887:24;;;;;;;;;;;;;;;;;;;;;;;;;18886:25;:52;;;;;18916:18;:22;18935:2;18916:22;;;;;;;;;;;;;;;;;;;;;;;;;18915:23;18886:52;:71;;;;;18950:7;:5;:7::i;:::-;18942:15;;:4;:15;;;;18886:71;:88;;;;;18967:7;:5;:7::i;:::-;18961:13;;:2;:13;;;;18886:88;18870:104;;18996:8;;;;;;;;;;;18988:16;;:4;:16;;;;:34;;;;;19014:8;;;;;;;;;;;19008:14;;:2;:14;;;;18988:34;:59;;;;;19042:4;19026:21;;:4;:21;;;;18988:59;:82;;;;;19065:4;19051:19;;:2;:19;;;;18988:82;18985:1617;;;19090:8;19087:1504;;;19131:10;;;;;;;;;;;19123:18;;:4;:18;;;19119:361;;19178:27;19201:3;19178:18;19189:6;;19178;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;19166:39;;19228:22;19253:21;19264:9;19253:6;:10;;:21;;;;:::i;:::-;19228:46;;19297:21;19321:33;19339:14;19321:13;19331:2;19321:9;:13::i;:::-;:17;;:33;;;;:::i;:::-;19297:57;;19402:16;;19385:13;:33;;19377:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;19143:337;;19119:361;19510:10;;;;;;;;;;;19502:18;;:4;:18;;;;:38;;;;;19530:10;;;;;;;;;;;19524:16;;:2;:16;;;19502:38;19498:743;;;19587:26;;19568:15;:45;;:62;;;;;19617:13;;;;;;;;;;;19568:62;19565:657;;;19663:29;:27;:29::i;:::-;19565:657;;;19749:28;19780:24;19798:4;19780:9;:24::i;:::-;19749:55;;19858:1;19835:20;:24;19831:364;;;19926:19;19948:15;:13;:15::i;:::-;19926:37;;20026:11;20002:20;:35;;:56;;;;;20042:16;;;;;;;;;;;20041:17;20002:56;19998:166;;;20099:29;20116:11;20099:16;:29::i;:::-;19998:166;19861:334;19831:364;19722:500;19565:657;19498:743;20271:10;;;;;;;;;;;20263:18;;:4;:18;;;;:38;;;;;20291:10;;;;;;;;;;;20285:16;;:2;:16;;;;20263:38;20259:317;;;20326:19;20348:15;20358:4;20348:9;:15::i;:::-;20326:37;;20386:17;20406:13;20416:2;20406:9;:13::i;:::-;20386:33;;20465:16;;20450:11;:31;;:64;;;;;20498:16;;20485:9;:29;;20450:64;20442:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;20303:273;;20259:317;19087:1504;18985:1617;20619:22;20644:21;20655:9;20644:6;:10;;:21;;;;:::i;:::-;20619:46;;20694:27;20714:6;20694:9;:15;20704:4;20694:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;20676:9;:15;20686:4;20676:15;;;;;;;;;;;;;;;:45;;;;20748:33;20766:14;20748:9;:13;20758:2;20748:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;20732:9;:13;20742:2;20732:13;;;;;;;;;;;;;;;:49;;;;20819:39;20848:9;20819;:24;20837:4;20819:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20792:9;:24;20810:4;20792:24;;;;;;;;;;;;;;;:66;;;;20889:2;20874:34;;20883:4;20874:34;;;20893:14;20874:34;;;;;;:::i;:::-;;;;;;;;18598:2318;;;18529:2387;;;:::o;1106:192::-;1192:7;1225:1;1220;:6;;1228:12;1212:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1252:9;1268:1;1264;:5;;;;:::i;:::-;1252:17;;1289:1;1282:8;;;1106:192;;;;;:::o;773:181::-;831:7;851:9;867:1;863;:5;;;;:::i;:::-;851:17;;892:1;887;:6;;879:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;945:1;938:8;;;773:181;;;;:::o;17013:236::-;17100:9;17095:147;17119:9;;:16;;17115:1;:20;17095:147;;;17157:12;17172:9;;17182:1;17172:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17157:27;;17226:4;17199:18;:24;17218:4;17199:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;17142:100;17137:3;;;;;:::i;:::-;;;;17095:147;;;;17013:236;;;:::o;21199:938::-;21327:16;21372:10;;21361:7;;21347:11;:21;;;;:::i;:::-;21346:36;;;;:::i;:::-;21327:55;;21393:17;21440:10;;21428:8;;21414:11;:22;;;;:::i;:::-;21413:37;;;;:::i;:::-;21393:57;;21463:21;21511:1;21500:8;:12;21497:371;;;21528:17;21559:1;21548:8;:12;;;;:::i;:::-;21528:32;;21575:18;21607:9;21596:8;:20;;;;:::i;:::-;21575:41;;21647:21;21631:37;;21683:20;21693:9;21683;:20::i;:::-;21745:13;21721:21;:37;21718:139;;;21778:63;21791:10;21827:13;21803:21;:37;;;;:::i;:::-;21778:12;:63::i;:::-;21718:139;21513:355;;21497:371;21905:1;21893:9;:13;21890:241;;;21923:20;21933:9;21923;:20::i;:::-;21985:1;21961:21;:25;21958:162;;;22007:18;22028:21;22007:42;;22076:6;;;;;;;;;;;22068:24;;:36;22093:10;22068:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21988:132;21958:162;21890:241;21254:883;;;21199:938;:::o;1785:132::-;1843:7;1870:39;1874:1;1877;1870:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1863:46;;1785:132;;;;:::o;17257:294::-;17351:1;17332:21;;:7;:21;;;17324:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17412:18;17424:5;17412:7;;:11;;:18;;;;:::i;:::-;17402:7;:28;;;;17462:29;17485:5;17462:9;:18;17472:7;17462:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;17441:9;:18;17451:7;17441:18;;;;;;;;;;;;;;;:50;;;;17533:1;17507:36;;17516:7;17507:36;;;17537:5;17507:36;;;;;;:::i;:::-;;;;;;;;17257:294;;:::o;1306:471::-;1364:7;1614:1;1609;:6;1605:47;;1639:1;1632:8;;;;1605:47;1664:9;1680:1;1676;:5;;;;:::i;:::-;1664:17;;1709:1;1704;1700;:5;;;;:::i;:::-;:10;1692:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1768:1;1761:8;;;1306:471;;;;;:::o;962:136::-;1020:7;1047:43;1051:1;1054;1047:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1040:50;;962:136;;;;:::o;22145:467::-;22205:21;22243:1;22229:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22205:40;;22274:4;22256;22261:1;22256:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22300:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22290:4;22295:1;22290:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22333:63;22350:4;22365:15;;;;;;;;;;;22383:12;22333:8;:63::i;:::-;22407:15;;;;;;;;;;;:66;;;22488:12;22515:1;22531:4;22558;22578:15;22407:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22194:418;22145:467;:::o;22620:520::-;22768:62;22785:4;22800:15;;;;;;;;;;;22818:11;22768:8;:62::i;:::-;22874:15;;;;;;;;;;;:31;;;22913:9;22946:4;22966:11;22992:1;23035;23086:4;23106:15;22874:258;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22620:520;;:::o;1925:278::-;2011:7;2043:1;2039;:5;2046:12;2031:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2070:9;2086:1;2082;:5;;;;:::i;:::-;2070:17;;2194:1;2187:8;;;1925:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:90::-;1383:7;1426:5;1419:13;1412:21;1401:32;;1349:90;;;:::o;1445:109::-;1526:21;1541:5;1526:21;:::i;:::-;1521:3;1514:34;1445:109;;:::o;1560:210::-;1647:4;1685:2;1674:9;1670:18;1662:26;;1698:65;1760:1;1749:9;1745:17;1736:6;1698:65;:::i;:::-;1560:210;;;;:::o;1776:75::-;1809:6;1842:2;1836:9;1826:19;;1776:75;:::o;1857:117::-;1966:1;1963;1956:12;1980:117;2089:1;2086;2079:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:329::-;5790:6;5839:2;5827:9;5818:7;5814:23;5810:32;5807:119;;;5845:79;;:::i;:::-;5807:119;5965:1;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5936:117;5731:329;;;;:::o;6066:474::-;6134:6;6142;6191:2;6179:9;6170:7;6166:23;6162:32;6159:119;;;6197:79;;:::i;:::-;6159:119;6317:1;6342:53;6387:7;6378:6;6367:9;6363:22;6342:53;:::i;:::-;6332:63;;6288:117;6444:2;6470:53;6515:7;6506:6;6495:9;6491:22;6470:53;:::i;:::-;6460:63;;6415:118;6066:474;;;;;:::o;6546:86::-;6581:7;6621:4;6614:5;6610:16;6599:27;;6546:86;;;:::o;6638:112::-;6721:22;6737:5;6721:22;:::i;:::-;6716:3;6709:35;6638:112;;:::o;6756:214::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:67;6960:1;6949:9;6945:17;6936:6;6896:67;:::i;:::-;6756:214;;;;:::o;6976:117::-;7085:1;7082;7075:12;7099:117;7208:1;7205;7198:12;7222:117;7331:1;7328;7321:12;7362:568;7435:8;7445:6;7495:3;7488:4;7480:6;7476:17;7472:27;7462:122;;7503:79;;:::i;:::-;7462:122;7616:6;7603:20;7593:30;;7646:18;7638:6;7635:30;7632:117;;;7668:79;;:::i;:::-;7632:117;7782:4;7774:6;7770:17;7758:29;;7836:3;7828:4;7820:6;7816:17;7806:8;7802:32;7799:41;7796:128;;;7843:79;;:::i;:::-;7796:128;7362:568;;;;;:::o;7936:116::-;8006:21;8021:5;8006:21;:::i;:::-;7999:5;7996:32;7986:60;;8042:1;8039;8032:12;7986:60;7936:116;:::o;8058:133::-;8101:5;8139:6;8126:20;8117:29;;8155:30;8179:5;8155:30;:::i;:::-;8058:133;;;;:::o;8197:698::-;8289:6;8297;8305;8354:2;8342:9;8333:7;8329:23;8325:32;8322:119;;;8360:79;;:::i;:::-;8322:119;8508:1;8497:9;8493:17;8480:31;8538:18;8530:6;8527:30;8524:117;;;8560:79;;:::i;:::-;8524:117;8673:80;8745:7;8736:6;8725:9;8721:22;8673:80;:::i;:::-;8655:98;;;;8451:312;8802:2;8828:50;8870:7;8861:6;8850:9;8846:22;8828:50;:::i;:::-;8818:60;;8773:115;8197:698;;;;;:::o;8901:118::-;8988:24;9006:5;8988:24;:::i;:::-;8983:3;8976:37;8901:118;;:::o;9025:222::-;9118:4;9156:2;9145:9;9141:18;9133:26;;9169:71;9237:1;9226:9;9222:17;9213:6;9169:71;:::i;:::-;9025:222;;;;:::o;9253:323::-;9309:6;9358:2;9346:9;9337:7;9333:23;9329:32;9326:119;;;9364:79;;:::i;:::-;9326:119;9484:1;9509:50;9551:7;9542:6;9531:9;9527:22;9509:50;:::i;:::-;9499:60;;9455:114;9253:323;;;;:::o;9582:474::-;9650:6;9658;9707:2;9695:9;9686:7;9682:23;9678:32;9675:119;;;9713:79;;:::i;:::-;9675:119;9833:1;9858:53;9903:7;9894:6;9883:9;9879:22;9858:53;:::i;:::-;9848:63;;9804:117;9960:2;9986:53;10031:7;10022:6;10011:9;10007:22;9986:53;:::i;:::-;9976:63;;9931:118;9582:474;;;;;:::o;10062:182::-;10202:34;10198:1;10190:6;10186:14;10179:58;10062:182;:::o;10250:366::-;10392:3;10413:67;10477:2;10472:3;10413:67;:::i;:::-;10406:74;;10489:93;10578:3;10489:93;:::i;:::-;10607:2;10602:3;10598:12;10591:19;;10250:366;;;:::o;10622:419::-;10788:4;10826:2;10815:9;10811:18;10803:26;;10875:9;10869:4;10865:20;10861:1;10850:9;10846:17;10839:47;10903:131;11029:4;10903:131;:::i;:::-;10895:139;;10622:419;;;:::o;11047:180::-;11095:77;11092:1;11085:88;11192:4;11189:1;11182:15;11216:4;11213:1;11206:15;11233:320;11277:6;11314:1;11308:4;11304:12;11294:22;;11361:1;11355:4;11351:12;11382:18;11372:81;;11438:4;11430:6;11426:17;11416:27;;11372:81;11500:2;11492:6;11489:14;11469:18;11466:38;11463:84;;11519:18;;:::i;:::-;11463:84;11284:269;11233:320;;;:::o;11559:228::-;11699:34;11695:1;11687:6;11683:14;11676:58;11768:11;11763:2;11755:6;11751:15;11744:36;11559:228;:::o;11793:366::-;11935:3;11956:67;12020:2;12015:3;11956:67;:::i;:::-;11949:74;;12032:93;12121:3;12032:93;:::i;:::-;12150:2;12145:3;12141:12;12134:19;;11793:366;;;:::o;12165:419::-;12331:4;12369:2;12358:9;12354:18;12346:26;;12418:9;12412:4;12408:20;12404:1;12393:9;12389:17;12382:47;12446:131;12572:4;12446:131;:::i;:::-;12438:139;;12165:419;;;:::o;12590:223::-;12730:34;12726:1;12718:6;12714:14;12707:58;12799:6;12794:2;12786:6;12782:15;12775:31;12590:223;:::o;12819:366::-;12961:3;12982:67;13046:2;13041:3;12982:67;:::i;:::-;12975:74;;13058:93;13147:3;13058:93;:::i;:::-;13176:2;13171:3;13167:12;13160:19;;12819:366;;;:::o;13191:419::-;13357:4;13395:2;13384:9;13380:18;13372:26;;13444:9;13438:4;13434:20;13430:1;13419:9;13415:17;13408:47;13472:131;13598:4;13472:131;:::i;:::-;13464:139;;13191:419;;;:::o;13616:143::-;13673:5;13704:6;13698:13;13689:22;;13720:33;13747:5;13720:33;:::i;:::-;13616:143;;;;:::o;13765:351::-;13835:6;13884:2;13872:9;13863:7;13859:23;13855:32;13852:119;;;13890:79;;:::i;:::-;13852:119;14010:1;14035:64;14091:7;14082:6;14071:9;14067:22;14035:64;:::i;:::-;14025:74;;13981:128;13765:351;;;;:::o;14122:332::-;14243:4;14281:2;14270:9;14266:18;14258:26;;14294:71;14362:1;14351:9;14347:17;14338:6;14294:71;:::i;:::-;14375:72;14443:2;14432:9;14428:18;14419:6;14375:72;:::i;:::-;14122:332;;;;;:::o;14460:137::-;14514:5;14545:6;14539:13;14530:22;;14561:30;14585:5;14561:30;:::i;:::-;14460:137;;;;:::o;14603:345::-;14670:6;14719:2;14707:9;14698:7;14694:23;14690:32;14687:119;;;14725:79;;:::i;:::-;14687:119;14845:1;14870:61;14923:7;14914:6;14903:9;14899:22;14870:61;:::i;:::-;14860:71;;14816:125;14603:345;;;;:::o;14954:180::-;15002:77;14999:1;14992:88;15099:4;15096:1;15089:15;15123:4;15120:1;15113:15;15140:191;15180:3;15199:20;15217:1;15199:20;:::i;:::-;15194:25;;15233:20;15251:1;15233:20;:::i;:::-;15228:25;;15276:1;15273;15269:9;15262:16;;15297:3;15294:1;15291:10;15288:36;;;15304:18;;:::i;:::-;15288:36;15140:191;;;;:::o;15337:180::-;15385:77;15382:1;15375:88;15482:4;15479:1;15472:15;15506:4;15503:1;15496:15;15523:143;15580:5;15611:6;15605:13;15596:22;;15627:33;15654:5;15627:33;:::i;:::-;15523:143;;;;:::o;15672:351::-;15742:6;15791:2;15779:9;15770:7;15766:23;15762:32;15759:119;;;15797:79;;:::i;:::-;15759:119;15917:1;15942:64;15998:7;15989:6;15978:9;15974:22;15942:64;:::i;:::-;15932:74;;15888:128;15672:351;;;;:::o;16029:180::-;16077:77;16074:1;16067:88;16174:4;16171:1;16164:15;16198:4;16195:1;16188:15;16215:114;16282:6;16316:5;16310:12;16300:22;;16215:114;;;:::o;16335:184::-;16434:11;16468:6;16463:3;16456:19;16508:4;16503:3;16499:14;16484:29;;16335:184;;;;:::o;16525:132::-;16592:4;16615:3;16607:11;;16645:4;16640:3;16636:14;16628:22;;16525:132;;;:::o;16663:108::-;16740:24;16758:5;16740:24;:::i;:::-;16735:3;16728:37;16663:108;;:::o;16777:179::-;16846:10;16867:46;16909:3;16901:6;16867:46;:::i;:::-;16945:4;16940:3;16936:14;16922:28;;16777:179;;;;:::o;16962:113::-;17032:4;17064;17059:3;17055:14;17047:22;;16962:113;;;:::o;17111:732::-;17230:3;17259:54;17307:5;17259:54;:::i;:::-;17329:86;17408:6;17403:3;17329:86;:::i;:::-;17322:93;;17439:56;17489:5;17439:56;:::i;:::-;17518:7;17549:1;17534:284;17559:6;17556:1;17553:13;17534:284;;;17635:6;17629:13;17662:63;17721:3;17706:13;17662:63;:::i;:::-;17655:70;;17748:60;17801:6;17748:60;:::i;:::-;17738:70;;17594:224;17581:1;17578;17574:9;17569:14;;17534:284;;;17538:14;17834:3;17827:10;;17235:608;;;17111:732;;;;:::o;17849:483::-;18020:4;18058:2;18047:9;18043:18;18035:26;;18071:71;18139:1;18128:9;18124:17;18115:6;18071:71;:::i;:::-;18189:9;18183:4;18179:20;18174:2;18163:9;18159:18;18152:48;18217:108;18320:4;18311:6;18217:108;:::i;:::-;18209:116;;17849:483;;;;;:::o;18338:281::-;18421:27;18443:4;18421:27;:::i;:::-;18413:6;18409:40;18551:6;18539:10;18536:22;18515:18;18503:10;18500:34;18497:62;18494:88;;;18562:18;;:::i;:::-;18494:88;18602:10;18598:2;18591:22;18381:238;18338:281;;:::o;18625:129::-;18659:6;18686:20;;:::i;:::-;18676:30;;18715:33;18743:4;18735:6;18715:33;:::i;:::-;18625:129;;;:::o;18760:311::-;18837:4;18927:18;18919:6;18916:30;18913:56;;;18949:18;;:::i;:::-;18913:56;18999:4;18991:6;18987:17;18979:25;;19059:4;19053;19049:15;19041:23;;18760:311;;;:::o;19094:732::-;19201:5;19226:81;19242:64;19299:6;19242:64;:::i;:::-;19226:81;:::i;:::-;19217:90;;19327:5;19356:6;19349:5;19342:21;19390:4;19383:5;19379:16;19372:23;;19443:4;19435:6;19431:17;19423:6;19419:30;19472:3;19464:6;19461:15;19458:122;;;19491:79;;:::i;:::-;19458:122;19606:6;19589:231;19623:6;19618:3;19615:15;19589:231;;;19698:3;19727:48;19771:3;19759:10;19727:48;:::i;:::-;19722:3;19715:61;19805:4;19800:3;19796:14;19789:21;;19665:155;19649:4;19644:3;19640:14;19633:21;;19589:231;;;19593:21;19207:619;;19094:732;;;;;:::o;19849:385::-;19931:5;19980:3;19973:4;19965:6;19961:17;19957:27;19947:122;;19988:79;;:::i;:::-;19947:122;20098:6;20092:13;20123:105;20224:3;20216:6;20209:4;20201:6;20197:17;20123:105;:::i;:::-;20114:114;;19937:297;19849:385;;;;:::o;20240:554::-;20335:6;20384:2;20372:9;20363:7;20359:23;20355:32;20352:119;;;20390:79;;:::i;:::-;20352:119;20531:1;20520:9;20516:17;20510:24;20561:18;20553:6;20550:30;20547:117;;;20583:79;;:::i;:::-;20547:117;20688:89;20769:7;20760:6;20749:9;20745:22;20688:89;:::i;:::-;20678:99;;20481:306;20240:554;;;;:::o;20800:221::-;20940:34;20936:1;20928:6;20924:14;20917:58;21009:4;21004:2;20996:6;20992:15;20985:29;20800:221;:::o;21027:366::-;21169:3;21190:67;21254:2;21249:3;21190:67;:::i;:::-;21183:74;;21266:93;21355:3;21266:93;:::i;:::-;21384:2;21379:3;21375:12;21368:19;;21027:366;;;:::o;21399:419::-;21565:4;21603:2;21592:9;21588:18;21580:26;;21652:9;21646:4;21642:20;21638:1;21627:9;21623:17;21616:47;21680:131;21806:4;21680:131;:::i;:::-;21672:139;;21399:419;;;:::o;21824:225::-;21964:34;21960:1;21952:6;21948:14;21941:58;22033:8;22028:2;22020:6;22016:15;22009:33;21824:225;:::o;22055:366::-;22197:3;22218:67;22282:2;22277:3;22218:67;:::i;:::-;22211:74;;22294:93;22383:3;22294:93;:::i;:::-;22412:2;22407:3;22403:12;22396:19;;22055:366;;;:::o;22427:419::-;22593:4;22631:2;22620:9;22616:18;22608:26;;22680:9;22674:4;22670:20;22666:1;22655:9;22651:17;22644:47;22708:131;22834:4;22708:131;:::i;:::-;22700:139;;22427:419;;;:::o;22852:332::-;22973:4;23011:2;23000:9;22996:18;22988:26;;23024:71;23092:1;23081:9;23077:17;23068:6;23024:71;:::i;:::-;23105:72;23173:2;23162:9;23158:18;23149:6;23105:72;:::i;:::-;22852:332;;;;;:::o;23190:223::-;23330:34;23326:1;23318:6;23314:14;23307:58;23399:6;23394:2;23386:6;23382:15;23375:31;23190:223;:::o;23419:366::-;23561:3;23582:67;23646:2;23641:3;23582:67;:::i;:::-;23575:74;;23658:93;23747:3;23658:93;:::i;:::-;23776:2;23771:3;23767:12;23760:19;;23419:366;;;:::o;23791:419::-;23957:4;23995:2;23984:9;23980:18;23972:26;;24044:9;24038:4;24034:20;24030:1;24019:9;24015:17;24008:47;24072:131;24198:4;24072:131;:::i;:::-;24064:139;;23791:419;;;:::o;24216:221::-;24356:34;24352:1;24344:6;24340:14;24333:58;24425:4;24420:2;24412:6;24408:15;24401:29;24216:221;:::o;24443:366::-;24585:3;24606:67;24670:2;24665:3;24606:67;:::i;:::-;24599:74;;24682:93;24771:3;24682:93;:::i;:::-;24800:2;24795:3;24791:12;24784:19;;24443:366;;;:::o;24815:419::-;24981:4;25019:2;25008:9;25004:18;24996:26;;25068:9;25062:4;25058:20;25054:1;25043:9;25039:17;25032:47;25096:131;25222:4;25096:131;:::i;:::-;25088:139;;24815:419;;;:::o;25240:224::-;25380:34;25376:1;25368:6;25364:14;25357:58;25449:7;25444:2;25436:6;25432:15;25425:32;25240:224;:::o;25470:366::-;25612:3;25633:67;25697:2;25692:3;25633:67;:::i;:::-;25626:74;;25709:93;25798:3;25709:93;:::i;:::-;25827:2;25822:3;25818:12;25811:19;;25470:366;;;:::o;25842:419::-;26008:4;26046:2;26035:9;26031:18;26023:26;;26095:9;26089:4;26085:20;26081:1;26070:9;26066:17;26059:47;26123:131;26249:4;26123:131;:::i;:::-;26115:139;;25842:419;;;:::o;26267:222::-;26407:34;26403:1;26395:6;26391:14;26384:58;26476:5;26471:2;26463:6;26459:15;26452:30;26267:222;:::o;26495:366::-;26637:3;26658:67;26722:2;26717:3;26658:67;:::i;:::-;26651:74;;26734:93;26823:3;26734:93;:::i;:::-;26852:2;26847:3;26843:12;26836:19;;26495:366;;;:::o;26867:419::-;27033:4;27071:2;27060:9;27056:18;27048:26;;27120:9;27114:4;27110:20;27106:1;27095:9;27091:17;27084:47;27148:131;27274:4;27148:131;:::i;:::-;27140:139;;26867:419;;;:::o;27292:228::-;27432:34;27428:1;27420:6;27416:14;27409:58;27501:11;27496:2;27488:6;27484:15;27477:36;27292:228;:::o;27526:366::-;27668:3;27689:67;27753:2;27748:3;27689:67;:::i;:::-;27682:74;;27765:93;27854:3;27765:93;:::i;:::-;27883:2;27878:3;27874:12;27867:19;;27526:366;;;:::o;27898:419::-;28064:4;28102:2;28091:9;28087:18;28079:26;;28151:9;28145:4;28141:20;28137:1;28126:9;28122:17;28115:47;28179:131;28305:4;28179:131;:::i;:::-;28171:139;;27898:419;;;:::o;28323:224::-;28463:34;28459:1;28451:6;28447:14;28440:58;28532:7;28527:2;28519:6;28515:15;28508:32;28323:224;:::o;28553:366::-;28695:3;28716:67;28780:2;28775:3;28716:67;:::i;:::-;28709:74;;28792:93;28881:3;28792:93;:::i;:::-;28910:2;28905:3;28901:12;28894:19;;28553:366;;;:::o;28925:419::-;29091:4;29129:2;29118:9;29114:18;29106:26;;29178:9;29172:4;29168:20;29164:1;29153:9;29149:17;29142:47;29206:131;29332:4;29206:131;:::i;:::-;29198:139;;28925:419;;;:::o;29350:194::-;29390:4;29410:20;29428:1;29410:20;:::i;:::-;29405:25;;29444:20;29462:1;29444:20;:::i;:::-;29439:25;;29488:1;29485;29481:9;29473:17;;29512:1;29506:4;29503:11;29500:37;;;29517:18;;:::i;:::-;29500:37;29350:194;;;;:::o;29550:177::-;29690:29;29686:1;29678:6;29674:14;29667:53;29550:177;:::o;29733:366::-;29875:3;29896:67;29960:2;29955:3;29896:67;:::i;:::-;29889:74;;29972:93;30061:3;29972:93;:::i;:::-;30090:2;30085:3;30081:12;30074:19;;29733:366;;;:::o;30105:419::-;30271:4;30309:2;30298:9;30294:18;30286:26;;30358:9;30352:4;30348:20;30344:1;30333:9;30329:17;30322:47;30386:131;30512:4;30386:131;:::i;:::-;30378:139;;30105:419;;;:::o;30530:233::-;30569:3;30592:24;30610:5;30592:24;:::i;:::-;30583:33;;30638:66;30631:5;30628:77;30625:103;;30708:18;;:::i;:::-;30625:103;30755:1;30748:5;30744:13;30737:20;;30530:233;;;:::o;30769:410::-;30809:7;30832:20;30850:1;30832:20;:::i;:::-;30827:25;;30866:20;30884:1;30866:20;:::i;:::-;30861:25;;30921:1;30918;30914:9;30943:30;30961:11;30943:30;:::i;:::-;30932:41;;31122:1;31113:7;31109:15;31106:1;31103:22;31083:1;31076:9;31056:83;31033:139;;31152:18;;:::i;:::-;31033:139;30817:362;30769:410;;;;:::o;31185:180::-;31233:77;31230:1;31223:88;31330:4;31327:1;31320:15;31354:4;31351:1;31344:15;31371:185;31411:1;31428:20;31446:1;31428:20;:::i;:::-;31423:25;;31462:20;31480:1;31462:20;:::i;:::-;31457:25;;31501:1;31491:35;;31506:18;;:::i;:::-;31491:35;31548:1;31545;31541:9;31536:14;;31371:185;;;;:::o;31562:220::-;31702:34;31698:1;31690:6;31686:14;31679:58;31771:3;31766:2;31758:6;31754:15;31747:28;31562:220;:::o;31788:366::-;31930:3;31951:67;32015:2;32010:3;31951:67;:::i;:::-;31944:74;;32027:93;32116:3;32027:93;:::i;:::-;32145:2;32140:3;32136:12;32129:19;;31788:366;;;:::o;32160:419::-;32326:4;32364:2;32353:9;32349:18;32341:26;;32413:9;32407:4;32403:20;32399:1;32388:9;32384:17;32377:47;32441:131;32567:4;32441:131;:::i;:::-;32433:139;;32160:419;;;:::o;32585:220::-;32725:34;32721:1;32713:6;32709:14;32702:58;32794:3;32789:2;32781:6;32777:15;32770:28;32585:220;:::o;32811:366::-;32953:3;32974:67;33038:2;33033:3;32974:67;:::i;:::-;32967:74;;33050:93;33139:3;33050:93;:::i;:::-;33168:2;33163:3;33159:12;33152:19;;32811:366;;;:::o;33183:419::-;33349:4;33387:2;33376:9;33372:18;33364:26;;33436:9;33430:4;33426:20;33422:1;33411:9;33407:17;33400:47;33464:131;33590:4;33464:131;:::i;:::-;33456:139;;33183:419;;;:::o;33608:85::-;33653:7;33682:5;33671:16;;33608:85;;;:::o;33699:158::-;33757:9;33790:61;33808:42;33817:32;33843:5;33817:32;:::i;:::-;33808:42;:::i;:::-;33790:61;:::i;:::-;33777:74;;33699:158;;;:::o;33863:147::-;33958:45;33997:5;33958:45;:::i;:::-;33953:3;33946:58;33863:147;;:::o;34016:831::-;34279:4;34317:3;34306:9;34302:19;34294:27;;34331:71;34399:1;34388:9;34384:17;34375:6;34331:71;:::i;:::-;34412:80;34488:2;34477:9;34473:18;34464:6;34412:80;:::i;:::-;34539:9;34533:4;34529:20;34524:2;34513:9;34509:18;34502:48;34567:108;34670:4;34661:6;34567:108;:::i;:::-;34559:116;;34685:72;34753:2;34742:9;34738:18;34729:6;34685:72;:::i;:::-;34767:73;34835:3;34824:9;34820:19;34811:6;34767:73;:::i;:::-;34016:831;;;;;;;;:::o;34853:807::-;35102:4;35140:3;35129:9;35125:19;35117:27;;35154:71;35222:1;35211:9;35207:17;35198:6;35154:71;:::i;:::-;35235:72;35303:2;35292:9;35288:18;35279:6;35235:72;:::i;:::-;35317:80;35393:2;35382:9;35378:18;35369:6;35317:80;:::i;:::-;35407;35483:2;35472:9;35468:18;35459:6;35407:80;:::i;:::-;35497:73;35565:3;35554:9;35550:19;35541:6;35497:73;:::i;:::-;35580;35648:3;35637:9;35633:19;35624:6;35580:73;:::i;:::-;34853:807;;;;;;;;;:::o;35666:663::-;35754:6;35762;35770;35819:2;35807:9;35798:7;35794:23;35790:32;35787:119;;;35825:79;;:::i;:::-;35787:119;35945:1;35970:64;36026:7;36017:6;36006:9;36002:22;35970:64;:::i;:::-;35960:74;;35916:128;36083:2;36109:64;36165:7;36156:6;36145:9;36141:22;36109:64;:::i;:::-;36099:74;;36054:129;36222:2;36248:64;36304:7;36295:6;36284:9;36280:22;36248:64;:::i;:::-;36238:74;;36193:129;35666:663;;;;;:::o

Swarm Source

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