ETH Price: $3,468.33 (-1.09%)
Gas: 3 Gwei

Token

SIGMA TOKEN (SGMA)
 

Overview

Max Total Supply

1,000,000,000 SGMA

Holders

630

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,425.368649483442695925 SGMA

Value
$0.00
0x17DA4F3654149e560A1AB0c93a91cE7718825E33
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:
SIGMATOKEN

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

// SIGMA TOKEN

// ______   ______   ______   __       __   ______  
// /      \ |      \ /      \ |  \     /  \ /      \ 
//|  $$$$$$\ \$$$$$$|  $$$$$$\| $$\   /  $$|  $$$$$$\
//| $$___\$$  | $$  | $$ __\$$| $$$\ /  $$$| $$__| $$
// \$$    \   | $$  | $$|    \| $$$$\  $$$$| $$    $$
// _\$$$$$$\  | $$  | $$ \$$$$| $$\$$ $$ $$| $$$$$$$$
//|  \__| $$ _| $$_ | $$__| $$| $$ \$$$| $$| $$  | $$
// \$$    $$|   $$ \ \$$    $$| $$  \$ | $$| $$  | $$
//  \$$$$$$  \$$$$$$  \$$$$$$  \$$      \$$ \$$   \$$
//                                                   



// BUILT BY SAFU DEV IAN CAWREY 





//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.8;

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 IBEP20 {
    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 IBEP20Metadata is IBEP20 {
    /**
     * @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 BEP20 is Context, IBEP20, IBEP20Metadata {
    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 {BEP20} 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
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IBEP20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IBEP20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IBEP20-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 {IBEP20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IBEP20-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 {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20}.
     *
     * 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, "BEP20: 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 {IBEP20-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 {IBEP20-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, "BEP20: 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), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "BEP20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, 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), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract SIGMATOKEN is BEP20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _interlock = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 public tokenLiquidityThreshold = 1e6 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 3;
    uint256 private launchtax = 99;

    address public marketingWallet = 0xa629F1F6C6593485642CD001954Ca2097cDd8BE3;
    address public devWallet = 0x6cbC65d2b4A5EbBeF53F3140FCFF49dCca6A463b;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 dev;
    }

    Taxes public taxes = Taxes(2, 0, 2);
    Taxes public sellTaxes = Taxes(2, 0, 2);

    mapping(address => bool) public exemptFee;

    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() BEP20("SIGMA TOKEN", "SGMA") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pancake pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0x5BA1C3039b4C443d654c15F78207eD24ae1F9CFC] = true;
        exemptFee[0x6cbC65d2b4A5EbBeF53F3140FCFF49dCca6A463b] = true;

    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "BEP20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +      
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (sender == pair && recipient != address(router) && !useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {

        if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to pancake
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 MarketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (MarketingAmt > 0) {
                payable(marketingWallet).sendValue(MarketingAmt);
            }

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake pair path of token -> weth
        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 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        require(new_amount <= 1e7, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
        require((_marketing + _liquidity + _dev) <= 12, "Must keep fees at 12% or less");
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        require((_marketing + _liquidity + _dev) <= 12, "Must keep fees at 12% or less");
    }

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBSC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IBEP20(tokenAdd).transfer(owner(), amount);
    }

    // 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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","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":[],"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":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069d3c21bcecceda10000006008556003600a556063600b5573a629f1f6c6593485642cd001954ca2097cdd8be3600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736cbc65d2b4a5ebbef53f3140fcff49dcca6a463b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060028152602001600081526020016002815250600e600082015181600001556020820151816001015560408201518160020155505060405180606001604052806002815260200160008152602001600281525060116000820151816000015560208201518160010155604082015181600201555050348015620001a457600080fd5b506040518060400160405280600b81526020017f5349474d4120544f4b454e0000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53474d410000000000000000000000000000000000000000000000000000000081525081600390805190602001906200022992919062000914565b5080600490805190602001906200024292919062000914565b50505062000265620002596200078760201b60201c565b6200078f60201b60201c565b620002a5336200027a6200085560201b60201c565b600a62000288919062000b5e565b633b9aca0062000299919062000baf565b6200085e60201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038a919062000c7a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000418919062000c7a565b6040518363ffffffff1660e01b81526004016200043792919062000cbd565b6020604051808303816000875af115801562000457573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047d919062000c7a565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000735ba1c3039b4c443d654c15f78207ed24ae1f9cfc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000736cbc65d2b4a5ebbef53f3140fcff49dcca6a463b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000d7d565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000908919062000cfb565b60405180910390a35050565b828054620009229062000d47565b90600052602060002090601f01602090048101928262000946576000855562000992565b82601f106200096157805160ff191683800117855562000992565b8280016001018555821562000992579182015b828111156200099157825182559160200191906001019062000974565b5b509050620009a19190620009a5565b5090565b5b80821115620009c0576000816000905550600101620009a6565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a525780860481111562000a2a5762000a29620009c4565b5b600185161562000a3a5780820291505b808102905062000a4a85620009f3565b945062000a0a565b94509492505050565b60008262000a6d576001905062000b40565b8162000a7d576000905062000b40565b816001811462000a96576002811462000aa15762000ad7565b600191505062000b40565b60ff84111562000ab65762000ab5620009c4565b5b8360020a91508482111562000ad05762000acf620009c4565b5b5062000b40565b5060208310610133831016604e8410600b841016171562000b115782820a90508381111562000b0b5762000b0a620009c4565b5b62000b40565b62000b20848484600162000a00565b9250905081840481111562000b3a5762000b39620009c4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b6b8262000b47565b915062000b788362000b51565b925062000ba77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a5b565b905092915050565b600062000bbc8262000b47565b915062000bc98362000b47565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c055762000c04620009c4565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c428262000c15565b9050919050565b62000c548162000c35565b811462000c6057600080fd5b50565b60008151905062000c748162000c49565b92915050565b60006020828403121562000c935762000c9262000c10565b5b600062000ca38482850162000c63565b91505092915050565b62000cb78162000c35565b82525050565b600060408201905062000cd4600083018562000cac565b62000ce3602083018462000cac565b9392505050565b62000cf58162000b47565b82525050565b600060208201905062000d12600083018462000cea565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d6057607f821691505b6020821081141562000d775762000d7662000d18565b5b50919050565b61464c8062000d8d6000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063edaa11681161006f578063edaa116814610816578063f2fde38b1461083f578063f66895a314610868578063f887ea4014610895578063fbe6324e146108c057610230565b8063a9059cbb1461070d578063aacebbe31461074a578063c5d32bb214610773578063c9300ed5146107b0578063dd62ed3e146107d957610230565b80638da5cb5b116100f25780638da5cb5b146106245780638ea5220f1461064f57806395d89b411461067a578063a457c2d7146106a5578063a8aa1b31146106e257610230565b8063715018a61461058a578063728f8eea146105a157806375f0a874146105ce57806385141a77146105f957610230565b8063274a533c116101b1578063441b1d3011610175578063441b1d30146104a75780634a2b3b13146104d05780634ada218b146104f95780634e736f221461052457806370a082311461054d57610230565b8063274a533c146103c2578063313ce567146103ed578063355496ca14610418578063395093511461044157806342b6fa111461047e57610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a5780631816467f146103455780631d97b7cd1461036e57806323b872dd1461038557610230565b806306fdde0314610235578063095ea7b3146102605780630e375a5c1461029d5780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108eb565b6040516102579190612e9a565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612f64565b61097d565b6040516102949190612fbf565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061314e565b61099b565b005b3480156102d257600080fd5b506102ed60048036038101906102e891906131aa565b610aac565b005b3480156102fb57600080fd5b50610304610b45565b60405161031191906131e6565b60405180910390f35b34801561032657600080fd5b5061032f610b4b565b60405161033c91906131e6565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190613201565b610b55565b005b34801561037a57600080fd5b50610383610c85565b005b34801561039157600080fd5b506103ac60048036038101906103a7919061322e565b610d90565b6040516103b99190612fbf565b60405180910390f35b3480156103ce57600080fd5b506103d7610e91565b6040516103e491906131e6565b60405180910390f35b3480156103f957600080fd5b50610402610e97565b60405161040f919061329d565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a91906132b8565b610ea0565b005b34801561044d57600080fd5b5061046860048036038101906104639190612f64565b610f77565b6040516104759190612fbf565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906132f8565b611023565b005b3480156104b357600080fd5b506104ce60048036038101906104c991906132f8565b61110d565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190613325565b6111da565b005b34801561050557600080fd5b5061050e6112f3565b60405161051b9190612fbf565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613325565b611306565b005b34801561055957600080fd5b50610574600480360381019061056f9190613201565b61141f565b60405161058191906131e6565b60405180910390f35b34801561059657600080fd5b5061059f611467565b005b3480156105ad57600080fd5b506105b66114ef565b6040516105c593929190613378565b60405180910390f35b3480156105da57600080fd5b506105e3611507565b6040516105f091906133be565b60405180910390f35b34801561060557600080fd5b5061060e61152d565b60405161061b91906133be565b60405180910390f35b34801561063057600080fd5b50610639611533565b60405161064691906133be565b60405180910390f35b34801561065b57600080fd5b5061066461155d565b60405161067191906133be565b60405180910390f35b34801561068657600080fd5b5061068f611583565b60405161069c9190612e9a565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190612f64565b611615565b6040516106d99190612fbf565b60405180910390f35b3480156106ee57600080fd5b506106f7611709565b60405161070491906133be565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f64565b61172f565b6040516107419190612fbf565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190613201565b611746565b005b34801561077f57600080fd5b5061079a60048036038101906107959190613201565b611876565b6040516107a79190612fbf565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612f64565b611896565b005b3480156107e557600080fd5b5061080060048036038101906107fb91906133d9565b611a0b565b60405161080d91906131e6565b60405180910390f35b34801561082257600080fd5b5061083d600480360381019061083891906132f8565b611a92565b005b34801561084b57600080fd5b5061086660048036038101906108619190613201565b611bab565b005b34801561087457600080fd5b5061087d611ca3565b60405161088c93929190613378565b60405180910390f35b3480156108a157600080fd5b506108aa611cbb565b6040516108b79190613478565b60405180910390f35b3480156108cc57600080fd5b506108d5611ce1565b6040516108e29190612fbf565b60405180910390f35b6060600380546108fa906134c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610926906134c2565b80156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b600061099161098a611cf4565b8484611cfc565b6001905092915050565b6109a3611cf4565b73ffffffffffffffffffffffffffffffffffffffff166109c1611533565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90613540565b60405180910390fd5b60005b8251811015610aa7578160146000858481518110610a3b57610a3a613560565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9f906135be565b915050610a1a565b505050565b610ab4611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610ad2611533565b73ffffffffffffffffffffffffffffffffffffffff1614610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90613540565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610b5d611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610b7b611533565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613679565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8d611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610cab611533565b73ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890613540565b60405180910390fd5b600760169054906101000a900460ff1615610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906136e5565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d9d848484611ec7565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610de8611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613777565b60405180910390fd5b610e8585610e74611cf4565b8584610e809190613797565b611cfc565b60019150509392505050565b60095481565b60006012905090565b610ea8611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610ec6611533565b73ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613540565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611019610f84611cf4565b848460016000610f92611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101491906137cb565b611cfc565b6001905092915050565b61102b611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611049611533565b73ffffffffffffffffffffffffffffffffffffffff161461109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109690613540565b60405180910390fd5b629896808111156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613893565b60405180910390fd5b6110ed610e97565b600a6110f991906139e6565b816111049190613a31565b60088190555050565b611115611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611133611533565b73ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613540565b60405180910390fd5b611191611533565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d6573d6000803e3d6000fd5b5050565b6111e2611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611200611533565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613540565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600e600082015181600001556020820151816001015560408201518160020155905050600c8183856112a391906137cb565b6112ad91906137cb565b11156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590613ad7565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b61130e611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661132c611533565b73ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613540565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506011600082015181600001556020820151816001015560408201518160020155905050600c8183856113cf91906137cb565b6113d991906137cb565b111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613ad7565b60405180910390fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146f611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661148d611533565b73ffffffffffffffffffffffffffffffffffffffff16146114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114da90613540565b60405180910390fd5b6114ed6000612470565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611592906134c2565b80601f01602080910402602001604051908101604052809291908181526020018280546115be906134c2565b801561160b5780601f106115e05761010080835404028352916020019161160b565b820191906000526020600020905b8154815290600101906020018083116115ee57829003601f168201915b5050505050905090565b60008060016000611624611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890613b69565b60405180910390fd5b6116fe6116ec611cf4565b8585846116f99190613797565b611cfc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173c338484611ec7565b6001905092915050565b61174e611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661176c611533565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613679565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b61189e611cf4565b73ffffffffffffffffffffffffffffffffffffffff166118bc611533565b73ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613540565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197890613bfb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119a5611533565b836040518363ffffffff1660e01b81526004016119c3929190613c1b565b6020604051808303816000875af11580156119e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a069190613c59565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9a611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611ab8611533565b73ffffffffffffffffffffffffffffffffffffffff1614611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590613540565b60405180910390fd5b600760169054906101000a900460ff1615611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5590613cf8565b60405180910390fd5b60058110611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613d8a565b60405180910390fd5b80600a8190555050565b611bb3611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611bd1611533565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613e1c565b60405180910390fd5b611ca081612470565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6390613eae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd390613f40565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eba91906131e6565b60405180910390a3505050565b60008111611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613fd2565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fae5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200357600760169054906101000a900460ff16612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff99061403e565b60405180910390fd5b5b6000806000612010612de0565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b65750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d05750600a546009546120cd91906137cb565b43105b9050600760149054906101000a900460ff16806121365750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061218a5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121985760009250612380565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121f3575080155b156122555760116002015460116000015460116001015461221491906137cb565b61221e91906137cb565b945084935060116040518060600160405290816000820154815260200160018201548152602001600282015481525050915061237f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156123005750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561230a575080155b1561236c57600e60020154600e60000154600e6001015461232b91906137cb565b61233591906137cb565b9450849350600e6040518060600160405290816000820154815260200160018201548152602001600282015481525050915061237e565b801561237d57600b549450600b5493505b5b5b5b6064848761238e9190613a31565b612398919061408d565b9250600760159054906101000a900460ff1680156124045750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612414576124138583612536565b5b61242a888885896124259190613797565b612755565b60008311156124665760008511156124655760006064868861244c9190613a31565b612456919061408d565b9050612463893083612755565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612751576001600760146101000a81548160ff021916908315150217905550600082141561257357612735565b600061257e3061141f565b90506008548110612733576001600854111561259a5760085490505b60006002846125a99190613a31565b90506000818460200151846125be9190613a31565b6125c8919061408d565b9050600081846125d89190613797565b905060004790506125e8826129c9565b600081476125f69190613797565b9050600087602001518661260a9190613797565b82612615919061408d565b905060008860200151826126299190613a31565b9050600081111561263f5761263e8682612c0c565b5b600089600001516002846126539190613a31565b61265d9190613a31565b905060008111156126b4576126b381600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cec90919063ffffffff16565b5b60008a604001516002856126c89190613a31565b6126d29190613a31565b905060008111156127295761272881600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cec90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc90614130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282c906141c2565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b290614254565b60405180910390fd5b81816128c79190613797565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461295791906137cb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bb91906131e6565b60405180910390a350505050565b6000600267ffffffffffffffff8111156129e6576129e5612fdf565b5b604051908082528060200260200182016040528015612a145781602001602082028036833780820191505090505b5090503081600081518110612a2c57612a2b613560565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af79190614289565b81600181518110612b0b57612b0a613560565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cfc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bd69594939291906143af565b600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b505050505050565b612c3930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cfc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ca296959493929190614409565b60606040518083038185885af1158015612cc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ce5919061447f565b5050505050565b80471015612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d269061451e565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d559061456f565b60006040518083038185875af1925050503d8060008114612d92576040519150601f19603f3d011682016040523d82523d6000602084013e612d97565b606091505b5050905080612ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd2906145f6565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e3b578082015181840152602081019050612e20565b83811115612e4a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e6c82612e01565b612e768185612e0c565b9350612e86818560208601612e1d565b612e8f81612e50565b840191505092915050565b60006020820190508181036000830152612eb48184612e61565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612efb82612ed0565b9050919050565b612f0b81612ef0565b8114612f1657600080fd5b50565b600081359050612f2881612f02565b92915050565b6000819050919050565b612f4181612f2e565b8114612f4c57600080fd5b50565b600081359050612f5e81612f38565b92915050565b60008060408385031215612f7b57612f7a612ec6565b5b6000612f8985828601612f19565b9250506020612f9a85828601612f4f565b9150509250929050565b60008115159050919050565b612fb981612fa4565b82525050565b6000602082019050612fd46000830184612fb0565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61301782612e50565b810181811067ffffffffffffffff8211171561303657613035612fdf565b5b80604052505050565b6000613049612ebc565b9050613055828261300e565b919050565b600067ffffffffffffffff82111561307557613074612fdf565b5b602082029050602081019050919050565b600080fd5b600061309e6130998461305a565b61303f565b905080838252602082019050602084028301858111156130c1576130c0613086565b5b835b818110156130ea57806130d68882612f19565b8452602084019350506020810190506130c3565b5050509392505050565b600082601f83011261310957613108612fda565b5b813561311984826020860161308b565b91505092915050565b61312b81612fa4565b811461313657600080fd5b50565b60008135905061314881613122565b92915050565b6000806040838503121561316557613164612ec6565b5b600083013567ffffffffffffffff81111561318357613182612ecb565b5b61318f858286016130f4565b92505060206131a085828601613139565b9150509250929050565b6000602082840312156131c0576131bf612ec6565b5b60006131ce84828501613139565b91505092915050565b6131e081612f2e565b82525050565b60006020820190506131fb60008301846131d7565b92915050565b60006020828403121561321757613216612ec6565b5b600061322584828501612f19565b91505092915050565b60008060006060848603121561324757613246612ec6565b5b600061325586828701612f19565b935050602061326686828701612f19565b925050604061327786828701612f4f565b9150509250925092565b600060ff82169050919050565b61329781613281565b82525050565b60006020820190506132b2600083018461328e565b92915050565b600080604083850312156132cf576132ce612ec6565b5b60006132dd85828601612f19565b92505060206132ee85828601613139565b9150509250929050565b60006020828403121561330e5761330d612ec6565b5b600061331c84828501612f4f565b91505092915050565b60008060006060848603121561333e5761333d612ec6565b5b600061334c86828701612f4f565b935050602061335d86828701612f4f565b925050604061336e86828701612f4f565b9150509250925092565b600060608201905061338d60008301866131d7565b61339a60208301856131d7565b6133a760408301846131d7565b949350505050565b6133b881612ef0565b82525050565b60006020820190506133d360008301846133af565b92915050565b600080604083850312156133f0576133ef612ec6565b5b60006133fe85828601612f19565b925050602061340f85828601612f19565b9150509250929050565b6000819050919050565b600061343e61343961343484612ed0565b613419565b612ed0565b9050919050565b600061345082613423565b9050919050565b600061346282613445565b9050919050565b61347281613457565b82525050565b600060208201905061348d6000830184613469565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134da57607f821691505b602082108114156134ee576134ed613493565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061352a602083612e0c565b9150613535826134f4565b602082019050919050565b600060208201905081810360008301526135598161351d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c982612f2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135fc576135fb61358f565b5b600182019050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613663602283612e0c565b915061366e82613607565b604082019050919050565b6000602082019050818103600083015261369281613656565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006136cf601883612e0c565b91506136da82613699565b602082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613761602883612e0c565b915061376c82613705565b604082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b60006137a282612f2e565b91506137ad83612f2e565b9250828210156137c0576137bf61358f565b5b828203905092915050565b60006137d682612f2e565b91506137e183612f2e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138165761381561358f565b5b828201905092915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b600061387d603e83612e0c565b915061388882613821565b604082019050919050565b600060208201905081810360008301526138ac81613870565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561390a578086048111156138e6576138e561358f565b5b60018516156138f55780820291505b8081029050613903856138b3565b94506138ca565b94509492505050565b60008261392357600190506139df565b8161393157600090506139df565b8160018114613947576002811461395157613980565b60019150506139df565b60ff8411156139635761396261358f565b5b8360020a91508482111561397a5761397961358f565b5b506139df565b5060208310610133831016604e8410600b84101617156139b55782820a9050838111156139b0576139af61358f565b5b6139df565b6139c284848460016138c0565b925090508184048111156139d9576139d861358f565b5b81810290505b9392505050565b60006139f182612f2e565b91506139fc83613281565b9250613a297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613913565b905092915050565b6000613a3c82612f2e565b9150613a4783612f2e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a8057613a7f61358f565b5b828202905092915050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b6000613ac1601d83612e0c565b9150613acc82613a8b565b602082019050919050565b60006020820190508181036000830152613af081613ab4565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b53602583612e0c565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613be5603683612e0c565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b6000604082019050613c3060008301856133af565b613c3d60208301846131d7565b9392505050565b600081519050613c5381613122565b92915050565b600060208284031215613c6f57613c6e612ec6565b5b6000613c7d84828501613c44565b91505092915050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602583612e0c565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602583612e0c565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e06602683612e0c565b9150613e1182613daa565b604082019050919050565b60006020820190508181036000830152613e3581613df9565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e98602483612e0c565b9150613ea382613e3c565b604082019050919050565b60006020820190508181036000830152613ec781613e8b565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f2a602283612e0c565b9150613f3582613ece565b604082019050919050565b60006020820190508181036000830152613f5981613f1d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613fbc602983612e0c565b9150613fc782613f60565b604082019050919050565b60006020820190508181036000830152613feb81613faf565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614028601383612e0c565b915061403382613ff2565b602082019050919050565b600060208201905081810360008301526140578161401b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061409882612f2e565b91506140a383612f2e565b9250826140b3576140b261405e565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061411a602583612e0c565b9150614125826140be565b604082019050919050565b600060208201905081810360008301526141498161410d565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141ac602383612e0c565b91506141b782614150565b604082019050919050565b600060208201905081810360008301526141db8161419f565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061423e602683612e0c565b9150614249826141e2565b604082019050919050565b6000602082019050818103600083015261426d81614231565b9050919050565b60008151905061428381612f02565b92915050565b60006020828403121561429f5761429e612ec6565b5b60006142ad84828501614274565b91505092915050565b6000819050919050565b60006142db6142d66142d1846142b6565b613419565b612f2e565b9050919050565b6142eb816142c0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61432681612ef0565b82525050565b6000614338838361431d565b60208301905092915050565b6000602082019050919050565b600061435c826142f1565b61436681856142fc565b93506143718361430d565b8060005b838110156143a2578151614389888261432c565b975061439483614344565b925050600181019050614375565b5085935050505092915050565b600060a0820190506143c460008301886131d7565b6143d160208301876142e2565b81810360408301526143e38186614351565b90506143f260608301856133af565b6143ff60808301846131d7565b9695505050505050565b600060c08201905061441e60008301896133af565b61442b60208301886131d7565b61443860408301876142e2565b61444560608301866142e2565b61445260808301856133af565b61445f60a08301846131d7565b979650505050505050565b60008151905061447981612f38565b92915050565b60008060006060848603121561449857614497612ec6565b5b60006144a68682870161446a565b93505060206144b78682870161446a565b92505060406144c88682870161446a565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614508601d83612e0c565b9150614513826144d2565b602082019050919050565b60006020820190508181036000830152614537816144fb565b9050919050565b600081905092915050565b50565b600061455960008361453e565b915061456482614549565b600082019050919050565b600061457a8261454c565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006145e0603a83612e0c565b91506145eb82614584565b604082019050919050565b6000602082019050818103600083015261460f816145d3565b905091905056fea2646970667358221220ab4eea8d6b50a9083194ae1bcd2d406cef5289af6d46499649a307ec0c1cec6764736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063a9059cbb116100ab578063edaa11681161006f578063edaa116814610816578063f2fde38b1461083f578063f66895a314610868578063f887ea4014610895578063fbe6324e146108c057610230565b8063a9059cbb1461070d578063aacebbe31461074a578063c5d32bb214610773578063c9300ed5146107b0578063dd62ed3e146107d957610230565b80638da5cb5b116100f25780638da5cb5b146106245780638ea5220f1461064f57806395d89b411461067a578063a457c2d7146106a5578063a8aa1b31146106e257610230565b8063715018a61461058a578063728f8eea146105a157806375f0a874146105ce57806385141a77146105f957610230565b8063274a533c116101b1578063441b1d3011610175578063441b1d30146104a75780634a2b3b13146104d05780634ada218b146104f95780634e736f221461052457806370a082311461054d57610230565b8063274a533c146103c2578063313ce567146103ed578063355496ca14610418578063395093511461044157806342b6fa111461047e57610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a5780631816467f146103455780631d97b7cd1461036e57806323b872dd1461038557610230565b806306fdde0314610235578063095ea7b3146102605780630e375a5c1461029d5780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108eb565b6040516102579190612e9a565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612f64565b61097d565b6040516102949190612fbf565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061314e565b61099b565b005b3480156102d257600080fd5b506102ed60048036038101906102e891906131aa565b610aac565b005b3480156102fb57600080fd5b50610304610b45565b60405161031191906131e6565b60405180910390f35b34801561032657600080fd5b5061032f610b4b565b60405161033c91906131e6565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190613201565b610b55565b005b34801561037a57600080fd5b50610383610c85565b005b34801561039157600080fd5b506103ac60048036038101906103a7919061322e565b610d90565b6040516103b99190612fbf565b60405180910390f35b3480156103ce57600080fd5b506103d7610e91565b6040516103e491906131e6565b60405180910390f35b3480156103f957600080fd5b50610402610e97565b60405161040f919061329d565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a91906132b8565b610ea0565b005b34801561044d57600080fd5b5061046860048036038101906104639190612f64565b610f77565b6040516104759190612fbf565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a091906132f8565b611023565b005b3480156104b357600080fd5b506104ce60048036038101906104c991906132f8565b61110d565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190613325565b6111da565b005b34801561050557600080fd5b5061050e6112f3565b60405161051b9190612fbf565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613325565b611306565b005b34801561055957600080fd5b50610574600480360381019061056f9190613201565b61141f565b60405161058191906131e6565b60405180910390f35b34801561059657600080fd5b5061059f611467565b005b3480156105ad57600080fd5b506105b66114ef565b6040516105c593929190613378565b60405180910390f35b3480156105da57600080fd5b506105e3611507565b6040516105f091906133be565b60405180910390f35b34801561060557600080fd5b5061060e61152d565b60405161061b91906133be565b60405180910390f35b34801561063057600080fd5b50610639611533565b60405161064691906133be565b60405180910390f35b34801561065b57600080fd5b5061066461155d565b60405161067191906133be565b60405180910390f35b34801561068657600080fd5b5061068f611583565b60405161069c9190612e9a565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190612f64565b611615565b6040516106d99190612fbf565b60405180910390f35b3480156106ee57600080fd5b506106f7611709565b60405161070491906133be565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f64565b61172f565b6040516107419190612fbf565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190613201565b611746565b005b34801561077f57600080fd5b5061079a60048036038101906107959190613201565b611876565b6040516107a79190612fbf565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612f64565b611896565b005b3480156107e557600080fd5b5061080060048036038101906107fb91906133d9565b611a0b565b60405161080d91906131e6565b60405180910390f35b34801561082257600080fd5b5061083d600480360381019061083891906132f8565b611a92565b005b34801561084b57600080fd5b5061086660048036038101906108619190613201565b611bab565b005b34801561087457600080fd5b5061087d611ca3565b60405161088c93929190613378565b60405180910390f35b3480156108a157600080fd5b506108aa611cbb565b6040516108b79190613478565b60405180910390f35b3480156108cc57600080fd5b506108d5611ce1565b6040516108e29190612fbf565b60405180910390f35b6060600380546108fa906134c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610926906134c2565b80156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b600061099161098a611cf4565b8484611cfc565b6001905092915050565b6109a3611cf4565b73ffffffffffffffffffffffffffffffffffffffff166109c1611533565b73ffffffffffffffffffffffffffffffffffffffff1614610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90613540565b60405180910390fd5b60005b8251811015610aa7578160146000858481518110610a3b57610a3a613560565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9f906135be565b915050610a1a565b505050565b610ab4611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610ad2611533565b73ffffffffffffffffffffffffffffffffffffffff1614610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90613540565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610b5d611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610b7b611533565b73ffffffffffffffffffffffffffffffffffffffff1614610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc890613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613679565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c8d611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610cab611533565b73ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890613540565b60405180910390fd5b600760169054906101000a900460ff1615610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906136e5565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610d9d848484611ec7565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610de8611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90613777565b60405180910390fd5b610e8585610e74611cf4565b8584610e809190613797565b611cfc565b60019150509392505050565b60095481565b60006012905090565b610ea8611cf4565b73ffffffffffffffffffffffffffffffffffffffff16610ec6611533565b73ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613540565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611019610f84611cf4565b848460016000610f92611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101491906137cb565b611cfc565b6001905092915050565b61102b611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611049611533565b73ffffffffffffffffffffffffffffffffffffffff161461109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109690613540565b60405180910390fd5b629896808111156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613893565b60405180910390fd5b6110ed610e97565b600a6110f991906139e6565b816111049190613a31565b60088190555050565b611115611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611133611533565b73ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613540565b60405180910390fd5b611191611533565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d6573d6000803e3d6000fd5b5050565b6111e2611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611200611533565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613540565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600e600082015181600001556020820151816001015560408201518160020155905050600c8183856112a391906137cb565b6112ad91906137cb565b11156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590613ad7565b60405180910390fd5b505050565b600760169054906101000a900460ff1681565b61130e611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661132c611533565b73ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613540565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506011600082015181600001556020820151816001015560408201518160020155905050600c8183856113cf91906137cb565b6113d991906137cb565b111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613ad7565b60405180910390fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146f611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661148d611533565b73ffffffffffffffffffffffffffffffffffffffff16146114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114da90613540565b60405180910390fd5b6114ed6000612470565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611592906134c2565b80601f01602080910402602001604051908101604052809291908181526020018280546115be906134c2565b801561160b5780601f106115e05761010080835404028352916020019161160b565b820191906000526020600020905b8154815290600101906020018083116115ee57829003601f168201915b5050505050905090565b60008060016000611624611cf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890613b69565b60405180910390fd5b6116fe6116ec611cf4565b8585846116f99190613797565b611cfc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173c338484611ec7565b6001905092915050565b61174e611cf4565b73ffffffffffffffffffffffffffffffffffffffff1661176c611533565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613679565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60146020528060005260406000206000915054906101000a900460ff1681565b61189e611cf4565b73ffffffffffffffffffffffffffffffffffffffff166118bc611533565b73ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613540565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197890613bfb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119a5611533565b836040518363ffffffff1660e01b81526004016119c3929190613c1b565b6020604051808303816000875af11580156119e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a069190613c59565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9a611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611ab8611533565b73ffffffffffffffffffffffffffffffffffffffff1614611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590613540565b60405180910390fd5b600760169054906101000a900460ff1615611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5590613cf8565b60405180910390fd5b60058110611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613d8a565b60405180910390fd5b80600a8190555050565b611bb3611cf4565b73ffffffffffffffffffffffffffffffffffffffff16611bd1611533565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613540565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613e1c565b60405180910390fd5b611ca081612470565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6390613eae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd390613f40565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eba91906131e6565b60405180910390a3505050565b60008111611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613fd2565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fae5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200357600760169054906101000a900460ff16612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff99061403e565b60405180910390fd5b5b6000806000612010612de0565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b65750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d05750600a546009546120cd91906137cb565b43105b9050600760149054906101000a900460ff16806121365750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061218a5750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121985760009250612380565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121f3575080155b156122555760116002015460116000015460116001015461221491906137cb565b61221e91906137cb565b945084935060116040518060600160405290816000820154815260200160018201548152602001600282015481525050915061237f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480156123005750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561230a575080155b1561236c57600e60020154600e60000154600e6001015461232b91906137cb565b61233591906137cb565b9450849350600e6040518060600160405290816000820154815260200160018201548152602001600282015481525050915061237e565b801561237d57600b549450600b5493505b5b5b5b6064848761238e9190613a31565b612398919061408d565b9250600760159054906101000a900460ff1680156124045750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612414576124138583612536565b5b61242a888885896124259190613797565b612755565b60008311156124665760008511156124655760006064868861244c9190613a31565b612456919061408d565b9050612463893083612755565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612751576001600760146101000a81548160ff021916908315150217905550600082141561257357612735565b600061257e3061141f565b90506008548110612733576001600854111561259a5760085490505b60006002846125a99190613a31565b90506000818460200151846125be9190613a31565b6125c8919061408d565b9050600081846125d89190613797565b905060004790506125e8826129c9565b600081476125f69190613797565b9050600087602001518661260a9190613797565b82612615919061408d565b905060008860200151826126299190613a31565b9050600081111561263f5761263e8682612c0c565b5b600089600001516002846126539190613a31565b61265d9190613a31565b905060008111156126b4576126b381600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cec90919063ffffffff16565b5b60008a604001516002856126c89190613a31565b6126d29190613a31565b905060008111156127295761272881600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612cec90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc90614130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282c906141c2565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b290614254565b60405180910390fd5b81816128c79190613797565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461295791906137cb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bb91906131e6565b60405180910390a350505050565b6000600267ffffffffffffffff8111156129e6576129e5612fdf565b5b604051908082528060200260200182016040528015612a145781602001602082028036833780820191505090505b5090503081600081518110612a2c57612a2b613560565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af79190614289565b81600181518110612b0b57612b0a613560565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cfc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bd69594939291906143af565b600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b505050505050565b612c3930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cfc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ca296959493929190614409565b60606040518083038185885af1158015612cc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ce5919061447f565b5050505050565b80471015612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d269061451e565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612d559061456f565b60006040518083038185875af1925050503d8060008114612d92576040519150601f19603f3d011682016040523d82523d6000602084013e612d97565b606091505b5050905080612ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd2906145f6565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e3b578082015181840152602081019050612e20565b83811115612e4a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e6c82612e01565b612e768185612e0c565b9350612e86818560208601612e1d565b612e8f81612e50565b840191505092915050565b60006020820190508181036000830152612eb48184612e61565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612efb82612ed0565b9050919050565b612f0b81612ef0565b8114612f1657600080fd5b50565b600081359050612f2881612f02565b92915050565b6000819050919050565b612f4181612f2e565b8114612f4c57600080fd5b50565b600081359050612f5e81612f38565b92915050565b60008060408385031215612f7b57612f7a612ec6565b5b6000612f8985828601612f19565b9250506020612f9a85828601612f4f565b9150509250929050565b60008115159050919050565b612fb981612fa4565b82525050565b6000602082019050612fd46000830184612fb0565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61301782612e50565b810181811067ffffffffffffffff8211171561303657613035612fdf565b5b80604052505050565b6000613049612ebc565b9050613055828261300e565b919050565b600067ffffffffffffffff82111561307557613074612fdf565b5b602082029050602081019050919050565b600080fd5b600061309e6130998461305a565b61303f565b905080838252602082019050602084028301858111156130c1576130c0613086565b5b835b818110156130ea57806130d68882612f19565b8452602084019350506020810190506130c3565b5050509392505050565b600082601f83011261310957613108612fda565b5b813561311984826020860161308b565b91505092915050565b61312b81612fa4565b811461313657600080fd5b50565b60008135905061314881613122565b92915050565b6000806040838503121561316557613164612ec6565b5b600083013567ffffffffffffffff81111561318357613182612ecb565b5b61318f858286016130f4565b92505060206131a085828601613139565b9150509250929050565b6000602082840312156131c0576131bf612ec6565b5b60006131ce84828501613139565b91505092915050565b6131e081612f2e565b82525050565b60006020820190506131fb60008301846131d7565b92915050565b60006020828403121561321757613216612ec6565b5b600061322584828501612f19565b91505092915050565b60008060006060848603121561324757613246612ec6565b5b600061325586828701612f19565b935050602061326686828701612f19565b925050604061327786828701612f4f565b9150509250925092565b600060ff82169050919050565b61329781613281565b82525050565b60006020820190506132b2600083018461328e565b92915050565b600080604083850312156132cf576132ce612ec6565b5b60006132dd85828601612f19565b92505060206132ee85828601613139565b9150509250929050565b60006020828403121561330e5761330d612ec6565b5b600061331c84828501612f4f565b91505092915050565b60008060006060848603121561333e5761333d612ec6565b5b600061334c86828701612f4f565b935050602061335d86828701612f4f565b925050604061336e86828701612f4f565b9150509250925092565b600060608201905061338d60008301866131d7565b61339a60208301856131d7565b6133a760408301846131d7565b949350505050565b6133b881612ef0565b82525050565b60006020820190506133d360008301846133af565b92915050565b600080604083850312156133f0576133ef612ec6565b5b60006133fe85828601612f19565b925050602061340f85828601612f19565b9150509250929050565b6000819050919050565b600061343e61343961343484612ed0565b613419565b612ed0565b9050919050565b600061345082613423565b9050919050565b600061346282613445565b9050919050565b61347281613457565b82525050565b600060208201905061348d6000830184613469565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134da57607f821691505b602082108114156134ee576134ed613493565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061352a602083612e0c565b9150613535826134f4565b602082019050919050565b600060208201905081810360008301526135598161351d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c982612f2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135fc576135fb61358f565b5b600182019050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613663602283612e0c565b915061366e82613607565b604082019050919050565b6000602082019050818103600083015261369281613656565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b60006136cf601883612e0c565b91506136da82613699565b602082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613761602883612e0c565b915061376c82613705565b604082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b60006137a282612f2e565b91506137ad83612f2e565b9250828210156137c0576137bf61358f565b5b828203905092915050565b60006137d682612f2e565b91506137e183612f2e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138165761381561358f565b5b828201905092915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b600061387d603e83612e0c565b915061388882613821565b604082019050919050565b600060208201905081810360008301526138ac81613870565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561390a578086048111156138e6576138e561358f565b5b60018516156138f55780820291505b8081029050613903856138b3565b94506138ca565b94509492505050565b60008261392357600190506139df565b8161393157600090506139df565b8160018114613947576002811461395157613980565b60019150506139df565b60ff8411156139635761396261358f565b5b8360020a91508482111561397a5761397961358f565b5b506139df565b5060208310610133831016604e8410600b84101617156139b55782820a9050838111156139b0576139af61358f565b5b6139df565b6139c284848460016138c0565b925090508184048111156139d9576139d861358f565b5b81810290505b9392505050565b60006139f182612f2e565b91506139fc83613281565b9250613a297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613913565b905092915050565b6000613a3c82612f2e565b9150613a4783612f2e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a8057613a7f61358f565b5b828202905092915050565b7f4d757374206b656570206665657320617420313225206f72206c657373000000600082015250565b6000613ac1601d83612e0c565b9150613acc82613a8b565b602082019050919050565b60006020820190508181036000830152613af081613ab4565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b53602583612e0c565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613be5603683612e0c565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b6000604082019050613c3060008301856133af565b613c3d60208301846131d7565b9392505050565b600081519050613c5381613122565b92915050565b600060208284031215613c6f57613c6e612ec6565b5b6000613c7d84828501613c44565b91505092915050565b7f43616e2774206368616e6765207768656e2074726164696e672068617320737460008201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602583612e0c565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f446561646c696e652073686f756c64206265206c657373207468616e2035204260008201527f6c6f636b73000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602583612e0c565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e06602683612e0c565b9150613e1182613daa565b604082019050919050565b60006020820190508181036000830152613e3581613df9565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e98602483612e0c565b9150613ea382613e3c565b604082019050919050565b60006020820190508181036000830152613ec781613e8b565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f2a602283612e0c565b9150613f3582613ece565b604082019050919050565b60006020820190508181036000830152613f5981613f1d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613fbc602983612e0c565b9150613fc782613f60565b604082019050919050565b60006020820190508181036000830152613feb81613faf565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614028601383612e0c565b915061403382613ff2565b602082019050919050565b600060208201905081810360008301526140578161401b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061409882612f2e565b91506140a383612f2e565b9250826140b3576140b261405e565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061411a602583612e0c565b9150614125826140be565b604082019050919050565b600060208201905081810360008301526141498161410d565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006141ac602383612e0c565b91506141b782614150565b604082019050919050565b600060208201905081810360008301526141db8161419f565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061423e602683612e0c565b9150614249826141e2565b604082019050919050565b6000602082019050818103600083015261426d81614231565b9050919050565b60008151905061428381612f02565b92915050565b60006020828403121561429f5761429e612ec6565b5b60006142ad84828501614274565b91505092915050565b6000819050919050565b60006142db6142d66142d1846142b6565b613419565b612f2e565b9050919050565b6142eb816142c0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61432681612ef0565b82525050565b6000614338838361431d565b60208301905092915050565b6000602082019050919050565b600061435c826142f1565b61436681856142fc565b93506143718361430d565b8060005b838110156143a2578151614389888261432c565b975061439483614344565b925050600181019050614375565b5085935050505092915050565b600060a0820190506143c460008301886131d7565b6143d160208301876142e2565b81810360408301526143e38186614351565b90506143f260608301856133af565b6143ff60808301846131d7565b9695505050505050565b600060c08201905061441e60008301896133af565b61442b60208301886131d7565b61443860408301876142e2565b61444560608301866142e2565b61445260808301856133af565b61445f60a08301846131d7565b979650505050505050565b60008151905061447981612f38565b92915050565b60008060006060848603121561449857614497612ec6565b5b60006144a68682870161446a565b93505060206144b78682870161446a565b92505060406144c88682870161446a565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614508601d83612e0c565b9150614513826144d2565b602082019050919050565b60006020820190508181036000830152614537816144fb565b9050919050565b600081905092915050565b50565b600061455960008361453e565b915061456482614549565b600082019050919050565b600061457a8261454c565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006145e0603a83612e0c565b91506145eb82614584565b604082019050919050565b6000602082019050818103600083015261460f816145d3565b905091905056fea2646970667358221220ab4eea8d6b50a9083194ae1bcd2d406cef5289af6d46499649a307ec0c1cec6764736f6c634300080b0033

Deployed Bytecode Sourcemap

12365:10667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2996:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14206:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22406:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20365:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12634:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4116:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22087:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21396:222;;;;;;;;;;;;;:::i;:::-;;14375:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12696:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3958:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22278:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14831:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20525:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22616:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20813:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12591:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21102:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4287:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11028:94;;;;;;;;;;;;;:::i;:::-;;13158:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12805:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12963:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10805:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12887:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3215:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15087:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12480:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15505:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21884:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13248:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22736:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4906:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21626:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11130:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13200:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12452:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12546:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2996:100;3050:13;3083:5;3076:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2996:100;:::o;14206:161::-;14281:4;14298:39;14307:12;:10;:12::i;:::-;14321:7;14330:6;14298:8;:39::i;:::-;14355:4;14348:11;;14206:161;;;;:::o;22406:202::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22503:9:::1;22498:103;22522:8;:15;22518:1;:19;22498:103;;;22584:5;22559:9;:22;22569:8;22578:1;22569:11;;;;;;;;:::i;:::-;;;;;;;;22559:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22539:3;;;;;:::i;:::-;;;;22498:103;;;;22406:202:::0;;:::o;20365:152::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20504:5:::1;20483:18;;:26;;;;;;;;;;;;;;;;;;20365:152:::0;:::o;12634:53::-;;;;:::o;4116:108::-;4177:7;4204:12;;4197:19;;4116:108;:::o;22087:183::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22190:1:::1;22169:23;;:9;:23;;;;22161:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;22253:9;22241;;:21;;;;;;;;;;;;;;;;;;22087:183:::0;:::o;21396:222::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21460:14:::1;;;;;;;;;;;21459:15;21451:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21531:4;21514:14;;:21;;;;;;;;;;;;;;;;;;21567:4;21546:18;;:25;;;;;;;;;;;;;;;;;;21598:12;21582:13;:28;;;;21396:222::o:0;14375:448::-;14507:4;14524:36;14534:6;14542:9;14553:6;14524:9;:36::i;:::-;14573:24;14600:11;:19;14612:6;14600:19;;;;;;;;;;;;;;;:33;14620:12;:10;:12::i;:::-;14600:33;;;;;;;;;;;;;;;;14573:60;;14672:6;14652:16;:26;;14644:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14734:57;14743:6;14751:12;:10;:12::i;:::-;14784:6;14765:16;:25;;;;:::i;:::-;14734:8;:57::i;:::-;14811:4;14804:11;;;14375:448;;;;;:::o;12696:28::-;;;;:::o;3958:93::-;4016:5;4041:2;4034:9;;3958:93;:::o;22278:120::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22385:5:::1;22363:9;:19;22373:8;22363:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22278:120:::0;;:::o;14831:248::-;14947:4;14969:80;14978:12;:10;:12::i;:::-;14992:7;15038:10;15001:11;:25;15013:12;:10;:12::i;:::-;15001:25;;;;;;;;;;;;;;;:34;15027:7;15001:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14969:8;:80::i;:::-;15067:4;15060:11;;14831:248;;;;:::o;20525:280::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20663:3:::1;20649:10;:17;;20641:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;20787:10;:8;:10::i;:::-;20783:2;:14;;;;:::i;:::-;20770:10;:27;;;;:::i;:::-;20744:23;:53;;;;20525:280:::0;:::o;22616:112::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22692:7:::1;:5;:7::i;:::-;22684:25;;:36;22710:9;22684:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22616:112:::0;:::o;20813:281::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20960:35:::1;;;;;;;;20966:10;20960:35;;;;20978:10;20960:35;;;;20990:4;20960:35;;::::0;20952:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;21050:2;21041:4;21028:10;21015;:23;;;;:::i;:::-;:30;;;;:::i;:::-;21014:38;;21006:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20813:281:::0;;;:::o;12591:34::-;;;;;;;;;;;;;:::o;21102:286::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21254:35:::1;;;;;;;;21260:10;21254:35;;;;21272:10;21254:35;;;;21284:4;21254:35;;::::0;21242:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;21344:2;21335:4;21322:10;21309;:23;;;;:::i;:::-;:30;;;;:::i;:::-;21308:38;;21300:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;21102:286:::0;;;:::o;4287:127::-;4361:7;4388:9;:18;4398:7;4388:18;;;;;;;;;;;;;;;;4381:25;;4287:127;;;:::o;11028:94::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11093:21:::1;11111:1;11093:9;:21::i;:::-;11028:94::o:0;13158:35::-;;;;;;;;;;;;;;;;;;;:::o;12805:75::-;;;;;;;;;;;;;:::o;12963:79::-;13000:42;12963:79;:::o;10805:87::-;10851:7;10878:6;;;;;;;;;;;10871:13;;10805:87;:::o;12887:69::-;;;;;;;;;;;;;:::o;3215:104::-;3271:13;3304:7;3297:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:104;:::o;15087:410::-;15208:4;15230:24;15257:11;:25;15269:12;:10;:12::i;:::-;15257:25;;;;;;;;;;;;;;;:34;15283:7;15257:34;;;;;;;;;;;;;;;;15230:61;;15330:15;15310:16;:35;;15302:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15398:67;15407:12;:10;:12::i;:::-;15421:7;15449:15;15430:16;:34;;;;:::i;:::-;15398:8;:67::i;:::-;15485:4;15478:11;;;15087:410;;;;:::o;12480:19::-;;;;;;;;;;;;;:::o;15505:165::-;15583:4;15600:40;15610:10;15622:9;15633:6;15600:9;:40::i;:::-;15658:4;15651:11;;15505:165;;;;:::o;21884:195::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21993:1:::1;21972:23;;:9;:23;;;;21964:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;22062:9;22044:15;;:27;;;;;;;;;;;;;;;;;;21884:195:::0;:::o;13248:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;22736:238::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22849:4:::1;22829:25;;:8;:25;;;;22821:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;22931:8;22924:25;;;22950:7;:5;:7::i;:::-;22959:6;22924:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22736:238:::0;;:::o;4906:201::-;5040:7;5072:11;:18;5084:5;5072:18;;;;;;;;;;;;;;;:27;5091:7;5072:27;;;;;;;;;;;;;;;;5065:34;;4906:201;;;;:::o;21626:250::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21708:14:::1;;;;;;;;;;;21707:15;21699:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21795:1;21783:9;:13;21775:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21859:9;21848:8;:20;;;;21626:250:::0;:::o;11130:192::-;10951:12;:10;:12::i;:::-;10940:23;;:7;:5;:7::i;:::-;:23;;;10932:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11239:1:::1;11219:22;;:8;:22;;;;11211:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11295:19;11305:8;11295:9;:19::i;:::-;11130:192:::0;:::o;13200:39::-;;;;;;;;;;;;;;;;;;;:::o;12452:21::-;;;;;;;;;;;;;:::o;12546:38::-;;;;;;;;;;;;;:::o;718:98::-;771:7;798:10;791:17;;718:98;:::o;9838:380::-;9991:1;9974:19;;:5;:19;;;;9966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:1;10053:21;;:7;:21;;;;10045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10156:6;10126:11;:18;10138:5;10126:18;;;;;;;;;;;;;;;:27;10145:7;10126:27;;;;;;;;;;;;;;;:36;;;;10194:7;10178:32;;10187:5;10178:32;;;10203:6;10178:32;;;;;;:::i;:::-;;;;;;;;9838:380;;;:::o;15678:2018::-;15828:1;15819:6;:10;15811:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15893:9;:17;15903:6;15893:17;;;;;;;;;;;;;;;;;;;;;;;;;15892:18;:43;;;;;15915:9;:20;15925:9;15915:20;;;;;;;;;;;;;;;;;;;;;;;;;15914:21;15892:43;15888:122;;;15960:14;;;;;;;;;;;15952:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15888:122;16022:15;16048:14;16073:11;16095:25;;:::i;:::-;16133:17;16154:9;:17;16164:6;16154:17;;;;;;;;;;;;;;;;;;;;;;;;;16153:18;:56;;;;;16189:9;:20;16199:9;16189:20;;;;;;;;;;;;;;;;;;;;;;;;;16188:21;16153:56;:112;;;;;16257:8;;16241:13;;:24;;;;:::i;:::-;16226:12;:39;16153:112;16133:132;;16353:10;;;;;;;;;;;:31;;;;16367:9;:17;16377:6;16367:17;;;;;;;;;;;;;;;;;;;;;;;;;16353:31;:55;;;;16388:9;:20;16398:9;16388:20;;;;;;;;;;;;;;;;;;;;;;;;;16353:55;16349:767;;;16429:1;16423:7;;16349:767;;;16494:4;;;;;;;;;;;16481:17;;:9;:17;;;:34;;;;;16503:12;16502:13;16481:34;16477:639;;;16643:9;:13;;;16598:9;:19;;;16559:9;:19;;;:58;;;;:::i;:::-;:97;;;;:::i;:::-;16532:124;;16680:7;16671:16;;16717:9;16702:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16477:639;;;16758:4;;;;;;;;;;;16748:14;;:6;:14;;;:46;;;;;16787:6;;;;;;;;;;;16766:28;;:9;:28;;;;16748:46;:63;;;;;16799:12;16798:13;16748:63;16744:372;;;16925:5;:9;;;16890:5;:15;;;16855:5;:15;;;:50;;;;:::i;:::-;:79;;;;:::i;:::-;16828:106;;16959:7;16950:16;;16996:5;16981:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16744:372;;;17023:12;17019:97;;;17062:9;;17052:19;;17095:9;;17086:18;;17019:97;16744:372;16477:639;16349:767;17154:3;17144:6;17135;:15;;;;:::i;:::-;17134:23;;;;:::i;:::-;17128:29;;17271:18;;;;;;;;;;;:36;;;;;17303:4;;;;;;;;;;;17293:14;;:6;:14;;;;17271:36;17267:72;;;17309:30;17317:7;17326:12;17309:7;:30::i;:::-;17267:72;17381:48;17397:6;17405:9;17425:3;17416:6;:12;;;;:::i;:::-;17381:15;:48::i;:::-;17450:1;17444:3;:7;17440:249;;;17526:1;17516:7;:11;17512:164;;;17548:17;17589:3;17578:7;17569:6;:16;;;;:::i;:::-;17568:24;;;;:::i;:::-;17548:44;;17611:49;17627:6;17643:4;17650:9;17611:15;:49::i;:::-;17529:147;17512:164;17440:249;15800:1896;;;;;15678:2018;;;:::o;11330:173::-;11386:16;11405:6;;;;;;;;;;;11386:25;;11431:8;11422:6;;:17;;;;;;;;;;;;;;;;;;11486:8;11455:40;;11476:8;11455:40;;;;;;;;;;;;11375:128;11330:173;:::o;17704:1603::-;13337:10;;;;;;;;;;;13332:110;;13377:4;13364:10;;:17;;;;;;;;;;;;;;;;;;17809:1:::1;17798:7;:12;17795:49;;;17826:7;;17795:49;17856:23;17882:24;17900:4;17882:9;:24::i;:::-;17856:50;;17940:23;;17921:15;:42;17917:1383;;18010:1;17984:23;;:27;17980:109;;;18050:23;;18032:41;;17980:109;18160:19;18192:1;18182:7;:11;;;;:::i;:::-;18160:33;;18208:32;18302:11;18262:9;:19;;;18244:15;:37;;;;:::i;:::-;18243:70;;;;:::i;:::-;18208:105;;18328:14;18363:24;18345:15;:42;;;;:::i;:::-;18328:59;;18404:22;18429:21;18404:46;;18467:24;18484:6;18467:16;:24::i;:::-;18508:20;18555:14;18531:21;:38;;;;:::i;:::-;18508:61;;18584:19;18636:9;:19;;;18622:11;:33;;;;:::i;:::-;18606:12;:50;;;;:::i;:::-;18584:72;;18671:29;18717:9;:19;;;18703:11;:33;;;;:::i;:::-;18671:65;;18781:1;18757:21;:25;18753:172;;;18848:61;18861:24;18887:21;18848:12;:61::i;:::-;18753:172;18941:20;18982:9;:19;;;18978:1;18964:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18941:60;;19035:1;19020:12;:16;19016:105;;;19057:48;19092:12;19065:15;;;;;;;;;;;19057:34;;;;:48;;;;:::i;:::-;19016:105;19137:14;19172:9;:13;;;19168:1;19154:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;19137:48;;19213:1;19204:6;:10;19200:87;;;19235:36;19264:6;19243:9;;;;;;;;;;;19235:28;;;;:36;;;;:::i;:::-;19200:87;17965:1335;;;;;;;;;17917:1383;17782:1525;13396:1;13425:5:::0;13412:10;;:18;;;;;;;;;;;;;;;;;;13332:110;17704:1603;;:::o;8419:578::-;8577:1;8559:20;;:6;:20;;;;8551:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8661:1;8640:23;;:9;:23;;;;8632:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8716:21;8740:9;:17;8750:6;8740:17;;;;;;;;;;;;;;;;8716:41;;8793:6;8776:13;:23;;8768:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8889:6;8873:13;:22;;;;:::i;:::-;8853:9;:17;8863:6;8853:17;;;;;;;;;;;;;;;:42;;;;8930:6;8906:9;:20;8916:9;8906:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8971:9;8954:35;;8963:6;8954:35;;;8982:6;8954:35;;;;;;:::i;:::-;;;;;;;;8540:457;8419:578;;;:::o;19315:534::-;19441:21;19479:1;19465:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19441:40;;19510:4;19492;19497:1;19492:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19536:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19526:4;19531:1;19526:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19562:53;19579:4;19594:6;;;;;;;;;;;19603:11;19562:8;:53::i;:::-;19654:6;;;;;;;;;;;:57;;;19726:11;19752:1;19768:4;19795;19815:15;19654:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19370:479;19315:534;:::o;19857:500::-;20005:53;20022:4;20037:6;;;;;;;;;;;20046:11;20005:8;:53::i;:::-;20101:6;;;;;;;;;;;:22;;;20132:9;20166:4;20186:11;20212:1;20255;13000:42;20323:15;20101:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19857:500;;:::o;10248:319::-;10363:6;10338:21;:31;;10330:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10417:12;10435:9;:14;;10458:6;10435:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10416:54;;;10489:7;10481:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10319:248;10248:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:117::-;3603:1;3600;3593:12;3617:180;3665:77;3662:1;3655:88;3762:4;3759:1;3752:15;3786:4;3783:1;3776:15;3803:281;3886:27;3908:4;3886:27;:::i;:::-;3878:6;3874:40;4016:6;4004:10;4001:22;3980:18;3968:10;3965:34;3962:62;3959:88;;;4027:18;;:::i;:::-;3959:88;4067:10;4063:2;4056:22;3846:238;3803:281;;:::o;4090:129::-;4124:6;4151:20;;:::i;:::-;4141:30;;4180:33;4208:4;4200:6;4180:33;:::i;:::-;4090:129;;;:::o;4225:311::-;4302:4;4392:18;4384:6;4381:30;4378:56;;;4414:18;;:::i;:::-;4378:56;4464:4;4456:6;4452:17;4444:25;;4524:4;4518;4514:15;4506:23;;4225:311;;;:::o;4542:117::-;4651:1;4648;4641:12;4682:710;4778:5;4803:81;4819:64;4876:6;4819:64;:::i;:::-;4803:81;:::i;:::-;4794:90;;4904:5;4933:6;4926:5;4919:21;4967:4;4960:5;4956:16;4949:23;;5020:4;5012:6;5008:17;5000:6;4996:30;5049:3;5041:6;5038:15;5035:122;;;5068:79;;:::i;:::-;5035:122;5183:6;5166:220;5200:6;5195:3;5192:15;5166:220;;;5275:3;5304:37;5337:3;5325:10;5304:37;:::i;:::-;5299:3;5292:50;5371:4;5366:3;5362:14;5355:21;;5242:144;5226:4;5221:3;5217:14;5210:21;;5166:220;;;5170:21;4784:608;;4682:710;;;;;:::o;5415:370::-;5486:5;5535:3;5528:4;5520:6;5516:17;5512:27;5502:122;;5543:79;;:::i;:::-;5502:122;5660:6;5647:20;5685:94;5775:3;5767:6;5760:4;5752:6;5748:17;5685:94;:::i;:::-;5676:103;;5492:293;5415:370;;;;:::o;5791:116::-;5861:21;5876:5;5861:21;:::i;:::-;5854:5;5851:32;5841:60;;5897:1;5894;5887:12;5841:60;5791:116;:::o;5913:133::-;5956:5;5994:6;5981:20;5972:29;;6010:30;6034:5;6010:30;:::i;:::-;5913:133;;;;:::o;6052:678::-;6142:6;6150;6199:2;6187:9;6178:7;6174:23;6170:32;6167:119;;;6205:79;;:::i;:::-;6167:119;6353:1;6342:9;6338:17;6325:31;6383:18;6375:6;6372:30;6369:117;;;6405:79;;:::i;:::-;6369:117;6510:78;6580:7;6571:6;6560:9;6556:22;6510:78;:::i;:::-;6500:88;;6296:302;6637:2;6663:50;6705:7;6696:6;6685:9;6681:22;6663:50;:::i;:::-;6653:60;;6608:115;6052:678;;;;;:::o;6736:323::-;6792:6;6841:2;6829:9;6820:7;6816:23;6812:32;6809:119;;;6847:79;;:::i;:::-;6809:119;6967:1;6992:50;7034:7;7025:6;7014:9;7010:22;6992:50;:::i;:::-;6982:60;;6938:114;6736:323;;;;:::o;7065:118::-;7152:24;7170:5;7152:24;:::i;:::-;7147:3;7140:37;7065:118;;:::o;7189:222::-;7282:4;7320:2;7309:9;7305:18;7297:26;;7333:71;7401:1;7390:9;7386:17;7377:6;7333:71;:::i;:::-;7189:222;;;;:::o;7417:329::-;7476:6;7525:2;7513:9;7504:7;7500:23;7496:32;7493:119;;;7531:79;;:::i;:::-;7493:119;7651:1;7676:53;7721:7;7712:6;7701:9;7697:22;7676:53;:::i;:::-;7666:63;;7622:117;7417:329;;;;:::o;7752:619::-;7829:6;7837;7845;7894:2;7882:9;7873:7;7869:23;7865:32;7862:119;;;7900:79;;:::i;:::-;7862:119;8020:1;8045:53;8090:7;8081:6;8070:9;8066:22;8045:53;:::i;:::-;8035:63;;7991:117;8147:2;8173:53;8218:7;8209:6;8198:9;8194:22;8173:53;:::i;:::-;8163:63;;8118:118;8275:2;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8246:118;7752:619;;;;;:::o;8377:86::-;8412:7;8452:4;8445:5;8441:16;8430:27;;8377:86;;;:::o;8469:112::-;8552:22;8568:5;8552:22;:::i;:::-;8547:3;8540:35;8469:112;;:::o;8587:214::-;8676:4;8714:2;8703:9;8699:18;8691:26;;8727:67;8791:1;8780:9;8776:17;8767:6;8727:67;:::i;:::-;8587:214;;;;:::o;8807:468::-;8872:6;8880;8929:2;8917:9;8908:7;8904:23;8900:32;8897:119;;;8935:79;;:::i;:::-;8897:119;9055:1;9080:53;9125:7;9116:6;9105:9;9101:22;9080:53;:::i;:::-;9070:63;;9026:117;9182:2;9208:50;9250:7;9241:6;9230:9;9226:22;9208:50;:::i;:::-;9198:60;;9153:115;8807:468;;;;;:::o;9281:329::-;9340:6;9389:2;9377:9;9368:7;9364:23;9360:32;9357:119;;;9395:79;;:::i;:::-;9357:119;9515:1;9540:53;9585:7;9576:6;9565:9;9561:22;9540:53;:::i;:::-;9530:63;;9486:117;9281:329;;;;:::o;9616:619::-;9693:6;9701;9709;9758:2;9746:9;9737:7;9733:23;9729:32;9726:119;;;9764:79;;:::i;:::-;9726:119;9884:1;9909:53;9954:7;9945:6;9934:9;9930:22;9909:53;:::i;:::-;9899:63;;9855:117;10011:2;10037:53;10082:7;10073:6;10062:9;10058:22;10037:53;:::i;:::-;10027:63;;9982:118;10139:2;10165:53;10210:7;10201:6;10190:9;10186:22;10165:53;:::i;:::-;10155:63;;10110:118;9616:619;;;;;:::o;10241:442::-;10390:4;10428:2;10417:9;10413:18;10405:26;;10441:71;10509:1;10498:9;10494:17;10485:6;10441:71;:::i;:::-;10522:72;10590:2;10579:9;10575:18;10566:6;10522:72;:::i;:::-;10604;10672:2;10661:9;10657:18;10648:6;10604:72;:::i;:::-;10241:442;;;;;;:::o;10689:118::-;10776:24;10794:5;10776:24;:::i;:::-;10771:3;10764:37;10689:118;;:::o;10813:222::-;10906:4;10944:2;10933:9;10929:18;10921:26;;10957:71;11025:1;11014:9;11010:17;11001:6;10957:71;:::i;:::-;10813:222;;;;:::o;11041:474::-;11109:6;11117;11166:2;11154:9;11145:7;11141:23;11137:32;11134:119;;;11172:79;;:::i;:::-;11134:119;11292:1;11317:53;11362:7;11353:6;11342:9;11338:22;11317:53;:::i;:::-;11307:63;;11263:117;11419:2;11445:53;11490:7;11481:6;11470:9;11466:22;11445:53;:::i;:::-;11435:63;;11390:118;11041:474;;;;;:::o;11521:60::-;11549:3;11570:5;11563:12;;11521:60;;;:::o;11587:142::-;11637:9;11670:53;11688:34;11697:24;11715:5;11697:24;:::i;:::-;11688:34;:::i;:::-;11670:53;:::i;:::-;11657:66;;11587:142;;;:::o;11735:126::-;11785:9;11818:37;11849:5;11818:37;:::i;:::-;11805:50;;11735:126;;;:::o;11867:141::-;11932:9;11965:37;11996:5;11965:37;:::i;:::-;11952:50;;11867:141;;;:::o;12014:161::-;12116:52;12162:5;12116:52;:::i;:::-;12111:3;12104:65;12014:161;;:::o;12181:252::-;12289:4;12327:2;12316:9;12312:18;12304:26;;12340:86;12423:1;12412:9;12408:17;12399:6;12340:86;:::i;:::-;12181:252;;;;:::o;12439:180::-;12487:77;12484:1;12477:88;12584:4;12581:1;12574:15;12608:4;12605:1;12598:15;12625:320;12669:6;12706:1;12700:4;12696:12;12686:22;;12753:1;12747:4;12743:12;12774:18;12764:81;;12830:4;12822:6;12818:17;12808:27;;12764:81;12892:2;12884:6;12881:14;12861:18;12858:38;12855:84;;;12911:18;;:::i;:::-;12855:84;12676:269;12625:320;;;:::o;12951:182::-;13091:34;13087:1;13079:6;13075:14;13068:58;12951:182;:::o;13139:366::-;13281:3;13302:67;13366:2;13361:3;13302:67;:::i;:::-;13295:74;;13378:93;13467:3;13378:93;:::i;:::-;13496:2;13491:3;13487:12;13480:19;;13139:366;;;:::o;13511:419::-;13677:4;13715:2;13704:9;13700:18;13692:26;;13764:9;13758:4;13754:20;13750:1;13739:9;13735:17;13728:47;13792:131;13918:4;13792:131;:::i;:::-;13784:139;;13511:419;;;:::o;13936:180::-;13984:77;13981:1;13974:88;14081:4;14078:1;14071:15;14105:4;14102:1;14095:15;14122:180;14170:77;14167:1;14160:88;14267:4;14264:1;14257:15;14291:4;14288:1;14281:15;14308:233;14347:3;14370:24;14388:5;14370:24;:::i;:::-;14361:33;;14416:66;14409:5;14406:77;14403:103;;;14486:18;;:::i;:::-;14403:103;14533:1;14526:5;14522:13;14515:20;;14308:233;;;:::o;14547:221::-;14687:34;14683:1;14675:6;14671:14;14664:58;14756:4;14751:2;14743:6;14739:15;14732:29;14547:221;:::o;14774:366::-;14916:3;14937:67;15001:2;14996:3;14937:67;:::i;:::-;14930:74;;15013:93;15102:3;15013:93;:::i;:::-;15131:2;15126:3;15122:12;15115:19;;14774:366;;;:::o;15146:419::-;15312:4;15350:2;15339:9;15335:18;15327:26;;15399:9;15393:4;15389:20;15385:1;15374:9;15370:17;15363:47;15427:131;15553:4;15427:131;:::i;:::-;15419:139;;15146:419;;;:::o;15571:174::-;15711:26;15707:1;15699:6;15695:14;15688:50;15571:174;:::o;15751:366::-;15893:3;15914:67;15978:2;15973:3;15914:67;:::i;:::-;15907:74;;15990:93;16079:3;15990:93;:::i;:::-;16108:2;16103:3;16099:12;16092:19;;15751:366;;;:::o;16123:419::-;16289:4;16327:2;16316:9;16312:18;16304:26;;16376:9;16370:4;16366:20;16362:1;16351:9;16347:17;16340:47;16404:131;16530:4;16404:131;:::i;:::-;16396:139;;16123:419;;;:::o;16548:227::-;16688:34;16684:1;16676:6;16672:14;16665:58;16757:10;16752:2;16744:6;16740:15;16733:35;16548:227;:::o;16781:366::-;16923:3;16944:67;17008:2;17003:3;16944:67;:::i;:::-;16937:74;;17020:93;17109:3;17020:93;:::i;:::-;17138:2;17133:3;17129:12;17122:19;;16781:366;;;:::o;17153:419::-;17319:4;17357:2;17346:9;17342:18;17334:26;;17406:9;17400:4;17396:20;17392:1;17381:9;17377:17;17370:47;17434:131;17560:4;17434:131;:::i;:::-;17426:139;;17153:419;;;:::o;17578:191::-;17618:4;17638:20;17656:1;17638:20;:::i;:::-;17633:25;;17672:20;17690:1;17672:20;:::i;:::-;17667:25;;17711:1;17708;17705:8;17702:34;;;17716:18;;:::i;:::-;17702:34;17761:1;17758;17754:9;17746:17;;17578:191;;;;:::o;17775:305::-;17815:3;17834:20;17852:1;17834:20;:::i;:::-;17829:25;;17868:20;17886:1;17868:20;:::i;:::-;17863:25;;18022:1;17954:66;17950:74;17947:1;17944:81;17941:107;;;18028:18;;:::i;:::-;17941:107;18072:1;18069;18065:9;18058:16;;17775:305;;;;:::o;18086:249::-;18226:34;18222:1;18214:6;18210:14;18203:58;18295:32;18290:2;18282:6;18278:15;18271:57;18086:249;:::o;18341:366::-;18483:3;18504:67;18568:2;18563:3;18504:67;:::i;:::-;18497:74;;18580:93;18669:3;18580:93;:::i;:::-;18698:2;18693:3;18689:12;18682:19;;18341:366;;;:::o;18713:419::-;18879:4;18917:2;18906:9;18902:18;18894:26;;18966:9;18960:4;18956:20;18952:1;18941:9;18937:17;18930:47;18994:131;19120:4;18994:131;:::i;:::-;18986:139;;18713:419;;;:::o;19138:102::-;19180:8;19227:5;19224:1;19220:13;19199:34;;19138:102;;;:::o;19246:848::-;19307:5;19314:4;19338:6;19329:15;;19362:5;19353:14;;19376:712;19397:1;19387:8;19384:15;19376:712;;;19492:4;19487:3;19483:14;19477:4;19474:24;19471:50;;;19501:18;;:::i;:::-;19471:50;19551:1;19541:8;19537:16;19534:451;;;19966:4;19959:5;19955:16;19946:25;;19534:451;20016:4;20010;20006:15;19998:23;;20046:32;20069:8;20046:32;:::i;:::-;20034:44;;19376:712;;;19246:848;;;;;;;:::o;20100:1073::-;20154:5;20345:8;20335:40;;20366:1;20357:10;;20368:5;;20335:40;20394:4;20384:36;;20411:1;20402:10;;20413:5;;20384:36;20480:4;20528:1;20523:27;;;;20564:1;20559:191;;;;20473:277;;20523:27;20541:1;20532:10;;20543:5;;;20559:191;20604:3;20594:8;20591:17;20588:43;;;20611:18;;:::i;:::-;20588:43;20660:8;20657:1;20653:16;20644:25;;20695:3;20688:5;20685:14;20682:40;;;20702:18;;:::i;:::-;20682:40;20735:5;;;20473:277;;20859:2;20849:8;20846:16;20840:3;20834:4;20831:13;20827:36;20809:2;20799:8;20796:16;20791:2;20785:4;20782:12;20778:35;20762:111;20759:246;;;20915:8;20909:4;20905:19;20896:28;;20950:3;20943:5;20940:14;20937:40;;;20957:18;;:::i;:::-;20937:40;20990:5;;20759:246;21030:42;21068:3;21058:8;21052:4;21049:1;21030:42;:::i;:::-;21015:57;;;;21104:4;21099:3;21095:14;21088:5;21085:25;21082:51;;;21113:18;;:::i;:::-;21082:51;21162:4;21155:5;21151:16;21142:25;;20100:1073;;;;;;:::o;21179:281::-;21237:5;21261:23;21279:4;21261:23;:::i;:::-;21253:31;;21305:25;21321:8;21305:25;:::i;:::-;21293:37;;21349:104;21386:66;21376:8;21370:4;21349:104;:::i;:::-;21340:113;;21179:281;;;;:::o;21466:348::-;21506:7;21529:20;21547:1;21529:20;:::i;:::-;21524:25;;21563:20;21581:1;21563:20;:::i;:::-;21558:25;;21751:1;21683:66;21679:74;21676:1;21673:81;21668:1;21661:9;21654:17;21650:105;21647:131;;;21758:18;;:::i;:::-;21647:131;21806:1;21803;21799:9;21788:20;;21466:348;;;;:::o;21820:179::-;21960:31;21956:1;21948:6;21944:14;21937:55;21820:179;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:224::-;22942:34;22938:1;22930:6;22926:14;22919:58;23011:7;23006:2;22998:6;22994:15;22987:32;22802:224;:::o;23032:366::-;23174:3;23195:67;23259:2;23254:3;23195:67;:::i;:::-;23188:74;;23271:93;23360:3;23271:93;:::i;:::-;23389:2;23384:3;23380:12;23373:19;;23032:366;;;:::o;23404:419::-;23570:4;23608:2;23597:9;23593:18;23585:26;;23657:9;23651:4;23647:20;23643:1;23632:9;23628:17;23621:47;23685:131;23811:4;23685:131;:::i;:::-;23677:139;;23404:419;;;:::o;23829:241::-;23969:34;23965:1;23957:6;23953:14;23946:58;24038:24;24033:2;24025:6;24021:15;24014:49;23829:241;:::o;24076:366::-;24218:3;24239:67;24303:2;24298:3;24239:67;:::i;:::-;24232:74;;24315:93;24404:3;24315:93;:::i;:::-;24433:2;24428:3;24424:12;24417:19;;24076:366;;;:::o;24448:419::-;24614:4;24652:2;24641:9;24637:18;24629:26;;24701:9;24695:4;24691:20;24687:1;24676:9;24672:17;24665:47;24729:131;24855:4;24729:131;:::i;:::-;24721:139;;24448:419;;;:::o;24873:332::-;24994:4;25032:2;25021:9;25017:18;25009:26;;25045:71;25113:1;25102:9;25098:17;25089:6;25045:71;:::i;:::-;25126:72;25194:2;25183:9;25179:18;25170:6;25126:72;:::i;:::-;24873:332;;;;;:::o;25211:137::-;25265:5;25296:6;25290:13;25281:22;;25312:30;25336:5;25312:30;:::i;:::-;25211:137;;;;:::o;25354:345::-;25421:6;25470:2;25458:9;25449:7;25445:23;25441:32;25438:119;;;25476:79;;:::i;:::-;25438:119;25596:1;25621:61;25674:7;25665:6;25654:9;25650:22;25621:61;:::i;:::-;25611:71;;25567:125;25354:345;;;;:::o;25705:224::-;25845:34;25841:1;25833:6;25829:14;25822:58;25914:7;25909:2;25901:6;25897:15;25890:32;25705:224;:::o;25935:366::-;26077:3;26098:67;26162:2;26157:3;26098:67;:::i;:::-;26091:74;;26174:93;26263:3;26174:93;:::i;:::-;26292:2;26287:3;26283:12;26276:19;;25935:366;;;:::o;26307:419::-;26473:4;26511:2;26500:9;26496:18;26488:26;;26560:9;26554:4;26550:20;26546:1;26535:9;26531:17;26524:47;26588:131;26714:4;26588:131;:::i;:::-;26580:139;;26307:419;;;:::o;26732:224::-;26872:34;26868:1;26860:6;26856:14;26849:58;26941:7;26936:2;26928:6;26924:15;26917:32;26732:224;:::o;26962:366::-;27104:3;27125:67;27189:2;27184:3;27125:67;:::i;:::-;27118:74;;27201:93;27290:3;27201:93;:::i;:::-;27319:2;27314:3;27310:12;27303:19;;26962:366;;;:::o;27334:419::-;27500:4;27538:2;27527:9;27523:18;27515:26;;27587:9;27581:4;27577:20;27573:1;27562:9;27558:17;27551:47;27615:131;27741:4;27615:131;:::i;:::-;27607:139;;27334:419;;;:::o;27759:225::-;27899:34;27895:1;27887:6;27883:14;27876:58;27968:8;27963:2;27955:6;27951:15;27944:33;27759:225;:::o;27990:366::-;28132:3;28153:67;28217:2;28212:3;28153:67;:::i;:::-;28146:74;;28229:93;28318:3;28229:93;:::i;:::-;28347:2;28342:3;28338:12;28331:19;;27990:366;;;:::o;28362:419::-;28528:4;28566:2;28555:9;28551:18;28543:26;;28615:9;28609:4;28605:20;28601:1;28590:9;28586:17;28579:47;28643:131;28769:4;28643:131;:::i;:::-;28635:139;;28362:419;;;:::o;28787:223::-;28927:34;28923:1;28915:6;28911:14;28904:58;28996:6;28991:2;28983:6;28979:15;28972:31;28787:223;:::o;29016:366::-;29158:3;29179:67;29243:2;29238:3;29179:67;:::i;:::-;29172:74;;29255:93;29344:3;29255:93;:::i;:::-;29373:2;29368:3;29364:12;29357:19;;29016:366;;;:::o;29388:419::-;29554:4;29592:2;29581:9;29577:18;29569:26;;29641:9;29635:4;29631:20;29627:1;29616:9;29612:17;29605:47;29669:131;29795:4;29669:131;:::i;:::-;29661:139;;29388:419;;;:::o;29813:221::-;29953:34;29949:1;29941:6;29937:14;29930:58;30022:4;30017:2;30009:6;30005:15;29998:29;29813:221;:::o;30040:366::-;30182:3;30203:67;30267:2;30262:3;30203:67;:::i;:::-;30196:74;;30279:93;30368:3;30279:93;:::i;:::-;30397:2;30392:3;30388:12;30381:19;;30040:366;;;:::o;30412:419::-;30578:4;30616:2;30605:9;30601:18;30593:26;;30665:9;30659:4;30655:20;30651:1;30640:9;30636:17;30629:47;30693:131;30819:4;30693:131;:::i;:::-;30685:139;;30412:419;;;:::o;30837:228::-;30977:34;30973:1;30965:6;30961:14;30954:58;31046:11;31041:2;31033:6;31029:15;31022:36;30837:228;:::o;31071:366::-;31213:3;31234:67;31298:2;31293:3;31234:67;:::i;:::-;31227:74;;31310:93;31399:3;31310:93;:::i;:::-;31428:2;31423:3;31419:12;31412:19;;31071:366;;;:::o;31443:419::-;31609:4;31647:2;31636:9;31632:18;31624:26;;31696:9;31690:4;31686:20;31682:1;31671:9;31667:17;31660:47;31724:131;31850:4;31724:131;:::i;:::-;31716:139;;31443:419;;;:::o;31868:169::-;32008:21;32004:1;31996:6;31992:14;31985:45;31868:169;:::o;32043:366::-;32185:3;32206:67;32270:2;32265:3;32206:67;:::i;:::-;32199:74;;32282:93;32371:3;32282:93;:::i;:::-;32400:2;32395:3;32391:12;32384:19;;32043:366;;;:::o;32415:419::-;32581:4;32619:2;32608:9;32604:18;32596:26;;32668:9;32662:4;32658:20;32654:1;32643:9;32639:17;32632:47;32696:131;32822:4;32696:131;:::i;:::-;32688:139;;32415:419;;;:::o;32840:180::-;32888:77;32885:1;32878:88;32985:4;32982:1;32975:15;33009:4;33006:1;32999:15;33026:185;33066:1;33083:20;33101:1;33083:20;:::i;:::-;33078:25;;33117:20;33135:1;33117:20;:::i;:::-;33112:25;;33156:1;33146:35;;33161:18;;:::i;:::-;33146:35;33203:1;33200;33196:9;33191:14;;33026:185;;;;:::o;33217:224::-;33357:34;33353:1;33345:6;33341:14;33334:58;33426:7;33421:2;33413:6;33409:15;33402:32;33217:224;:::o;33447:366::-;33589:3;33610:67;33674:2;33669:3;33610:67;:::i;:::-;33603:74;;33686:93;33775:3;33686:93;:::i;:::-;33804:2;33799:3;33795:12;33788:19;;33447:366;;;:::o;33819:419::-;33985:4;34023:2;34012:9;34008:18;34000:26;;34072:9;34066:4;34062:20;34058:1;34047:9;34043:17;34036:47;34100:131;34226:4;34100:131;:::i;:::-;34092:139;;33819:419;;;:::o;34244:222::-;34384:34;34380:1;34372:6;34368:14;34361:58;34453:5;34448:2;34440:6;34436:15;34429:30;34244:222;:::o;34472:366::-;34614:3;34635:67;34699:2;34694:3;34635:67;:::i;:::-;34628:74;;34711:93;34800:3;34711:93;:::i;:::-;34829:2;34824:3;34820:12;34813:19;;34472:366;;;:::o;34844:419::-;35010:4;35048:2;35037:9;35033:18;35025:26;;35097:9;35091:4;35087:20;35083:1;35072:9;35068:17;35061:47;35125:131;35251:4;35125:131;:::i;:::-;35117:139;;34844:419;;;:::o;35269:225::-;35409:34;35405:1;35397:6;35393:14;35386:58;35478:8;35473:2;35465:6;35461:15;35454:33;35269:225;:::o;35500:366::-;35642:3;35663:67;35727:2;35722:3;35663:67;:::i;:::-;35656:74;;35739:93;35828:3;35739:93;:::i;:::-;35857:2;35852:3;35848:12;35841:19;;35500:366;;;:::o;35872:419::-;36038:4;36076:2;36065:9;36061:18;36053:26;;36125:9;36119:4;36115:20;36111:1;36100:9;36096:17;36089:47;36153:131;36279:4;36153:131;:::i;:::-;36145:139;;35872:419;;;:::o;36297:143::-;36354:5;36385:6;36379:13;36370:22;;36401:33;36428:5;36401:33;:::i;:::-;36297:143;;;;:::o;36446:351::-;36516:6;36565:2;36553:9;36544:7;36540:23;36536:32;36533:119;;;36571:79;;:::i;:::-;36533:119;36691:1;36716:64;36772:7;36763:6;36752:9;36748:22;36716:64;:::i;:::-;36706:74;;36662:128;36446:351;;;;:::o;36803:85::-;36848:7;36877:5;36866:16;;36803:85;;;:::o;36894:158::-;36952:9;36985:61;37003:42;37012:32;37038:5;37012:32;:::i;:::-;37003:42;:::i;:::-;36985:61;:::i;:::-;36972:74;;36894:158;;;:::o;37058:147::-;37153:45;37192:5;37153:45;:::i;:::-;37148:3;37141:58;37058:147;;:::o;37211:114::-;37278:6;37312:5;37306:12;37296:22;;37211:114;;;:::o;37331:184::-;37430:11;37464:6;37459:3;37452:19;37504:4;37499:3;37495:14;37480:29;;37331:184;;;;:::o;37521:132::-;37588:4;37611:3;37603:11;;37641:4;37636:3;37632:14;37624:22;;37521:132;;;:::o;37659:108::-;37736:24;37754:5;37736:24;:::i;:::-;37731:3;37724:37;37659:108;;:::o;37773:179::-;37842:10;37863:46;37905:3;37897:6;37863:46;:::i;:::-;37941:4;37936:3;37932:14;37918:28;;37773:179;;;;:::o;37958:113::-;38028:4;38060;38055:3;38051:14;38043:22;;37958:113;;;:::o;38107:732::-;38226:3;38255:54;38303:5;38255:54;:::i;:::-;38325:86;38404:6;38399:3;38325:86;:::i;:::-;38318:93;;38435:56;38485:5;38435:56;:::i;:::-;38514:7;38545:1;38530:284;38555:6;38552:1;38549:13;38530:284;;;38631:6;38625:13;38658:63;38717:3;38702:13;38658:63;:::i;:::-;38651:70;;38744:60;38797:6;38744:60;:::i;:::-;38734:70;;38590:224;38577:1;38574;38570:9;38565:14;;38530:284;;;38534:14;38830:3;38823:10;;38231:608;;;38107:732;;;;:::o;38845:831::-;39108:4;39146:3;39135:9;39131:19;39123:27;;39160:71;39228:1;39217:9;39213:17;39204:6;39160:71;:::i;:::-;39241:80;39317:2;39306:9;39302:18;39293:6;39241:80;:::i;:::-;39368:9;39362:4;39358:20;39353:2;39342:9;39338:18;39331:48;39396:108;39499:4;39490:6;39396:108;:::i;:::-;39388:116;;39514:72;39582:2;39571:9;39567:18;39558:6;39514:72;:::i;:::-;39596:73;39664:3;39653:9;39649:19;39640:6;39596:73;:::i;:::-;38845:831;;;;;;;;:::o;39682:807::-;39931:4;39969:3;39958:9;39954:19;39946:27;;39983:71;40051:1;40040:9;40036:17;40027:6;39983:71;:::i;:::-;40064:72;40132:2;40121:9;40117:18;40108:6;40064:72;:::i;:::-;40146:80;40222:2;40211:9;40207:18;40198:6;40146:80;:::i;:::-;40236;40312:2;40301:9;40297:18;40288:6;40236:80;:::i;:::-;40326:73;40394:3;40383:9;40379:19;40370:6;40326:73;:::i;:::-;40409;40477:3;40466:9;40462:19;40453:6;40409:73;:::i;:::-;39682:807;;;;;;;;;:::o;40495:143::-;40552:5;40583:6;40577:13;40568:22;;40599:33;40626:5;40599:33;:::i;:::-;40495:143;;;;:::o;40644:663::-;40732:6;40740;40748;40797:2;40785:9;40776:7;40772:23;40768:32;40765:119;;;40803:79;;:::i;:::-;40765:119;40923:1;40948:64;41004:7;40995:6;40984:9;40980:22;40948:64;:::i;:::-;40938:74;;40894:128;41061:2;41087:64;41143:7;41134:6;41123:9;41119:22;41087:64;:::i;:::-;41077:74;;41032:129;41200:2;41226:64;41282:7;41273:6;41262:9;41258:22;41226:64;:::i;:::-;41216:74;;41171:129;40644:663;;;;;:::o;41313:179::-;41453:31;41449:1;41441:6;41437:14;41430:55;41313:179;:::o;41498:366::-;41640:3;41661:67;41725:2;41720:3;41661:67;:::i;:::-;41654:74;;41737:93;41826:3;41737:93;:::i;:::-;41855:2;41850:3;41846:12;41839:19;;41498:366;;;:::o;41870:419::-;42036:4;42074:2;42063:9;42059:18;42051:26;;42123:9;42117:4;42113:20;42109:1;42098:9;42094:17;42087:47;42151:131;42277:4;42151:131;:::i;:::-;42143:139;;41870:419;;;:::o;42295:147::-;42396:11;42433:3;42418:18;;42295:147;;;;:::o;42448:114::-;;:::o;42568:398::-;42727:3;42748:83;42829:1;42824:3;42748:83;:::i;:::-;42741:90;;42840:93;42929:3;42840:93;:::i;:::-;42958:1;42953:3;42949:11;42942:18;;42568:398;;;:::o;42972:379::-;43156:3;43178:147;43321:3;43178:147;:::i;:::-;43171:154;;43342:3;43335:10;;42972:379;;;:::o;43357:245::-;43497:34;43493:1;43485:6;43481:14;43474:58;43566:28;43561:2;43553:6;43549:15;43542:53;43357:245;:::o;43608:366::-;43750:3;43771:67;43835:2;43830:3;43771:67;:::i;:::-;43764:74;;43847:93;43936:3;43847:93;:::i;:::-;43965:2;43960:3;43956:12;43949:19;;43608:366;;;:::o;43980:419::-;44146:4;44184:2;44173:9;44169:18;44161:26;;44233:9;44227:4;44223:20;44219:1;44208:9;44204:17;44197:47;44261:131;44387:4;44261:131;:::i;:::-;44253:139;;43980:419;;;:::o

Swarm Source

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