ETH Price: $3,349.11 (-0.96%)

Token

6.9ETH (6.9ETH)
 

Overview

Max Total Supply

69,696,969 6.9ETH

Holders

245

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ilikebananas.eth
Balance
57,311.552973098296856934 6.9ETH

Value
$0.00
0xaacc4ea6188fb9d2f8ffee395fd4a75f7e5518b3
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:
SIXNINEETH

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-26
*/

// SPDX-License-Identifier: MIT

/*

https://twitter.com/theblondebroker/status/1584914077297639425?s=20&t=R8Ld2DbyVcnIqucb7Bi_Nw

*/
 
pragma solidity 0.8.12;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
 
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
 
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);
 
    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);
 
    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
 
 
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;
 
    mapping (address => mapping (address => uint256)) internal _allowances;
 
    uint256 private _totalSupply;
 
    string private _name;
    string private _symbol;
 
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
 
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }
 
    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
 
    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
 
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
 
    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
 
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
 
        return true;
    }
 
 
 
    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
 
    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
 
        return true;
    }
 
    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
 
 
        _beforeTokenTransfer(sender, recipient, amount);
 
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
 
        emit Transfer(sender, recipient, amount);
    }
 
    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _Initiate(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: Initiate to the zero address");
 
        _beforeTokenTransfer(address(0), account, amount);
 
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
 
    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
 
        _beforeTokenTransfer(account, address(0), amount);
 
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
 
        emit Transfer(account, address(0), amount);
    }
 
    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
 
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * Initiateing and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be Initiateed for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}
 
library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
 
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
 
abstract contract Ownable is Context {
    address private _owner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor() {
        _setOwner(_msgSender());
    }
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
 
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
 
interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
 
contract SIXNINEETH is ERC20, Ownable{
    using Address for address payable;
 
    IRouter public router;
    IERC20 public SHIB;	
    address public pair;
 
    bool private swapping;
    bool public swapEnabled;
 
    bool public initialLiquidityAdded; 
    uint256 public liquidityAddedBlock;	
    uint256 public StartFee = 2;  

 
 
    uint256 public genesis_block;
    uint256 public deadblocks = 0;
 
    uint256 public swapThreshold = 6_000 * 10e18;
    uint256 public maxTxAmount = 696_969 * 10**18;
    uint256 public maxWalletAmount = 696_969 * 10**18;
    uint256 discountFactor = 1;
 
    address public marketingWallet = 0x1CFafD9C160a4b5625220c4C2eD9932e8e1DAb8a;
    address public devWallet = 0x1CFafD9C160a4b5625220c4C2eD9932e8e1DAb8a;
 
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
 
    Taxes public taxes = Taxes(2,2,2);
    Taxes public sellTaxes = Taxes(3,3,3);
    uint256 public totTax = 6;
    uint256 public totSellTax = 9;
 
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
 
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor() ERC20("6.9ETH", unicode"6.9ETH") {
        _Initiate(msg.sender, 69_696_969 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;
 
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
 
        router = _router;
        pair = _pair;
        SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); 
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
 
function _transfer(address sender, address recipient, uint256 amount) internal override {
 
 
                require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
         if (!_isblacklist(sender) && !_isblacklist(recipient)) {
        require(!_indeadblock(), "Not allowed in early buy");
         }
 
         bool issell = recipient == pair;
 
         _setdeadblock(issell);  
 
 
 
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
 
        }
 
 
        uint256 fee;
 
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
 
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
 
 
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
 
        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);
 
    }
 
    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
 
            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
 
            uint256 InitiateBalance = address(this).balance;
 
            swapTokensForETH(toSwap);
 
            uint256 deltaBalance = address(this).balance - InitiateBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
 
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
 
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
 
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        _approve(address(this), address(router), tokenAmount);
 
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
 
    }
 
    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);
 
        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }
 
    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }
 
    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }
 
	function isblacklist(address account) public view returns (bool) {	
        return _isblacklist(account);	
    }	
    function _isblacklist(address sender) internal view returns (bool) {	
        return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000;	
    }
 
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
 
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }
 
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
 
        function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
        }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
 
 
    function delBot(address account) external {
        require (msg.sender == marketingWallet);
        isBot[account] = false;
    }

    function updateBuyTaxes(uint256 liquidity, uint256 dev, uint256 marketing) external onlyOwner {
        taxes.liquidity = liquidity;
        taxes.dev = dev;
        taxes.marketing = marketing;
        totTax = liquidity+dev+marketing;
    }

   function updateSellTaxes(uint256 liquidity, uint256 dev, uint256 marketing) external onlyOwner {
        sellTaxes.liquidity = liquidity;
        sellTaxes.dev = dev;
        sellTaxes.marketing = marketing;
        totSellTax = liquidity+dev+marketing;
    }

    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }

    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

	// Set early buy limit	
    function _setdeadblock(bool issell) private {	
        if (!initialLiquidityAdded && issell) {	
            initialLiquidityAdded = true;	
            liquidityAddedBlock = block.number;	
        }	
    }	
    function _indeadblock() private view returns (bool) {	
        return block.number <= liquidityAddedBlock + StartFee;	
    }
 
    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
 
    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }
 
    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }
 
    // fallbacks
    receive() external payable {}
 
}

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":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":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":[{"internalType":"address","name":"account","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","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":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","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":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"updateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600a556000600c55690cb49b44ba602d800000600d55699396c3e3fff9dc840000600e55699396c3e3fff9dc840000600f556001601055731cfafd9c160a4b5625220c4c2ed9932e8e1dab8a601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731cfafd9c160a4b5625220c4c2ed9932e8e1dab8a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060028152602001600281526020016002815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600381526020016003815260200160038152506016600082015181600001556020820151816001015560408201518160020155505060066019556009601a553480156200017e57600080fd5b506040518060400160405280600681526020017f362e3945544800000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f362e394554480000000000000000000000000000000000000000000000000000815250816003908051906020019062000203929190620008c5565b5080600490805190602001906200021c929190620008c5565b5050506200023f620002336200068460201b60201c565b6200068c60201b60201c565b6200027f33620002546200075260201b60201c565b600a62000262919062000b0f565b6304277dc962000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b6149398062000e446000396000f3fe6080604052600436106102b25760003560e01c80638c0b5e2211610175578063aacebbe3116100dc578063dd62ed3e11610095578063e545fd6d1161006f578063e545fd6d14610ac1578063f2fde38b14610aea578063f66895a314610b13578063f887ea4014610b40576102b9565b8063dd62ed3e14610a30578063e01af92c14610a6d578063e24b85e714610a96576102b9565b8063aacebbe314610924578063b4337b4e1461094d578063bcff895a14610976578063c18bc195146109a1578063d34628cc146109ca578063dbe66ca0146109f3576102b9565b80639d0014b11161012e5780639d0014b1146108025780639e252f001461082b578063a457c2d714610854578063a8aa1b3114610891578063a9059cbb146108bc578063aa4bde28146108f9576102b9565b80638c0b5e22146107045780638c374ac11461072f5780638cd4426d146107585780638da5cb5b146107815780638ea5220f146107ac57806395d89b41146107d7576102b9565b8063395093511161021957806370a08231116101d257806370a08231146105f0578063715018a61461062d578063728f8eea1461064457806373bd699a14610671578063743584981461069c57806375f0a874146106d9576102b9565b806339509351146104e057806340b28c2f1461051d57806350c9a88f1461054657806356b4286d146105715780636256d1811461059c5780636ddd1713146105c5576102b9565b806323b872dd1161026b57806323b872dd146103d057806326b5d32f1461040d578063273123b714610436578063274a533c1461045f578063293b7ef41461048a578063313ce567146104b5576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b31461031457806318160ddd146103515780631816467f1461037c5780632253163d146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b6b565b6040516102e091906133f9565b60405180910390f35b3480156102f557600080fd5b506102fe610b71565b60405161030b91906134ad565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061356d565b610c03565b60405161034891906135c8565b60405180910390f35b34801561035d57600080fd5b50610366610c21565b60405161037391906133f9565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906135e3565b610c2b565b005b3480156103b157600080fd5b506103ba610ceb565b6040516103c791906133f9565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190613610565b610cf1565b60405161040491906135c8565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613663565b610df2565b005b34801561044257600080fd5b5061045d600480360381019061045891906135e3565b610f7f565b005b34801561046b57600080fd5b50610474611034565b60405161048191906133f9565b60405180910390f35b34801561049657600080fd5b5061049f61103a565b6040516104ac91906133f9565b60405180910390f35b3480156104c157600080fd5b506104ca611040565b6040516104d791906136d2565b60405180910390f35b3480156104ec57600080fd5b506105076004803603810190610502919061356d565b611049565b60405161051491906135c8565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f919061372b565b6110f5565b005b34801561055257600080fd5b5061055b6111f7565b60405161056891906133f9565b60405180910390f35b34801561057d57600080fd5b506105866111fd565b60405161059391906133f9565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be919061376b565b611203565b005b3480156105d157600080fd5b506105da61129c565b6040516105e791906135c8565b60405180910390f35b3480156105fc57600080fd5b50610617600480360381019061061291906135e3565b6112af565b60405161062491906133f9565b60405180910390f35b34801561063957600080fd5b506106426112f7565b005b34801561065057600080fd5b5061065961137f565b60405161066893929190613798565b60405180910390f35b34801561067d57600080fd5b50610686611397565b60405161069391906135c8565b60405180910390f35b3480156106a857600080fd5b506106c360048036038101906106be91906135e3565b6113aa565b6040516106d091906135c8565b60405180910390f35b3480156106e557600080fd5b506106ee6113bc565b6040516106fb91906137de565b60405180910390f35b34801561071057600080fd5b506107196113e2565b60405161072691906133f9565b60405180910390f35b34801561073b57600080fd5b5061075660048036038101906107519190613663565b6113e8565b005b34801561076457600080fd5b5061077f600480360381019061077a919061356d565b6114a4565b005b34801561078d57600080fd5b506107966115aa565b6040516107a391906137de565b60405180910390f35b3480156107b857600080fd5b506107c16115d4565b6040516107ce91906137de565b60405180910390f35b3480156107e357600080fd5b506107ec6115fa565b6040516107f991906134ad565b60405180910390f35b34801561080e57600080fd5b506108296004803603810190610824919061376b565b61168c565b005b34801561083757600080fd5b50610852600480360381019061084d919061376b565b611712565b005b34801561086057600080fd5b5061087b6004803603810190610876919061356d565b6117c1565b60405161088891906135c8565b60405180910390f35b34801561089d57600080fd5b506108a66118b5565b6040516108b391906137de565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de919061356d565b6118db565b6040516108f091906135c8565b60405180910390f35b34801561090557600080fd5b5061090e6118f9565b60405161091b91906133f9565b60405180910390f35b34801561093057600080fd5b5061094b600480360381019061094691906135e3565b6118ff565b005b34801561095957600080fd5b50610974600480360381019061096f9190613663565b6119bf565b005b34801561098257600080fd5b5061098b611a7b565b60405161099891906133f9565b60405180910390f35b3480156109ad57600080fd5b506109c860048036038101906109c3919061376b565b611a81565b005b3480156109d657600080fd5b506109f160048036038101906109ec9190613941565b611b1a565b005b3480156109ff57600080fd5b50610a1a6004803603810190610a1591906135e3565b611c2b565b604051610a2791906135c8565b60405180910390f35b348015610a3c57600080fd5b50610a576004803603810190610a52919061398a565b611c4b565b604051610a6491906133f9565b60405180910390f35b348015610a7957600080fd5b50610a946004803603810190610a8f91906139f6565b611cd2565b005b348015610aa257600080fd5b50610aab611d6b565b604051610ab89190613a82565b60405180910390f35b348015610acd57600080fd5b50610ae86004803603810190610ae39190613a9d565b611d91565b005b348015610af657600080fd5b50610b116004803603810190610b0c91906135e3565b611e68565b005b348015610b1f57600080fd5b50610b28611f60565b604051610b3793929190613798565b60405180910390f35b348015610b4c57600080fd5b50610b55611f78565b604051610b629190613afe565b60405180910390f35b600d5481565b606060038054610b8090613b48565b80601f0160208091040260200160405190810160405280929190818152602001828054610bac90613b48565b8015610bf95780601f10610bce57610100808354040283529160200191610bf9565b820191906000526020600020905b815481529060010190602001808311610bdc57829003601f168201915b5050505050905090565b6000610c17610c10611f9e565b8484611fa6565b6001905092915050565b6000600254905090565b610c33611f9e565b73ffffffffffffffffffffffffffffffffffffffff16610c516115aa565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613bc6565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610cfe848484612171565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d49611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090613c58565b60405180910390fd5b610de685610dd5611f9e565b8584610de19190613ca7565b611fa6565b60019150509392505050565b610dfa611f9e565b73ffffffffffffffffffffffffffffffffffffffff16610e186115aa565b73ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613bc6565b60405180910390fd5b6000479050610e7c846128b5565b60008147610e8a9190613ca7565b90506000831115610f0257610f018385610ea49190613cdb565b8483610eb09190613d31565b610eba9190613dba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b6000841115610f7857610f778385610f1a9190613cdb565b8583610f269190613d31565b610f309190613dba565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd957600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b60006110eb611056611f9e565b848460016000611064611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e69190613cdb565b611fa6565b6001905092915050565b6110fd611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661111b6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613bc6565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b61120b611f9e565b73ffffffffffffffffffffffffffffffffffffffff166112296115aa565b73ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690613bc6565b60405180910390fd5b670de0b6b3a7640000816112939190613d31565b600e8190555050565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112ff611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661131d6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a90613bc6565b60405180910390fd5b61137d6000612bec565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006113b582612cb2565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6113f0611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661140e6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613bc6565b60405180910390fd5b82601360010181905550816013600201819055508060136000018190555080828461148f9190613cdb565b6114999190613cdb565b601981905550505050565b6114ac611f9e565b73ffffffffffffffffffffffffffffffffffffffff166114ca6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790613bc6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115446115aa565b836040518363ffffffff1660e01b8152600401611562929190613deb565b6020604051808303816000875af1158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a59190613e29565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461160990613b48565b80601f016020809104026020016040519081016040528092919081815260200182805461163590613b48565b80156116825780601f1061165757610100808354040283529160200191611682565b820191906000526020600020905b81548152906001019060200180831161166557829003601f168201915b5050505050905090565b611694611f9e565b73ffffffffffffffffffffffffffffffffffffffff166116b26115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613bc6565b60405180910390fd5b80600d8190555050565b61171a611f9e565b73ffffffffffffffffffffffffffffffffffffffff166117386115aa565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613bc6565b60405180910390fd5b6117be8161179a6115aa565b73ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b50565b600080600160006117d0611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561188d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188490613ec8565b60405180910390fd5b6118aa611898611f9e565b8585846118a59190613ca7565b611fa6565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118ef6118e8611f9e565b8484612171565b6001905092915050565b600f5481565b611907611f9e565b73ffffffffffffffffffffffffffffffffffffffff166119256115aa565b73ffffffffffffffffffffffffffffffffffffffff161461197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613bc6565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119c7611f9e565b73ffffffffffffffffffffffffffffffffffffffff166119e56115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613bc6565b60405180910390fd5b826016600101819055508160166002018190555080601660000181905550808284611a669190613cdb565b611a709190613cdb565b601a81905550505050565b60095481565b611a89611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611aa76115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613bc6565b60405180910390fd5b670de0b6b3a764000081611b119190613d31565b600f8190555050565b611b22611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611b406115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613bc6565b60405180910390fd5b60005b8151811015611c27576001601c6000848481518110611bbb57611bba613ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c1f90613f17565b915050611b99565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cda611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611cf86115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613bc6565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d99611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611db76115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0490613bc6565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e70611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611e8e6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613bc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b90613fd2565b60405180910390fd5b611f5d81612bec565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200d90614064565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d906140f6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161216491906133f9565b60405180910390a3505050565b600081116121b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab90614188565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122585750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228e906141f4565b60405180910390fd5b6122a083612cb2565b1580156122b357506122b182612cb2565b155b15612301576122c0612df9565b15612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790614260565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905061235f81612e13565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124035750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561241c5750600860149054906101000a900460ff16155b156126895743600c54600b546124329190613cdb565b111561259557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124e6576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612594576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e548211156125da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d1906142cc565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461268857600f548261263c856112af565b6126469190613cdb565b1115612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e9061435e565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806126ef5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127435750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561275157600090506127e6565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156127c8576064601a54846127b79190613d31565b6127c19190613dba565b90506127e5565b6064601954846127d89190613d31565b6127e29190613dba565b90505b5b600860159054906101000a900460ff16801561280f5750600860149054906101000a900460ff16155b80156128695750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156128755750600081115b1561288357612882612e58565b5b612899858583866128949190613ca7565b61305c565b60008111156128ae576128ad85308361305c565b5b5050505050565b6000600267ffffffffffffffff8111156128d2576128d16137fe565b5b6040519080825280602002602001820160405280156129005781602001602082028036833780820191505090505b509050308160008151811061291857612917613ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e39190614393565b816001815181106129f7576129f6613ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a5e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac29594939291906144b9565b600060405180830381600087803b158015612adc57600080fd5b505af1158015612af0573d6000803e3d6000fd5b505050505050565b80471015612b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b329061455f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b61906145b0565b60006040518083038185875af1925050503d8060008114612b9e576040519150601f19603f3d011682016040523d82523d6000602084013e612ba3565b606091505b5050905080612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde90614637565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a919061466c565b612d549190613dba565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612daf91906137de565b602060405180830381865afa158015612dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df0919061466c565b10159050919050565b6000600a54600954612e0b9190613cdb565b431115905090565b600860169054906101000a900460ff16158015612e2d5750805b15612e55576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff1661305a576001600860146101000a81548160ff0219169083151502179055506000612e92306112af565b9050600d54811061303d5760006002601a54612eae9190613d31565b905060008160166001015484612ec49190613d31565b612ece9190613dba565b905060008184612ede9190613ca7565b90506000479050612eee826128b5565b60008147612efc9190613ca7565b9050600060166001015486612f119190613ca7565b82612f1c9190613dba565b9050600060166001015482612f319190613d31565b90506000811115612f4757612f4686826132db565b5b6000601660000154600284612f5c9190613d31565b612f669190613d31565b90506000811115612fbd57612fbc81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b6000601660020154600285612fd29190613d31565b612fdc9190613d31565b905060008111156130335761303281601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c39061470b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561313c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131339061479d565b60405180910390fd5b6131478383836133db565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156131cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c49061482f565b60405180910390fd5b81816131d99190613ca7565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132699190613cdb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132cd91906133f9565b60405180910390a350505050565b61330830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016133919695949392919061484f565b60606040518083038185885af11580156133af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d491906148b0565b5050505050565b505050565b6000819050919050565b6133f3816133e0565b82525050565b600060208201905061340e60008301846133ea565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561344e578082015181840152602081019050613433565b8381111561345d576000848401525b50505050565b6000601f19601f8301169050919050565b600061347f82613414565b613489818561341f565b9350613499818560208601613430565b6134a281613463565b840191505092915050565b600060208201905081810360008301526134c78184613474565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061350e826134e3565b9050919050565b61351e81613503565b811461352957600080fd5b50565b60008135905061353b81613515565b92915050565b61354a816133e0565b811461355557600080fd5b50565b60008135905061356781613541565b92915050565b60008060408385031215613584576135836134d9565b5b60006135928582860161352c565b92505060206135a385828601613558565b9150509250929050565b60008115159050919050565b6135c2816135ad565b82525050565b60006020820190506135dd60008301846135b9565b92915050565b6000602082840312156135f9576135f86134d9565b5b60006136078482850161352c565b91505092915050565b600080600060608486031215613629576136286134d9565b5b60006136378682870161352c565b93505060206136488682870161352c565b925050604061365986828701613558565b9150509250925092565b60008060006060848603121561367c5761367b6134d9565b5b600061368a86828701613558565b935050602061369b86828701613558565b92505060406136ac86828701613558565b9150509250925092565b600060ff82169050919050565b6136cc816136b6565b82525050565b60006020820190506136e760008301846136c3565b92915050565b60006136f882613503565b9050919050565b613708816136ed565b811461371357600080fd5b50565b600081359050613725816136ff565b92915050565b60008060408385031215613742576137416134d9565b5b600061375085828601613716565b92505060206137618582860161352c565b9150509250929050565b600060208284031215613781576137806134d9565b5b600061378f84828501613558565b91505092915050565b60006060820190506137ad60008301866133ea565b6137ba60208301856133ea565b6137c760408301846133ea565b949350505050565b6137d881613503565b82525050565b60006020820190506137f360008301846137cf565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61383682613463565b810181811067ffffffffffffffff82111715613855576138546137fe565b5b80604052505050565b60006138686134cf565b9050613874828261382d565b919050565b600067ffffffffffffffff821115613894576138936137fe565b5b602082029050602081019050919050565b600080fd5b60006138bd6138b884613879565b61385e565b905080838252602082019050602084028301858111156138e0576138df6138a5565b5b835b8181101561390957806138f5888261352c565b8452602084019350506020810190506138e2565b5050509392505050565b600082601f830112613928576139276137f9565b5b81356139388482602086016138aa565b91505092915050565b600060208284031215613957576139566134d9565b5b600082013567ffffffffffffffff811115613975576139746134de565b5b61398184828501613913565b91505092915050565b600080604083850312156139a1576139a06134d9565b5b60006139af8582860161352c565b92505060206139c08582860161352c565b9150509250929050565b6139d3816135ad565b81146139de57600080fd5b50565b6000813590506139f0816139ca565b92915050565b600060208284031215613a0c57613a0b6134d9565b5b6000613a1a848285016139e1565b91505092915050565b6000819050919050565b6000613a48613a43613a3e846134e3565b613a23565b6134e3565b9050919050565b6000613a5a82613a2d565b9050919050565b6000613a6c82613a4f565b9050919050565b613a7c81613a61565b82525050565b6000602082019050613a976000830184613a73565b92915050565b60008060408385031215613ab457613ab36134d9565b5b6000613ac28582860161352c565b9250506020613ad3858286016139e1565b9150509250929050565b6000613ae882613a4f565b9050919050565b613af881613add565b82525050565b6000602082019050613b136000830184613aef565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6057607f821691505b60208210811415613b7457613b73613b19565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613bb060208361341f565b9150613bbb82613b7a565b602082019050919050565b60006020820190508181036000830152613bdf81613ba3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613c4260288361341f565b9150613c4d82613be6565b604082019050919050565b60006020820190508181036000830152613c7181613c35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cb2826133e0565b9150613cbd836133e0565b925082821015613cd057613ccf613c78565b5b828203905092915050565b6000613ce6826133e0565b9150613cf1836133e0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2657613d25613c78565b5b828201905092915050565b6000613d3c826133e0565b9150613d47836133e0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d8057613d7f613c78565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dc5826133e0565b9150613dd0836133e0565b925082613de057613ddf613d8b565b5b828204905092915050565b6000604082019050613e0060008301856137cf565b613e0d60208301846133ea565b9392505050565b600081519050613e23816139ca565b92915050565b600060208284031215613e3f57613e3e6134d9565b5b6000613e4d84828501613e14565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613eb260258361341f565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f22826133e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f5557613f54613c78565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fbc60268361341f565b9150613fc782613f60565b604082019050919050565b60006020820190508181036000830152613feb81613faf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404e60248361341f565b915061405982613ff2565b604082019050919050565b6000602082019050818103600083015261407d81614041565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140e060228361341f565b91506140eb82614084565b604082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061417260298361341f565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006141de60198361341f565b91506141e9826141a8565b602082019050919050565b6000602082019050818103600083015261420d816141d1565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b600061424a60188361341f565b915061425582614214565b602082019050919050565b600060208201905081810360008301526142798161423d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006142b6601d8361341f565b91506142c182614280565b602082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061434860218361341f565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b60008151905061438d81613515565b92915050565b6000602082840312156143a9576143a86134d9565b5b60006143b78482850161437e565b91505092915050565b6000819050919050565b60006143e56143e06143db846143c0565b613a23565b6133e0565b9050919050565b6143f5816143ca565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61443081613503565b82525050565b60006144428383614427565b60208301905092915050565b6000602082019050919050565b6000614466826143fb565b6144708185614406565b935061447b83614417565b8060005b838110156144ac5781516144938882614436565b975061449e8361444e565b92505060018101905061447f565b5085935050505092915050565b600060a0820190506144ce60008301886133ea565b6144db60208301876143ec565b81810360408301526144ed818661445b565b90506144fc60608301856137cf565b61450960808301846133ea565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614549601d8361341f565b915061455482614513565b602082019050919050565b600060208201905081810360008301526145788161453c565b9050919050565b600081905092915050565b50565b600061459a60008361457f565b91506145a58261458a565b600082019050919050565b60006145bb8261458d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614621603a8361341f565b915061462c826145c5565b604082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b60008151905061466681613541565b92915050565b600060208284031215614682576146816134d9565b5b600061469084828501614657565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146f560258361341f565b915061470082614699565b604082019050919050565b60006020820190508181036000830152614724816146e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061478760238361341f565b91506147928261472b565b604082019050919050565b600060208201905081810360008301526147b68161477a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061481960268361341f565b9150614824826147bd565b604082019050919050565b600060208201905081810360008301526148488161480c565b9050919050565b600060c08201905061486460008301896137cf565b61487160208301886133ea565b61487e60408301876143ec565b61488b60608301866143ec565b61489860808301856137cf565b6148a560a08301846133ea565b979650505050505050565b6000806000606084860312156148c9576148c86134d9565b5b60006148d786828701614657565b93505060206148e886828701614657565b92505060406148f986828701614657565b915050925092509256fea264697066735822122030e16072c00b8885d46aa60a0122f0fe6369f36d04d8415c62a1d684102fdfe864736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638c0b5e2211610175578063aacebbe3116100dc578063dd62ed3e11610095578063e545fd6d1161006f578063e545fd6d14610ac1578063f2fde38b14610aea578063f66895a314610b13578063f887ea4014610b40576102b9565b8063dd62ed3e14610a30578063e01af92c14610a6d578063e24b85e714610a96576102b9565b8063aacebbe314610924578063b4337b4e1461094d578063bcff895a14610976578063c18bc195146109a1578063d34628cc146109ca578063dbe66ca0146109f3576102b9565b80639d0014b11161012e5780639d0014b1146108025780639e252f001461082b578063a457c2d714610854578063a8aa1b3114610891578063a9059cbb146108bc578063aa4bde28146108f9576102b9565b80638c0b5e22146107045780638c374ac11461072f5780638cd4426d146107585780638da5cb5b146107815780638ea5220f146107ac57806395d89b41146107d7576102b9565b8063395093511161021957806370a08231116101d257806370a08231146105f0578063715018a61461062d578063728f8eea1461064457806373bd699a14610671578063743584981461069c57806375f0a874146106d9576102b9565b806339509351146104e057806340b28c2f1461051d57806350c9a88f1461054657806356b4286d146105715780636256d1811461059c5780636ddd1713146105c5576102b9565b806323b872dd1161026b57806323b872dd146103d057806326b5d32f1461040d578063273123b714610436578063274a533c1461045f578063293b7ef41461048a578063313ce567146104b5576102b9565b80630445b667146102be57806306fdde03146102e9578063095ea7b31461031457806318160ddd146103515780631816467f1461037c5780632253163d146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b6b565b6040516102e091906133f9565b60405180910390f35b3480156102f557600080fd5b506102fe610b71565b60405161030b91906134ad565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061356d565b610c03565b60405161034891906135c8565b60405180910390f35b34801561035d57600080fd5b50610366610c21565b60405161037391906133f9565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906135e3565b610c2b565b005b3480156103b157600080fd5b506103ba610ceb565b6040516103c791906133f9565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190613610565b610cf1565b60405161040491906135c8565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613663565b610df2565b005b34801561044257600080fd5b5061045d600480360381019061045891906135e3565b610f7f565b005b34801561046b57600080fd5b50610474611034565b60405161048191906133f9565b60405180910390f35b34801561049657600080fd5b5061049f61103a565b6040516104ac91906133f9565b60405180910390f35b3480156104c157600080fd5b506104ca611040565b6040516104d791906136d2565b60405180910390f35b3480156104ec57600080fd5b506105076004803603810190610502919061356d565b611049565b60405161051491906135c8565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f919061372b565b6110f5565b005b34801561055257600080fd5b5061055b6111f7565b60405161056891906133f9565b60405180910390f35b34801561057d57600080fd5b506105866111fd565b60405161059391906133f9565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be919061376b565b611203565b005b3480156105d157600080fd5b506105da61129c565b6040516105e791906135c8565b60405180910390f35b3480156105fc57600080fd5b50610617600480360381019061061291906135e3565b6112af565b60405161062491906133f9565b60405180910390f35b34801561063957600080fd5b506106426112f7565b005b34801561065057600080fd5b5061065961137f565b60405161066893929190613798565b60405180910390f35b34801561067d57600080fd5b50610686611397565b60405161069391906135c8565b60405180910390f35b3480156106a857600080fd5b506106c360048036038101906106be91906135e3565b6113aa565b6040516106d091906135c8565b60405180910390f35b3480156106e557600080fd5b506106ee6113bc565b6040516106fb91906137de565b60405180910390f35b34801561071057600080fd5b506107196113e2565b60405161072691906133f9565b60405180910390f35b34801561073b57600080fd5b5061075660048036038101906107519190613663565b6113e8565b005b34801561076457600080fd5b5061077f600480360381019061077a919061356d565b6114a4565b005b34801561078d57600080fd5b506107966115aa565b6040516107a391906137de565b60405180910390f35b3480156107b857600080fd5b506107c16115d4565b6040516107ce91906137de565b60405180910390f35b3480156107e357600080fd5b506107ec6115fa565b6040516107f991906134ad565b60405180910390f35b34801561080e57600080fd5b506108296004803603810190610824919061376b565b61168c565b005b34801561083757600080fd5b50610852600480360381019061084d919061376b565b611712565b005b34801561086057600080fd5b5061087b6004803603810190610876919061356d565b6117c1565b60405161088891906135c8565b60405180910390f35b34801561089d57600080fd5b506108a66118b5565b6040516108b391906137de565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de919061356d565b6118db565b6040516108f091906135c8565b60405180910390f35b34801561090557600080fd5b5061090e6118f9565b60405161091b91906133f9565b60405180910390f35b34801561093057600080fd5b5061094b600480360381019061094691906135e3565b6118ff565b005b34801561095957600080fd5b50610974600480360381019061096f9190613663565b6119bf565b005b34801561098257600080fd5b5061098b611a7b565b60405161099891906133f9565b60405180910390f35b3480156109ad57600080fd5b506109c860048036038101906109c3919061376b565b611a81565b005b3480156109d657600080fd5b506109f160048036038101906109ec9190613941565b611b1a565b005b3480156109ff57600080fd5b50610a1a6004803603810190610a1591906135e3565b611c2b565b604051610a2791906135c8565b60405180910390f35b348015610a3c57600080fd5b50610a576004803603810190610a52919061398a565b611c4b565b604051610a6491906133f9565b60405180910390f35b348015610a7957600080fd5b50610a946004803603810190610a8f91906139f6565b611cd2565b005b348015610aa257600080fd5b50610aab611d6b565b604051610ab89190613a82565b60405180910390f35b348015610acd57600080fd5b50610ae86004803603810190610ae39190613a9d565b611d91565b005b348015610af657600080fd5b50610b116004803603810190610b0c91906135e3565b611e68565b005b348015610b1f57600080fd5b50610b28611f60565b604051610b3793929190613798565b60405180910390f35b348015610b4c57600080fd5b50610b55611f78565b604051610b629190613afe565b60405180910390f35b600d5481565b606060038054610b8090613b48565b80601f0160208091040260200160405190810160405280929190818152602001828054610bac90613b48565b8015610bf95780601f10610bce57610100808354040283529160200191610bf9565b820191906000526020600020905b815481529060010190602001808311610bdc57829003601f168201915b5050505050905090565b6000610c17610c10611f9e565b8484611fa6565b6001905092915050565b6000600254905090565b610c33611f9e565b73ffffffffffffffffffffffffffffffffffffffff16610c516115aa565b73ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613bc6565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610cfe848484612171565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d49611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090613c58565b60405180910390fd5b610de685610dd5611f9e565b8584610de19190613ca7565b611fa6565b60019150509392505050565b610dfa611f9e565b73ffffffffffffffffffffffffffffffffffffffff16610e186115aa565b73ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613bc6565b60405180910390fd5b6000479050610e7c846128b5565b60008147610e8a9190613ca7565b90506000831115610f0257610f018385610ea49190613cdb565b8483610eb09190613d31565b610eba9190613dba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b6000841115610f7857610f778385610f1a9190613cdb565b8583610f269190613d31565b610f309190613dba565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd957600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b60006110eb611056611f9e565b848460016000611064611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e69190613cdb565b611fa6565b6001905092915050565b6110fd611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661111b6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613bc6565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b61120b611f9e565b73ffffffffffffffffffffffffffffffffffffffff166112296115aa565b73ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690613bc6565b60405180910390fd5b670de0b6b3a7640000816112939190613d31565b600e8190555050565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112ff611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661131d6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a90613bc6565b60405180910390fd5b61137d6000612bec565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006113b582612cb2565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6113f0611f9e565b73ffffffffffffffffffffffffffffffffffffffff1661140e6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613bc6565b60405180910390fd5b82601360010181905550816013600201819055508060136000018190555080828461148f9190613cdb565b6114999190613cdb565b601981905550505050565b6114ac611f9e565b73ffffffffffffffffffffffffffffffffffffffff166114ca6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790613bc6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115446115aa565b836040518363ffffffff1660e01b8152600401611562929190613deb565b6020604051808303816000875af1158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a59190613e29565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461160990613b48565b80601f016020809104026020016040519081016040528092919081815260200182805461163590613b48565b80156116825780601f1061165757610100808354040283529160200191611682565b820191906000526020600020905b81548152906001019060200180831161166557829003601f168201915b5050505050905090565b611694611f9e565b73ffffffffffffffffffffffffffffffffffffffff166116b26115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613bc6565b60405180910390fd5b80600d8190555050565b61171a611f9e565b73ffffffffffffffffffffffffffffffffffffffff166117386115aa565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613bc6565b60405180910390fd5b6117be8161179a6115aa565b73ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b50565b600080600160006117d0611f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561188d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188490613ec8565b60405180910390fd5b6118aa611898611f9e565b8585846118a59190613ca7565b611fa6565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118ef6118e8611f9e565b8484612171565b6001905092915050565b600f5481565b611907611f9e565b73ffffffffffffffffffffffffffffffffffffffff166119256115aa565b73ffffffffffffffffffffffffffffffffffffffff161461197b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197290613bc6565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119c7611f9e565b73ffffffffffffffffffffffffffffffffffffffff166119e56115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290613bc6565b60405180910390fd5b826016600101819055508160166002018190555080601660000181905550808284611a669190613cdb565b611a709190613cdb565b601a81905550505050565b60095481565b611a89611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611aa76115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490613bc6565b60405180910390fd5b670de0b6b3a764000081611b119190613d31565b600f8190555050565b611b22611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611b406115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613bc6565b60405180910390fd5b60005b8151811015611c27576001601c6000848481518110611bbb57611bba613ee8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c1f90613f17565b915050611b99565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cda611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611cf86115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613bc6565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d99611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611db76115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0490613bc6565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e70611f9e565b73ffffffffffffffffffffffffffffffffffffffff16611e8e6115aa565b73ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613bc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b90613fd2565b60405180910390fd5b611f5d81612bec565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200d90614064565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d906140f6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161216491906133f9565b60405180910390a3505050565b600081116121b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab90614188565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122585750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228e906141f4565b60405180910390fd5b6122a083612cb2565b1580156122b357506122b182612cb2565b155b15612301576122c0612df9565b15612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790614260565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905061235f81612e13565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124035750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561241c5750600860149054906101000a900460ff16155b156126895743600c54600b546124329190613cdb565b111561259557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124e6576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612594576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e548211156125da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d1906142cc565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461268857600f548261263c856112af565b6126469190613cdb565b1115612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e9061435e565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806126ef5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127435750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561275157600090506127e6565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156127c8576064601a54846127b79190613d31565b6127c19190613dba565b90506127e5565b6064601954846127d89190613d31565b6127e29190613dba565b90505b5b600860159054906101000a900460ff16801561280f5750600860149054906101000a900460ff16155b80156128695750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156128755750600081115b1561288357612882612e58565b5b612899858583866128949190613ca7565b61305c565b60008111156128ae576128ad85308361305c565b5b5050505050565b6000600267ffffffffffffffff8111156128d2576128d16137fe565b5b6040519080825280602002602001820160405280156129005781602001602082028036833780820191505090505b509050308160008151811061291857612917613ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e39190614393565b816001815181106129f7576129f6613ee8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a5e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac29594939291906144b9565b600060405180830381600087803b158015612adc57600080fd5b505af1158015612af0573d6000803e3d6000fd5b505050505050565b80471015612b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b329061455f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b61906145b0565b60006040518083038185875af1925050503d8060008114612b9e576040519150601f19603f3d011682016040523d82523d6000602084013e612ba3565b606091505b5050905080612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde90614637565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a919061466c565b612d549190613dba565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612daf91906137de565b602060405180830381865afa158015612dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df0919061466c565b10159050919050565b6000600a54600954612e0b9190613cdb565b431115905090565b600860169054906101000a900460ff16158015612e2d5750805b15612e55576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff1661305a576001600860146101000a81548160ff0219169083151502179055506000612e92306112af565b9050600d54811061303d5760006002601a54612eae9190613d31565b905060008160166001015484612ec49190613d31565b612ece9190613dba565b905060008184612ede9190613ca7565b90506000479050612eee826128b5565b60008147612efc9190613ca7565b9050600060166001015486612f119190613ca7565b82612f1c9190613dba565b9050600060166001015482612f319190613d31565b90506000811115612f4757612f4686826132db565b5b6000601660000154600284612f5c9190613d31565b612f669190613d31565b90506000811115612fbd57612fbc81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b6000601660020154600285612fd29190613d31565b612fdc9190613d31565b905060008111156130335761303281601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612af890919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c39061470b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561313c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131339061479d565b60405180910390fd5b6131478383836133db565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156131cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c49061482f565b60405180910390fd5b81816131d99190613ca7565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132699190613cdb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132cd91906133f9565b60405180910390a350505050565b61330830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016133919695949392919061484f565b60606040518083038185885af11580156133af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133d491906148b0565b5050505050565b505050565b6000819050919050565b6133f3816133e0565b82525050565b600060208201905061340e60008301846133ea565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561344e578082015181840152602081019050613433565b8381111561345d576000848401525b50505050565b6000601f19601f8301169050919050565b600061347f82613414565b613489818561341f565b9350613499818560208601613430565b6134a281613463565b840191505092915050565b600060208201905081810360008301526134c78184613474565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061350e826134e3565b9050919050565b61351e81613503565b811461352957600080fd5b50565b60008135905061353b81613515565b92915050565b61354a816133e0565b811461355557600080fd5b50565b60008135905061356781613541565b92915050565b60008060408385031215613584576135836134d9565b5b60006135928582860161352c565b92505060206135a385828601613558565b9150509250929050565b60008115159050919050565b6135c2816135ad565b82525050565b60006020820190506135dd60008301846135b9565b92915050565b6000602082840312156135f9576135f86134d9565b5b60006136078482850161352c565b91505092915050565b600080600060608486031215613629576136286134d9565b5b60006136378682870161352c565b93505060206136488682870161352c565b925050604061365986828701613558565b9150509250925092565b60008060006060848603121561367c5761367b6134d9565b5b600061368a86828701613558565b935050602061369b86828701613558565b92505060406136ac86828701613558565b9150509250925092565b600060ff82169050919050565b6136cc816136b6565b82525050565b60006020820190506136e760008301846136c3565b92915050565b60006136f882613503565b9050919050565b613708816136ed565b811461371357600080fd5b50565b600081359050613725816136ff565b92915050565b60008060408385031215613742576137416134d9565b5b600061375085828601613716565b92505060206137618582860161352c565b9150509250929050565b600060208284031215613781576137806134d9565b5b600061378f84828501613558565b91505092915050565b60006060820190506137ad60008301866133ea565b6137ba60208301856133ea565b6137c760408301846133ea565b949350505050565b6137d881613503565b82525050565b60006020820190506137f360008301846137cf565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61383682613463565b810181811067ffffffffffffffff82111715613855576138546137fe565b5b80604052505050565b60006138686134cf565b9050613874828261382d565b919050565b600067ffffffffffffffff821115613894576138936137fe565b5b602082029050602081019050919050565b600080fd5b60006138bd6138b884613879565b61385e565b905080838252602082019050602084028301858111156138e0576138df6138a5565b5b835b8181101561390957806138f5888261352c565b8452602084019350506020810190506138e2565b5050509392505050565b600082601f830112613928576139276137f9565b5b81356139388482602086016138aa565b91505092915050565b600060208284031215613957576139566134d9565b5b600082013567ffffffffffffffff811115613975576139746134de565b5b61398184828501613913565b91505092915050565b600080604083850312156139a1576139a06134d9565b5b60006139af8582860161352c565b92505060206139c08582860161352c565b9150509250929050565b6139d3816135ad565b81146139de57600080fd5b50565b6000813590506139f0816139ca565b92915050565b600060208284031215613a0c57613a0b6134d9565b5b6000613a1a848285016139e1565b91505092915050565b6000819050919050565b6000613a48613a43613a3e846134e3565b613a23565b6134e3565b9050919050565b6000613a5a82613a2d565b9050919050565b6000613a6c82613a4f565b9050919050565b613a7c81613a61565b82525050565b6000602082019050613a976000830184613a73565b92915050565b60008060408385031215613ab457613ab36134d9565b5b6000613ac28582860161352c565b9250506020613ad3858286016139e1565b9150509250929050565b6000613ae882613a4f565b9050919050565b613af881613add565b82525050565b6000602082019050613b136000830184613aef565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6057607f821691505b60208210811415613b7457613b73613b19565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613bb060208361341f565b9150613bbb82613b7a565b602082019050919050565b60006020820190508181036000830152613bdf81613ba3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613c4260288361341f565b9150613c4d82613be6565b604082019050919050565b60006020820190508181036000830152613c7181613c35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cb2826133e0565b9150613cbd836133e0565b925082821015613cd057613ccf613c78565b5b828203905092915050565b6000613ce6826133e0565b9150613cf1836133e0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2657613d25613c78565b5b828201905092915050565b6000613d3c826133e0565b9150613d47836133e0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d8057613d7f613c78565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dc5826133e0565b9150613dd0836133e0565b925082613de057613ddf613d8b565b5b828204905092915050565b6000604082019050613e0060008301856137cf565b613e0d60208301846133ea565b9392505050565b600081519050613e23816139ca565b92915050565b600060208284031215613e3f57613e3e6134d9565b5b6000613e4d84828501613e14565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613eb260258361341f565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f22826133e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f5557613f54613c78565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fbc60268361341f565b9150613fc782613f60565b604082019050919050565b60006020820190508181036000830152613feb81613faf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404e60248361341f565b915061405982613ff2565b604082019050919050565b6000602082019050818103600083015261407d81614041565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140e060228361341f565b91506140eb82614084565b604082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061417260298361341f565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006141de60198361341f565b91506141e9826141a8565b602082019050919050565b6000602082019050818103600083015261420d816141d1565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b600061424a60188361341f565b915061425582614214565b602082019050919050565b600060208201905081810360008301526142798161423d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b60006142b6601d8361341f565b91506142c182614280565b602082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061434860218361341f565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b60008151905061438d81613515565b92915050565b6000602082840312156143a9576143a86134d9565b5b60006143b78482850161437e565b91505092915050565b6000819050919050565b60006143e56143e06143db846143c0565b613a23565b6133e0565b9050919050565b6143f5816143ca565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61443081613503565b82525050565b60006144428383614427565b60208301905092915050565b6000602082019050919050565b6000614466826143fb565b6144708185614406565b935061447b83614417565b8060005b838110156144ac5781516144938882614436565b975061449e8361444e565b92505060018101905061447f565b5085935050505092915050565b600060a0820190506144ce60008301886133ea565b6144db60208301876143ec565b81810360408301526144ed818661445b565b90506144fc60608301856137cf565b61450960808301846133ea565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614549601d8361341f565b915061455482614513565b602082019050919050565b600060208201905081810360008301526145788161453c565b9050919050565b600081905092915050565b50565b600061459a60008361457f565b91506145a58261458a565b600082019050919050565b60006145bb8261458d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614621603a8361341f565b915061462c826145c5565b604082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b60008151905061466681613541565b92915050565b600060208284031215614682576146816134d9565b5b600061469084828501614657565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146f560258361341f565b915061470082614699565b604082019050919050565b60006020820190508181036000830152614724816146e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061478760238361341f565b91506147928261472b565b604082019050919050565b600060208201905081810360008301526147b68161477a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061481960268361341f565b9150614824826147bd565b604082019050919050565b600060208201905081810360008301526148488161480c565b9050919050565b600060c08201905061486460008301896137cf565b61487160208301886133ea565b61487e60408301876143ec565b61488b60608301866143ec565b61489860808301856137cf565b6148a560a08301846133ea565b979650505050505050565b6000806000606084860312156148c9576148c86134d9565b5b60006148d786828701614657565b93505060206148e886828701614657565b92505060406148f986828701614657565b915050925092509256fea264697066735822122030e16072c00b8885d46aa60a0122f0fe6369f36d04d8415c62a1d684102fdfe864736f6c634300080c0033

Deployed Bytecode Sourcemap

13365:9317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2508:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4682:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3631:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19931:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14378:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5334:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22074:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20516:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13723:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14346:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3472:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6171:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20042:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13758:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13679:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21183:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13563:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3803:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12136:94;;;;;;;;;;;;;:::i;:::-;;14262:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13596;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19526:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13992:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13848:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20657:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21802:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11911:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14074:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2728:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19410:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21953:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6890:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13506:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4144:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13900:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19808:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20911:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13637:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21300:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20192:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14417:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4383:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19308:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13480:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20370:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12239:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14302:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13452:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:44;;;;:::o;2508:100::-;2562:13;2595:5;2588:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2508:100;:::o;4682:169::-;4765:4;4782:39;4791:12;:10;:12::i;:::-;4805:7;4814:6;4782:8;:39::i;:::-;4839:4;4832:11;;4682:169;;;;:::o;3631:108::-;3692:7;3719:12;;3712:19;;3631:108;:::o;19931:102::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20016:9:::1;20004;;:21;;;;;;;;;;;;;;;;;;19931:102:::0;:::o;14378:29::-;;;;:::o;5334:421::-;5440:4;5457:36;5467:6;5475:9;5486:6;5457:9;:36::i;:::-;5504:24;5531:11;:19;5543:6;5531:19;;;;;;;;;;;;;;;:33;5551:12;:10;:12::i;:::-;5531:33;;;;;;;;;;;;;;;;5504:60;;5603:6;5583:16;:26;;5575:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5665:57;5674:6;5682:12;:10;:12::i;:::-;5715:6;5696:16;:25;;;;:::i;:::-;5665:8;:57::i;:::-;5743:4;5736:11;;;5334:421;;;;;:::o;22074:546::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22191:19:::1;22213:21;22191:43;;22245:24;22262:6;22245:16;:24::i;:::-;22280:18;22325:11;22301:21;:35;;;;:::i;:::-;22280:56;;22372:1;22350:19;:23;22347:136;;;22375:108;22462:19;22446:13;:35;;;;:::i;:::-;22423:19;22410:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;22383:15;;;;;;;;;;;22375:34;;;;:108;;;;:::i;:::-;22347:136;22513:1;22497:13;:17;22494:118;;;22516:96;22591:19;22575:13;:35;;;;:::i;:::-;22558:13;22545:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;22524:9;;;;;;;;;;;22516:28;;;;:96;;;;:::i;:::-;22494:118;22180:440;;22074:546:::0;;;:::o;20516:133::-;20592:15;;;;;;;;;;;20578:29;;:10;:29;;;20569:39;;;;;;20636:5;20619;:14;20625:7;20619:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20516:133;:::o;13723:28::-;;;;:::o;14346:25::-;;;;:::o;3472:93::-;3530:5;3555:2;3548:9;;3472:93;:::o;6171:215::-;6259:4;6276:80;6285:12;:10;:12::i;:::-;6299:7;6345:10;6308:11;:25;6320:12;:10;:12::i;:::-;6308:25;;;;;;;;;;;;;;;:34;6334:7;6308:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6276:8;:80::i;:::-;6374:4;6367:11;;6171:215;;;;:::o;20042:137::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20141:7:::1;20132:6;;:16;;;;;;;;;;;;;;;;;;20166:5;20159:4;;:12;;;;;;;;;;;;;;;;;;20042:137:::0;;:::o;13758:29::-;;;;:::o;13679:27::-;;;;:::o;21183:109::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21278:6:::1;21269;:15;;;;:::i;:::-;21255:11;:29;;;;21183:109:::0;:::o;13563:23::-;;;;;;;;;;;;;:::o;3803:127::-;3877:7;3904:9;:18;3914:7;3904:18;;;;;;;;;;;;;;;;3897:25;;3803:127;;;:::o;12136:94::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12201:21:::1;12219:1;12201:9;:21::i;:::-;12136:94::o:0;14262:33::-;;;;;;;;;;;;;;;;;;;:::o;13596:::-;;;;;;;;;;;;;:::o;19526:114::-;19585:4;19610:21;19623:7;19610:12;:21::i;:::-;19603:28;;19526:114;;;:::o;13992:75::-;;;;;;;;;;;;;:::o;13848:45::-;;;;:::o;20657:247::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20780:9:::1;20762:5;:15;;:27;;;;20812:3;20800:5;:9;;:15;;;;20844:9;20826:5;:15;;:27;;;;20887:9;20883:3;20873:9;:13;;;;:::i;:::-;:23;;;;:::i;:::-;20864:6;:32;;;;20657:247:::0;;;:::o;21802:142::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21897:12:::1;21890:29;;;21920:7;:5;:7::i;:::-;21929:6;21890:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21802:142:::0;;:::o;11911:87::-;11957:7;11984:6;;;;;;;;;;;11977:13;;11911:87;:::o;14074:69::-;;;;;;;;;;;;;:::o;2728:104::-;2784:13;2817:7;2810:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2728:104;:::o;19410:110::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19502:10:::1;19486:13;:26;;;;19410:110:::0;:::o;21953:112::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22020:37:::1;22047:9;22028:7;:5;:7::i;:::-;22020:26;;;;:37;;;;:::i;:::-;21953:112:::0;:::o;6890:378::-;6983:4;7000:24;7027:11;:25;7039:12;:10;:12::i;:::-;7027:25;;;;;;;;;;;;;;;:34;7053:7;7027:34;;;;;;;;;;;;;;;;7000:61;;7100:15;7080:16;:35;;7072:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7168:67;7177:12;:10;:12::i;:::-;7191:7;7219:15;7200:16;:34;;;;:::i;:::-;7168:8;:67::i;:::-;7256:4;7249:11;;;6890:378;;;;:::o;13506:19::-;;;;;;;;;;;;;:::o;4144:175::-;4230:4;4247:42;4257:12;:10;:12::i;:::-;4271:9;4282:6;4247:9;:42::i;:::-;4307:4;4300:11;;4144:175;;;;:::o;13900:49::-;;;;:::o;19808:114::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19905:9:::1;19887:15;;:27;;;;;;;;;;;;;;;;;;19808:114:::0;:::o;20911:264::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21039:9:::1;21017;:19;;:31;;;;21075:3;21059:9;:13;;:19;;;;21111:9;21089;:19;;:31;;;;21158:9;21154:3;21144:9;:13;;;;:::i;:::-;:23;;;;:::i;:::-;21131:10;:36;;;;20911:264:::0;;;:::o;13637:34::-;;;;:::o;21300:117::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21403:6:::1;21394;:15;;;;:::i;:::-;21376;:33;;;;21300:117:::0;:::o;20192:172::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20267:6:::1;20262:91;20283:6;:13;20279:1;:17;20262:91;;;20337:4;20318:5;:16;20324:6;20331:1;20324:9;;;;;;;;:::i;:::-;;;;;;;;20318:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20298:3;;;;;:::i;:::-;;;;20262:91;;;;20192:172:::0;:::o;14417:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4383:151::-;4472:7;4499:11;:18;4511:5;4499:18;;;;;;;;;;;;;;;:27;4518:7;4499:27;;;;;;;;;;;;;;;;4492:34;;4383:151;;;;:::o;19308:93::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19388:5:::1;19374:11;;:19;;;;;;;;;;;;;;;;;;19308:93:::0;:::o;13480:18::-;;;;;;;;;;;;;:::o;20370:134::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20491:5:::1;20462:16;:26;20479:8;20462:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20370:134:::0;;:::o;12239:192::-;12058:12;:10;:12::i;:::-;12047:23;;:7;:5;:7::i;:::-;:23;;;12039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12348:1:::1;12328:22;;:8;:22;;;;12320:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12404:19;12414:8;12404:9;:19::i;:::-;12239:192:::0;:::o;14302:37::-;;;;;;;;;;;;;;;;;;;:::o;13452:21::-;;;;;;;;;;;;;:::o;205:98::-;258:7;285:10;278:17;;205:98;:::o;10270:347::-;10389:1;10372:19;;:5;:19;;;;10364:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10470:1;10451:21;;:7;:21;;;;10443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10555:6;10525:11;:18;10537:5;10525:18;;;;;;;;;;;;;;;:27;10544:7;10525:27;;;;;;;;;;;;;;;:36;;;;10593:7;10577:32;;10586:5;10577:32;;;10602:6;10577:32;;;;;;:::i;:::-;;;;;;;;10270:347;;;:::o;15300:1721::-;15430:1;15421:6;:10;15413:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15497:5;:13;15503:6;15497:13;;;;;;;;;;;;;;;;;;;;;;;;;15496:14;:35;;;;;15515:5;:16;15521:9;15515:16;;;;;;;;;;;;;;;;;;;;;;;;;15514:17;15496:35;15488:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:20;15591:6;15578:12;:20::i;:::-;15577:21;:49;;;;;15603:23;15616:9;15603:12;:23::i;:::-;15602:24;15577:49;15573:131;;;15648:14;:12;:14::i;:::-;15647:15;15639:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:131;15718:11;15745:4;;;;;;;;;;;15732:17;;:9;:17;;;15718:31;;15764:21;15778:6;15764:13;:21::i;:::-;15811:16;:24;15828:6;15811:24;;;;;;;;;;;;;;;;;;;;;;;;;15810:25;:57;;;;;15840:16;:27;15857:9;15840:27;;;;;;;;;;;;;;;;;;;;;;;;;15839:28;15810:57;:70;;;;;15872:8;;;;;;;;;;;15871:9;15810:70;15807:528;;;15928:12;15915:10;;15899:13;;:26;;;;:::i;:::-;:41;15896:183;;;15976:4;;;;;;;;;;;15963:17;;:9;:17;;;15960:45;;16001:4;15982:5;:16;15988:9;15982:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15960:45;16037:4;;;;;;;;;;;16027:14;;:6;:14;;;16024:39;;16059:4;16043:5;:13;16049:6;16043:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16024:39;15896:183;16111:11;;16101:6;:21;;16093:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16187:4;;;;;;;;;;;16174:17;;:9;:17;;;16171:150;;16252:15;;16242:6;16219:20;16229:9;16219;:20::i;:::-;:29;;;;:::i;:::-;:48;;16211:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16171:150;15807:528;16351:11;16451:8;;;;;;;;;;;:36;;;;16463:16;:24;16480:6;16463:24;;;;;;;;;;;;;;;;;;;;;;;;;16451:36;:67;;;;16491:16;:27;16508:9;16491:27;;;;;;;;;;;;;;;;;;;;;;;;;16451:67;16447:250;;;16526:1;16520:7;;16447:250;;;16601:4;;;;;;;;;;;16588:17;;:9;:17;;;16585:100;;;16635:3;16622:10;;16613:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16607:31;;16585:100;;;16682:3;16673:6;;16664;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16658:27;;16585:100;16447:250;16814:11;;;;;;;;;;;:24;;;;;16830:8;;;;;;;;;;;16829:9;16814:24;:42;;;;;16852:4;;;;;;;;;;;16842:14;;:6;:14;;;;16814:42;:53;;;;;16866:1;16860:3;:7;16814:53;16810:72;;;16869:13;:11;:13::i;:::-;16810:72;16896:48;16912:6;16920:9;16940:3;16931:6;:12;;;;:::i;:::-;16896:15;:48::i;:::-;16964:1;16958:3;:7;16955:55;;;16967:43;16983:6;16999:4;17006:3;16967:15;:43::i;:::-;16955:55;15388:1633;;15300:1721;;;:::o;18389:403::-;18455:21;18493:1;18479:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18455:40;;18524:4;18506;18511:1;18506:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18550:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18540:4;18545:1;18540:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18577:53;18594:4;18609:6;;;;;;;;;;;18618:11;18577:8;:53::i;:::-;18670:6;;;;;;;;;;;:57;;;18728:11;18741:1;18744:4;18758;18765:15;18670:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18444:348;18389:403;:::o;11351:318::-;11466:6;11441:21;:31;;11433:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11521:12;11539:9;:14;;11561:6;11539:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11520:52;;;11591:7;11583:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11422:247;11351:318;;:::o;12440:173::-;12496:16;12515:6;;;;;;;;;;;12496:25;;12541:8;12532:6;;:17;;;;;;;;;;;;;;;;;;12596:8;12565:40;;12586:8;12565:40;;;;;;;;;;;;12485:128;12440:173;:::o;19647:152::-;19708:4;19780:10;19759:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;19733:4;;;;;;;;;;;:14;;;19748:6;19733:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;19726:64;;19647:152;;;:::o;21667:126::-;21713:4;21776:8;;21754:19;;:30;;;;:::i;:::-;21738:12;:46;;21731:53;;21667:126;:::o;21451:209::-;21512:21;;;;;;;;;;;21511:22;:32;;;;;21537:6;21511:32;21507:145;;;21585:4;21561:21;;:28;;;;;;;;;;;;;;;;;;21627:12;21605:19;:34;;;;21507:145;21451:209;:::o;17030:1351::-;14556:8;;;;;;;;;;;14551:104;;14592:4;14581:8;;:15;;;;;;;;;;;;;;;;;;17079:23:::1;17105:24;17123:4;17105:9;:24::i;:::-;17079:50;;17163:13;;17144:15;:32;17140:1234;;17251:19;17286:1;17273:10;;:14;;;;:::i;:::-;17251:36;;17302:32;17377:11;17355:9;:19;;;17337:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17302:86;;17403:14;17438:24;17420:15;:42;;;;:::i;:::-;17403:59;;17480:23;17506:21;17480:47;;17545:24;17562:6;17545:16;:24::i;:::-;17587:20;17634:15;17610:21;:39;;;;:::i;:::-;17587:62;;17664:19;17715:9;:19;;;17701:11;:33;;;;:::i;:::-;17685:12;:50;;;;:::i;:::-;17664:71;;17750:29;17796:9;:19;;;17782:11;:33;;;;:::i;:::-;17750:65;;17860:1;17836:21;:25;17833:170;;;17926:61;17939:24;17965:21;17926:12;:61::i;:::-;17833:170;18020:20;18061:9;:19;;;18057:1;18043:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18020:60;;18113:1;18098:12;:16;18095:103;;;18134:48;18169:12;18142:15;;;;;;;;;;;18134:34;;;;:48;;;;:::i;:::-;18095:103;18215:14;18250:9;:13;;;18246:1;18232:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18215:48;;18290:1;18281:6;:10;18278:85;;;18311:36;18340:6;18319:9;;;;;;;;;;;18311:28;;;;:36;;;;:::i;:::-;18278:85;17178:1196;;;;;;;;;17140:1234;17068:1313;14638:5:::0;14627:8;;:16;;;;;;;;;;;;;;;;;;14551:104;17030:1351::o;7759:610::-;7883:1;7865:20;;:6;:20;;;;7857:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:1;7946:23;;:9;:23;;;;7938:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8026:47;8047:6;8055:9;8066:6;8026:20;:47::i;:::-;8087:21;8111:9;:17;8121:6;8111:17;;;;;;;;;;;;;;;;8087:41;;8164:6;8147:13;:23;;8139:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8260:6;8244:13;:22;;;;:::i;:::-;8224:9;:17;8234:6;8224:17;;;;;;;;;;;;;;;:42;;;;8301:6;8277:9;:20;8287:9;8277:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8343:9;8326:35;;8335:6;8326:35;;;8354:6;8326:35;;;;;;:::i;:::-;;;;;;;;7846:523;7759:610;;;:::o;18801:498::-;18949:53;18966:4;18981:6;;;;;;;;;;;18990:11;18949:8;:53::i;:::-;19046:6;;;;;;;;;;;:22;;;19076:9;19109:4;19129:11;19155:1;19198;19241:9;;;;;;;;;;;19265:15;19046:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18801:498;;:::o;11229:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:329::-;6880:6;6929:2;6917:9;6908:7;6904:23;6900:32;6897:119;;;6935:79;;:::i;:::-;6897:119;7055:1;7080:53;7125:7;7116:6;7105:9;7101:22;7080:53;:::i;:::-;7070:63;;7026:117;6821:329;;;;:::o;7156:442::-;7305:4;7343:2;7332:9;7328:18;7320:26;;7356:71;7424:1;7413:9;7409:17;7400:6;7356:71;:::i;:::-;7437:72;7505:2;7494:9;7490:18;7481:6;7437:72;:::i;:::-;7519;7587:2;7576:9;7572:18;7563:6;7519:72;:::i;:::-;7156:442;;;;;;:::o;7604:118::-;7691:24;7709:5;7691:24;:::i;:::-;7686:3;7679:37;7604:118;;:::o;7728:222::-;7821:4;7859:2;7848:9;7844:18;7836:26;;7872:71;7940:1;7929:9;7925:17;7916:6;7872:71;:::i;:::-;7728:222;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:174::-;25285:26;25281:1;25273:6;25269:14;25262:50;25145:174;:::o;25325:366::-;25467:3;25488:67;25552:2;25547:3;25488:67;:::i;:::-;25481:74;;25564:93;25653:3;25564:93;:::i;:::-;25682:2;25677:3;25673:12;25666:19;;25325:366;;;:::o;25697:419::-;25863:4;25901:2;25890:9;25886:18;25878:26;;25950:9;25944:4;25940:20;25936:1;25925:9;25921:17;25914:47;25978:131;26104:4;25978:131;:::i;:::-;25970:139;;25697:419;;;:::o;26122:179::-;26262:31;26258:1;26250:6;26246:14;26239:55;26122:179;:::o;26307:366::-;26449:3;26470:67;26534:2;26529:3;26470:67;:::i;:::-;26463:74;;26546:93;26635:3;26546:93;:::i;:::-;26664:2;26659:3;26655:12;26648:19;;26307:366;;;:::o;26679:419::-;26845:4;26883:2;26872:9;26868:18;26860:26;;26932:9;26926:4;26922:20;26918:1;26907:9;26903:17;26896:47;26960:131;27086:4;26960:131;:::i;:::-;26952:139;;26679:419;;;:::o;27104:220::-;27244:34;27240:1;27232:6;27228:14;27221:58;27313:3;27308:2;27300:6;27296:15;27289:28;27104:220;:::o;27330:366::-;27472:3;27493:67;27557:2;27552:3;27493:67;:::i;:::-;27486:74;;27569:93;27658:3;27569:93;:::i;:::-;27687:2;27682:3;27678:12;27671:19;;27330:366;;;:::o;27702:419::-;27868:4;27906:2;27895:9;27891:18;27883:26;;27955:9;27949:4;27945:20;27941:1;27930:9;27926:17;27919:47;27983:131;28109:4;27983:131;:::i;:::-;27975:139;;27702:419;;;:::o;28127:143::-;28184:5;28215:6;28209:13;28200:22;;28231:33;28258:5;28231:33;:::i;:::-;28127:143;;;;:::o;28276:351::-;28346:6;28395:2;28383:9;28374:7;28370:23;28366:32;28363:119;;;28401:79;;:::i;:::-;28363:119;28521:1;28546:64;28602:7;28593:6;28582:9;28578:22;28546:64;:::i;:::-;28536:74;;28492:128;28276:351;;;;:::o;28633:85::-;28678:7;28707:5;28696:16;;28633:85;;;:::o;28724:158::-;28782:9;28815:61;28833:42;28842:32;28868:5;28842:32;:::i;:::-;28833:42;:::i;:::-;28815:61;:::i;:::-;28802:74;;28724:158;;;:::o;28888:147::-;28983:45;29022:5;28983:45;:::i;:::-;28978:3;28971:58;28888:147;;:::o;29041:114::-;29108:6;29142:5;29136:12;29126:22;;29041:114;;;:::o;29161:184::-;29260:11;29294:6;29289:3;29282:19;29334:4;29329:3;29325:14;29310:29;;29161:184;;;;:::o;29351:132::-;29418:4;29441:3;29433:11;;29471:4;29466:3;29462:14;29454:22;;29351:132;;;:::o;29489:108::-;29566:24;29584:5;29566:24;:::i;:::-;29561:3;29554:37;29489:108;;:::o;29603:179::-;29672:10;29693:46;29735:3;29727:6;29693:46;:::i;:::-;29771:4;29766:3;29762:14;29748:28;;29603:179;;;;:::o;29788:113::-;29858:4;29890;29885:3;29881:14;29873:22;;29788:113;;;:::o;29937:732::-;30056:3;30085:54;30133:5;30085:54;:::i;:::-;30155:86;30234:6;30229:3;30155:86;:::i;:::-;30148:93;;30265:56;30315:5;30265:56;:::i;:::-;30344:7;30375:1;30360:284;30385:6;30382:1;30379:13;30360:284;;;30461:6;30455:13;30488:63;30547:3;30532:13;30488:63;:::i;:::-;30481:70;;30574:60;30627:6;30574:60;:::i;:::-;30564:70;;30420:224;30407:1;30404;30400:9;30395:14;;30360:284;;;30364:14;30660:3;30653:10;;30061:608;;;29937:732;;;;:::o;30675:831::-;30938:4;30976:3;30965:9;30961:19;30953:27;;30990:71;31058:1;31047:9;31043:17;31034:6;30990:71;:::i;:::-;31071:80;31147:2;31136:9;31132:18;31123:6;31071:80;:::i;:::-;31198:9;31192:4;31188:20;31183:2;31172:9;31168:18;31161:48;31226:108;31329:4;31320:6;31226:108;:::i;:::-;31218:116;;31344:72;31412:2;31401:9;31397:18;31388:6;31344:72;:::i;:::-;31426:73;31494:3;31483:9;31479:19;31470:6;31426:73;:::i;:::-;30675:831;;;;;;;;:::o;31512:179::-;31652:31;31648:1;31640:6;31636:14;31629:55;31512:179;:::o;31697:366::-;31839:3;31860:67;31924:2;31919:3;31860:67;:::i;:::-;31853:74;;31936:93;32025:3;31936:93;:::i;:::-;32054:2;32049:3;32045:12;32038:19;;31697:366;;;:::o;32069:419::-;32235:4;32273:2;32262:9;32258:18;32250:26;;32322:9;32316:4;32312:20;32308:1;32297:9;32293:17;32286:47;32350:131;32476:4;32350:131;:::i;:::-;32342:139;;32069:419;;;:::o;32494:147::-;32595:11;32632:3;32617:18;;32494:147;;;;:::o;32647:114::-;;:::o;32767:398::-;32926:3;32947:83;33028:1;33023:3;32947:83;:::i;:::-;32940:90;;33039:93;33128:3;33039:93;:::i;:::-;33157:1;33152:3;33148:11;33141:18;;32767:398;;;:::o;33171:379::-;33355:3;33377:147;33520:3;33377:147;:::i;:::-;33370:154;;33541:3;33534:10;;33171:379;;;:::o;33556:245::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:28;33760:2;33752:6;33748:15;33741:53;33556:245;:::o;33807:366::-;33949:3;33970:67;34034:2;34029:3;33970:67;:::i;:::-;33963:74;;34046:93;34135:3;34046:93;:::i;:::-;34164:2;34159:3;34155:12;34148:19;;33807:366;;;:::o;34179:419::-;34345:4;34383:2;34372:9;34368:18;34360:26;;34432:9;34426:4;34422:20;34418:1;34407:9;34403:17;34396:47;34460:131;34586:4;34460:131;:::i;:::-;34452:139;;34179:419;;;:::o;34604:143::-;34661:5;34692:6;34686:13;34677:22;;34708:33;34735:5;34708:33;:::i;:::-;34604:143;;;;:::o;34753:351::-;34823:6;34872:2;34860:9;34851:7;34847:23;34843:32;34840:119;;;34878:79;;:::i;:::-;34840:119;34998:1;35023:64;35079:7;35070:6;35059:9;35055:22;35023:64;:::i;:::-;35013:74;;34969:128;34753:351;;;;:::o;35110:224::-;35250:34;35246:1;35238:6;35234:14;35227:58;35319:7;35314:2;35306:6;35302:15;35295:32;35110:224;:::o;35340:366::-;35482:3;35503:67;35567:2;35562:3;35503:67;:::i;:::-;35496:74;;35579:93;35668:3;35579:93;:::i;:::-;35697:2;35692:3;35688:12;35681:19;;35340:366;;;:::o;35712:419::-;35878:4;35916:2;35905:9;35901:18;35893:26;;35965:9;35959:4;35955:20;35951:1;35940:9;35936:17;35929:47;35993:131;36119:4;35993:131;:::i;:::-;35985:139;;35712:419;;;:::o;36137:222::-;36277:34;36273:1;36265:6;36261:14;36254:58;36346:5;36341:2;36333:6;36329:15;36322:30;36137:222;:::o;36365:366::-;36507:3;36528:67;36592:2;36587:3;36528:67;:::i;:::-;36521:74;;36604:93;36693:3;36604:93;:::i;:::-;36722:2;36717:3;36713:12;36706:19;;36365:366;;;:::o;36737:419::-;36903:4;36941:2;36930:9;36926:18;36918:26;;36990:9;36984:4;36980:20;36976:1;36965:9;36961:17;36954:47;37018:131;37144:4;37018:131;:::i;:::-;37010:139;;36737:419;;;:::o;37162:225::-;37302:34;37298:1;37290:6;37286:14;37279:58;37371:8;37366:2;37358:6;37354:15;37347:33;37162:225;:::o;37393:366::-;37535:3;37556:67;37620:2;37615:3;37556:67;:::i;:::-;37549:74;;37632:93;37721:3;37632:93;:::i;:::-;37750:2;37745:3;37741:12;37734:19;;37393:366;;;:::o;37765:419::-;37931:4;37969:2;37958:9;37954:18;37946:26;;38018:9;38012:4;38008:20;38004:1;37993:9;37989:17;37982:47;38046:131;38172:4;38046:131;:::i;:::-;38038:139;;37765:419;;;:::o;38190:807::-;38439:4;38477:3;38466:9;38462:19;38454:27;;38491:71;38559:1;38548:9;38544:17;38535:6;38491:71;:::i;:::-;38572:72;38640:2;38629:9;38625:18;38616:6;38572:72;:::i;:::-;38654:80;38730:2;38719:9;38715:18;38706:6;38654:80;:::i;:::-;38744;38820:2;38809:9;38805:18;38796:6;38744:80;:::i;:::-;38834:73;38902:3;38891:9;38887:19;38878:6;38834:73;:::i;:::-;38917;38985:3;38974:9;38970:19;38961:6;38917:73;:::i;:::-;38190:807;;;;;;;;;:::o;39003:663::-;39091:6;39099;39107;39156:2;39144:9;39135:7;39131:23;39127:32;39124:119;;;39162:79;;:::i;:::-;39124:119;39282:1;39307:64;39363:7;39354:6;39343:9;39339:22;39307:64;:::i;:::-;39297:74;;39253:128;39420:2;39446:64;39502:7;39493:6;39482:9;39478:22;39446:64;:::i;:::-;39436:74;;39391:129;39559:2;39585:64;39641:7;39632:6;39621:9;39617:22;39585:64;:::i;:::-;39575:74;;39530:129;39003:663;;;;;:::o

Swarm Source

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