ETH Price: $2,251.52 (-1.26%)
 

Overview

ETH Balance

0.195693898316217192 ETH

Eth Value

$440.61 (@ $2,251.52/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

BuildAI (Build) ($0.0004)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve243716932026-02-02 20:54:5937 hrs ago1770065699IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000014520.30730651
Approve243585512026-02-01 0:52:113 days ago1769907131IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000008150.17292857
Approve243355472026-01-28 19:51:236 days ago1769629883IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000064891.37502409
Approve243355232026-01-28 19:46:356 days ago1769629595IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000006230.2300188
Approve243355102026-01-28 19:43:596 days ago1769629439IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000011150.23741868
Approve243126162026-01-25 15:06:479 days ago1769353607IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000025540.54058476
Approve242983852026-01-23 15:29:2311 days ago1769182163IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000037810.80027356
Approve242900382026-01-22 11:30:5912 days ago1769081459IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000003420.07256617
Approve242868882026-01-22 0:56:2313 days ago1769043383IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000025170.53272789
Approve242868442026-01-22 0:47:3513 days ago1769042855IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.00002510.53119449
Approve242868442026-01-22 0:47:3513 days ago1769042855IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000025160.53256749
Approve242868392026-01-22 0:46:3513 days ago1769042795IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000025080.53086391
Approve242868142026-01-22 0:41:3513 days ago1769042495IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000095452.03084038
Approve242866372026-01-22 0:05:5913 days ago1769040359IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000049321.04520072
Approve242862172026-01-21 22:41:4713 days ago1769035307IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000050081.05980436
Approve242862012026-01-21 22:38:2313 days ago1769035103IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.00004971.05335714
Approve242861532026-01-21 22:28:4713 days ago1769034527IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000050031.0588787
Approve242861112026-01-21 22:20:2313 days ago1769034023IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000017630.37357555
Approve242860932026-01-21 22:16:4713 days ago1769033807IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.00014443.05582456
Approve242846792026-01-21 17:32:2313 days ago1769016743IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000198254.21899089
Approve242846512026-01-21 17:26:4713 days ago1769016407IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000274875.84946168
Approve242831102026-01-21 12:17:3513 days ago1768997855IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000110452.35060616
Transfer242779372026-01-20 18:59:1114 days ago1768935551IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000042971.12224025
Transfer242779372026-01-20 18:59:1114 days ago1768935551IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000043481.13535887
Transfer242779322026-01-20 18:58:1114 days ago1768935491IN
0xEFF9CDb2...a4F9C5e6B
0 ETH0.000043921.14608833
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer243716412026-02-02 20:44:3537 hrs ago1770065075
0xEFF9CDb2...a4F9C5e6B
0.00065423 ETH
Transfer243716412026-02-02 20:44:3537 hrs ago1770065075
0xEFF9CDb2...a4F9C5e6B
0.00065423 ETH
Add Liquidity ET...243716412026-02-02 20:44:3537 hrs ago1770065075
0xEFF9CDb2...a4F9C5e6B
0.00016355 ETH
Transfer243716412026-02-02 20:44:3537 hrs ago1770065075
0xEFF9CDb2...a4F9C5e6B
0.00147201 ETH
Transfer243585512026-02-01 0:52:113 days ago1769907131
0xEFF9CDb2...a4F9C5e6B
0.00064965 ETH
Transfer243585512026-02-01 0:52:113 days ago1769907131
0xEFF9CDb2...a4F9C5e6B
0.00064965 ETH
Add Liquidity ET...243585512026-02-01 0:52:113 days ago1769907131
0xEFF9CDb2...a4F9C5e6B
0.00016241 ETH
Transfer243585512026-02-01 0:52:113 days ago1769907131
0xEFF9CDb2...a4F9C5e6B
0.00146173 ETH
Transfer243430312026-01-29 20:53:595 days ago1769720039
0xEFF9CDb2...a4F9C5e6B
0.00040353 ETH
Transfer243430312026-01-29 20:53:595 days ago1769720039
0xEFF9CDb2...a4F9C5e6B
0.00040353 ETH
Add Liquidity ET...243430312026-01-29 20:53:595 days ago1769720039
0xEFF9CDb2...a4F9C5e6B
0.00010088 ETH
Transfer243430312026-01-29 20:53:595 days ago1769720039
0xEFF9CDb2...a4F9C5e6B
0.00090795 ETH
Transfer243355502026-01-28 19:51:596 days ago1769629919
0xEFF9CDb2...a4F9C5e6B
0.00042262 ETH
Transfer243355502026-01-28 19:51:596 days ago1769629919
0xEFF9CDb2...a4F9C5e6B
0.00042262 ETH
Add Liquidity ET...243355502026-01-28 19:51:596 days ago1769629919
0xEFF9CDb2...a4F9C5e6B
0.00010565 ETH
Transfer243355502026-01-28 19:51:596 days ago1769629919
0xEFF9CDb2...a4F9C5e6B
0.00095091 ETH
Transfer243355242026-01-28 19:46:476 days ago1769629607
0xEFF9CDb2...a4F9C5e6B
0.00042262 ETH
Add Liquidity ET...243355242026-01-28 19:46:476 days ago1769629607
0xEFF9CDb2...a4F9C5e6B
0.00010565 ETH
Transfer243355242026-01-28 19:46:476 days ago1769629607
0xEFF9CDb2...a4F9C5e6B
0.00095091 ETH
Transfer243355112026-01-28 19:44:116 days ago1769629451
0xEFF9CDb2...a4F9C5e6B
0.00042262 ETH
Add Liquidity ET...243355112026-01-28 19:44:116 days ago1769629451
0xEFF9CDb2...a4F9C5e6B
0.00010565 ETH
Transfer243355112026-01-28 19:44:116 days ago1769629451
0xEFF9CDb2...a4F9C5e6B
0.00095091 ETH
Transfer243131342026-01-25 16:50:359 days ago1769359835
0xEFF9CDb2...a4F9C5e6B
0.00044734 ETH
Transfer243131342026-01-25 16:50:359 days ago1769359835
0xEFF9CDb2...a4F9C5e6B
0.00044734 ETH
Add Liquidity ET...243131342026-01-25 16:50:359 days ago1769359835
0xEFF9CDb2...a4F9C5e6B
0.00011183 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BuildAI

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : BuildAI.sol
//SPDX-License-Identifier: UNLICENSED
/*
Telegram: https://t.me/BUILDAIHUB
Website: https://buildaierc.com/
X: https://twitter.com/BuildAI_erc
Linktree: https://linktr.ee/BuildAI
*/
pragma solidity ^0.8.7;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply = 10000000 * 10 ** decimals();

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library 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;
}

abstract contract ERC20Burnable is Context, ERC20, Ownable {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual onlyOwner {
        _burn(_msgSender(), amount * 10 ** decimals());
    }
}

contract BuildAI is ERC20, Ownable, ERC20Burnable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    uint256 public initialAirdrop = 2249936 * 10 ** decimals();

    bool public tradingEnabled = false;

    uint256 public ThresholdAmount = 10000 * 10 ** 18;

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

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

    Taxes public buyTaxes = Taxes(1000, 1000, 1000);
    Taxes public sellTaxes = Taxes(1000, 1000, 1000);

    mapping(address => bool) public exemptFee;

    constructor(
        address _marketingWallet,
        address _devWallet,
        string memory name,
        string memory symbol
    ) ERC20(name, symbol) {
        require(
            _marketingWallet != address(0),
            "Marketing wallet cannot be zero address"
        );
        require(_devWallet != address(0), "dev wallet cannot be zero address");

        _mint(
            address(0x6c233F2A4708E7a8Edd207E6C643E8C673d0a7f0),
            totalSupply() - (initialAirdrop)
        );

        _mint(address(this), initialAirdrop);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;

        marketingWallet = _marketingWallet;
        devWallet = _devWallet;

        exemptFee[address(this)] = true;
        exemptFee[owner()] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = 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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        _transfer(sender, recipient, 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,
            "ERC20: 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 fee;
        Taxes memory currentTaxes;

        if (
            exemptFee[sender] ||
            exemptFee[recipient] ||
            (sender != pair && recipient != pair)
        ) {
            fee = 0;
        } else {
            if (recipient == pair) {
                feeswap =
                    sellTaxes.marketing +
                    sellTaxes.dev +
                    sellTaxes.liquidity;
                currentTaxes = sellTaxes;
            } else {
                feeswap =
                    buyTaxes.marketing +
                    buyTaxes.dev +
                    buyTaxes.liquidity;
                currentTaxes = buyTaxes;
            }
            fee = ((amount * feeswap) / 10000);
        }

        if (sender != pair) handle_fees(feeswap, currentTaxes);

        super._transfer(sender, recipient, amount - fee);

        if (feeswap > 0) {
            super._transfer(sender, address(this), fee);
        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private {
        if (feeswap == 0) {
            return;
        }

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

            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance *
                swapTaxes.liquidity) / denominator;
            uint256 AmountToSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(AmountToSwap);

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

            if (bnbToAddLiquidityWith > 0) {
                addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
            }

            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 {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }

    function updateTreshhold(uint256 new_amount) external onlyOwner {
        ThresholdAmount = new_amount * 10 ** decimals();
    }

    function setBuyTaxes(
        uint256 _marketing,
        uint256 _dev,
        uint256 _liquidity
    ) external onlyOwner {
        uint256 totalTax = _marketing + _dev + _liquidity;
        require(totalTax <= 3000, "Must keep fees at 30% or less");
        if (totalTax > 5) {
            require(
                _marketing <= buyTaxes.marketing &&
                    _dev <= buyTaxes.dev &&
                    _liquidity <= buyTaxes.liquidity,
                "Only reductions allowed"
            );
        } else {
            require(totalTax <= 5, "Cannot exceed 5% after reduction to 5%");
        }
        buyTaxes = Taxes(_marketing, _dev, _liquidity);
    }

    function setSellTaxes(
        uint256 _marketing,
        uint256 _dev,
        uint256 _liquidity
    ) external onlyOwner {
        uint256 totalTax = _marketing + _dev + _liquidity;
        require(totalTax <= 3000, "Must keep fees at 30% or less");
        if (totalTax > 5) {
            require(
                _marketing <= sellTaxes.marketing &&
                    _dev <= sellTaxes.dev &&
                    _liquidity <= sellTaxes.liquidity,
                "Only reductions allowed"
            );
        } else {
            require(totalTax <= 5, "Cannot exceed 5% after reduction to 5%");
        }
        sellTaxes = Taxes(_marketing, _dev, _liquidity);
    }

    function sendInitialAirdrop(
        address[] memory recipients,
        uint256[] memory amounts
    ) external onlyOwner {
        require(recipients.length == amounts.length, "Array length mismatch");

        // Calculate the total amount to be distributed
        uint256 totalAmount = 0;
        for (uint256 i = 0; i < amounts.length; i++) {
            totalAmount += amounts[i];
        }

        // Ensure the total amount does not exceed the initial airdrop allocation
        require(
            totalAmount <= initialAirdrop,
            "Total amount exceeds initial airdrop allocation"
        );

        initialAirdrop = initialAirdrop - totalAmount;

        // Distribute tokens to each recipient
        for (uint256 i = 0; i < recipients.length; i++) {
            _transfer(address(this), recipients[i], amounts[i]);
        }
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
    }

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

    function updatedevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Fee Address cannot be zero address");
        require(newWallet != address(this), "Fee Address cannot be CA");
        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 rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"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":"ThresholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"initialAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"sendInitialAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatedevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261001261073060201b60201c565b600a61001e9190610ae7565b6298968061002c9190610b32565b60025561003d61073060201b60201c565b600a6100499190610ae7565b622254d06100579190610b32565b6008556000600960006101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600a5560405180606001604052806103e881526020016103e881526020016103e8815250600d600082015181600001556020820151816001015560408201518160020155505060405180606001604052806103e881526020016103e881526020016103e88152506010600082015181600001556020820151816001015560408201518160020155505034801561011557600080fd5b50604051615d9f380380615d9f83398181016040528101906101379190610d47565b818181600390816101489190610ffd565b5080600490816101589190610ffd565b50505061017761016c61073960201b60201c565b61074160201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036101e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dd90611152565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024c906111e4565b60405180910390fd5b610293736c233f2a4708e7a8edd207e6c643e8c673d0a7f060085461027e61080760201b60201c565b6102889190611204565b61081160201b60201c565b6102a53060085461081160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032d9190611238565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b89190611238565b6040518363ffffffff1660e01b81526004016103d5929190611274565b6020604051808303816000875af11580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190611238565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061058761093f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050611359565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108779061130f565b60405180910390fd5b6108926000838361096960201b60201c565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610933919061133e565b60405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156109f4578086048111156109d0576109cf61096e565b5b60018516156109df5780820291505b80810290506109ed8561099d565b94506109b4565b94509492505050565b600082610a0d5760019050610ac9565b81610a1b5760009050610ac9565b8160018114610a315760028114610a3b57610a6a565b6001915050610ac9565b60ff841115610a4d57610a4c61096e565b5b8360020a915084821115610a6457610a6361096e565b5b50610ac9565b5060208310610133831016604e8410600b8410161715610a9f5782820a905083811115610a9a57610a9961096e565b5b610ac9565b610aac84848460016109aa565b92509050818404811115610ac357610ac261096e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000610af282610ad0565b9150610afd83610ada565b9250610b2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846109fd565b905092915050565b6000610b3d82610ad0565b9150610b4883610ad0565b9250828202610b5681610ad0565b91508282048414831517610b6d57610b6c61096e565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb382610b88565b9050919050565b610bc381610ba8565b8114610bce57600080fd5b50565b600081519050610be081610bba565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c3982610bf0565b810181811067ffffffffffffffff82111715610c5857610c57610c01565b5b80604052505050565b6000610c6b610b74565b9050610c778282610c30565b919050565b600067ffffffffffffffff821115610c9757610c96610c01565b5b610ca082610bf0565b9050602081019050919050565b60005b83811015610ccb578082015181840152602081019050610cb0565b60008484015250505050565b6000610cea610ce584610c7c565b610c61565b905082815260208101848484011115610d0657610d05610beb565b5b610d11848285610cad565b509392505050565b600082601f830112610d2e57610d2d610be6565b5b8151610d3e848260208601610cd7565b91505092915050565b60008060008060808587031215610d6157610d60610b7e565b5b6000610d6f87828801610bd1565b9450506020610d8087828801610bd1565b935050604085015167ffffffffffffffff811115610da157610da0610b83565b5b610dad87828801610d19565b925050606085015167ffffffffffffffff811115610dce57610dcd610b83565b5b610dda87828801610d19565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e3857607f821691505b602082108103610e4b57610e4a610df1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610eb37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610e76565b610ebd8683610e76565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610efa610ef5610ef084610ad0565b610ed5565b610ad0565b9050919050565b6000819050919050565b610f1483610edf565b610f28610f2082610f01565b848454610e83565b825550505050565b600090565b610f3d610f30565b610f48818484610f0b565b505050565b5b81811015610f6c57610f61600082610f35565b600181019050610f4e565b5050565b601f821115610fb157610f8281610e51565b610f8b84610e66565b81016020851015610f9a578190505b610fae610fa685610e66565b830182610f4d565b50505b505050565b600082821c905092915050565b6000610fd460001984600802610fb6565b1980831691505092915050565b6000610fed8383610fc3565b9150826002028217905092915050565b61100682610de6565b67ffffffffffffffff81111561101f5761101e610c01565b5b6110298254610e20565b611034828285610f70565b600060209050601f8311600181146110675760008415611055578287015190505b61105f8582610fe1565b8655506110c7565b601f19841661107586610e51565b60005b8281101561109d57848901518255600182019150602085019450602081019050611078565b868310156110ba57848901516110b6601f891682610fc3565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061113c6027836110cf565b9150611147826110e0565b604082019050919050565b6000602082019050818103600083015261116b8161112f565b9050919050565b7f6465762077616c6c65742063616e6e6f74206265207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ce6021836110cf565b91506111d982611172565b604082019050919050565b600060208201905081810360008301526111fd816111c1565b9050919050565b600061120f82610ad0565b915061121a83610ad0565b92508282039050818111156112325761123161096e565b5b92915050565b60006020828403121561124e5761124d610b7e565b5b600061125c84828501610bd1565b91505092915050565b61126e81610ba8565b82525050565b60006040820190506112896000830185611265565b6112966020830184611265565b9392505050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006112f96025836110cf565b91506113048261129d565b604082019050919050565b60006020820190508181036000830152611328816112ec565b9050919050565b61133881610ad0565b82525050565b6000602082019050611353600083018461132f565b92915050565b614a37806113686000396000f3fe60806040526004361061021e5760003560e01c80638a8c523c11610123578063aacebbe3116100ab578063f2fde38b1161006f578063f2fde38b146107d0578063f66895a3146107f9578063f887ea4014610826578063fbb63ac314610851578063fc1704411461087a57610225565b8063aacebbe3146106d7578063bcd5dd9814610700578063c5d32bb21461072b578063da48567c14610768578063dd62ed3e1461079357610225565b806395d89b41116100f257806395d89b41146105de578063a3fce65e14610609578063a457c2d714610632578063a8aa1b311461066f578063a9059cbb1461069a57610225565b80638a8c523c146105485780638cd4426d1461055f5780638da5cb5b146105885780638ea5220f146105b357610225565b8063355496ca116101a657806370a082311161017557806370a0823114610471578063715018a6146104ae57806375f0a874146104c557806385141a77146104f0578063864701a51461051b57610225565b8063355496ca146103b757806339509351146103e057806342966c681461041d5780634ada218b1461044657610225565b806318160ddd116101ed57806318160ddd146102e45780631870517a1461030f57806320800a001461033857806323b872dd1461034f578063313ce5671461038c57610225565b806306fdde031461022a5780630873321414610255578063095ea7b31461027e5780630e375a5c146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108a3565b60405161024c91906130b7565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613123565b610935565b005b34801561028a57600080fd5b506102a560048036038101906102a091906131d4565b610b12565b6040516102b2919061322f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906133be565b610b30565b005b3480156102f057600080fd5b506102f9610c3b565b6040516103069190613429565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190613123565b610c45565b005b34801561034457600080fd5b5061034d610e22565b005b34801561035b57600080fd5b5061037660048036038101906103719190613444565b610ef4565b604051610383919061322f565b60405180910390f35b34801561039857600080fd5b506103a1610ff4565b6040516103ae91906134b3565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906134ce565b610ffd565b005b3480156103ec57600080fd5b50610407600480360381019061040291906131d4565b6110d4565b604051610414919061322f565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f919061350e565b611180565b005b34801561045257600080fd5b5061045b61122e565b604051610468919061322f565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061353b565b611241565b6040516104a59190613429565b60405180910390f35b3480156104ba57600080fd5b506104c3611289565b005b3480156104d157600080fd5b506104da611311565b6040516104e79190613577565b60405180910390f35b3480156104fc57600080fd5b50610505611337565b6040516105129190613577565b60405180910390f35b34801561052757600080fd5b5061053061133d565b60405161053f93929190613592565b60405180910390f35b34801561055457600080fd5b5061055d611355565b005b34801561056b57600080fd5b50610586600480360381019061058191906131d4565b61143e565b005b34801561059457600080fd5b5061059d611544565b6040516105aa9190613577565b60405180910390f35b3480156105bf57600080fd5b506105c861156e565b6040516105d59190613577565b60405180910390f35b3480156105ea57600080fd5b506105f3611594565b60405161060091906130b7565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061368c565b611626565b005b34801561063e57600080fd5b50610659600480360381019061065491906131d4565b6117e0565b604051610666919061322f565b60405180910390f35b34801561067b57600080fd5b506106846118d4565b6040516106919190613577565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906131d4565b6118fa565b6040516106ce919061322f565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f9919061353b565b611911565b005b34801561070c57600080fd5b50610715611aae565b6040516107229190613429565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d919061353b565b611ab4565b60405161075f919061322f565b60405180910390f35b34801561077457600080fd5b5061077d611ad4565b60405161078a9190613429565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613704565b611ada565b6040516107c79190613429565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f2919061353b565b611b61565b005b34801561080557600080fd5b5061080e611c58565b60405161081d93929190613592565b60405180910390f35b34801561083257600080fd5b5061083b611c70565b60405161084891906137a3565b60405180910390f35b34801561085d57600080fd5b506108786004803603810190610873919061350e565b611c96565b005b34801561088657600080fd5b506108a1600480360381019061089c919061353b565b611d3a565b005b6060600380546108b2906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546108de906137ed565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b61093d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661095b611544565b73ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a89061386a565b60405180910390fd5b60008183856109c091906138b9565b6109ca91906138b9565b9050610bb8811115610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613939565b60405180910390fd5b6005811115610a89576010600001548411158015610a3457506010600101548311155b8015610a4557506010600201548211155b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906139a5565b60405180910390fd5b610ace565b6005811115610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250601060008201518160000155602082015181600101556040820151816002015590505050505050565b6000610b26610b1f611ed7565b8484611edf565b6001905092915050565b610b38611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610b56611544565b73ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba39061386a565b60405180910390fd5b60005b8251811015610c36578160136000858481518110610bd057610bcf613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610baf565b505050565b6000600254905090565b610c4d611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611544565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061386a565b60405180910390fd5b6000818385610cd091906138b9565b610cda91906138b9565b9050610bb8811115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890613939565b60405180910390fd5b6005811115610d9957600d600001548411158015610d445750600d600101548311155b8015610d555750600d600201548211155b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906139a5565b60405180910390fd5b610dde565b6005811115610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250600d60008201518160000155602082015181600101556040820151816002015590505050505050565b610e2a611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610e48611544565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061386a565b60405180910390fd5b6000479050610eab611544565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ef0573d6000803e3d6000fd5b5050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f40611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613af8565b60405180910390fd5b610fdd85610fcc611ed7565b8584610fd89190613b18565b611edf565b610fe88585856120a8565b60019150509392505050565b60006012905090565b611005611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611023611544565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061386a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111766110e1611ed7565b8484600160006110ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117191906138b9565b611edf565b6001905092915050565b611188611ed7565b73ffffffffffffffffffffffffffffffffffffffff166111a6611544565b73ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f39061386a565b60405180910390fd5b61122b611207611ed7565b61120f610ff4565b600a61121b9190613c7f565b836112269190613cca565b612505565b50565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611291611ed7565b73ffffffffffffffffffffffffffffffffffffffff166112af611544565b73ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061386a565b60405180910390fd5b61130f60006126d8565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600d8060000154908060010154908060020154905083565b61135d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661137b611544565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061386a565b60405180910390fd5b600960009054906101000a900460ff1615611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d58565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b611446611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611464611544565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b19061386a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114de611544565b836040518363ffffffff1660e01b81526004016114fc929190613d78565b6020604051808303816000875af115801561151b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153f9190613db6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a3906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf906137ed565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b61162e611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661164c611544565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061386a565b60405180910390fd5b80518251146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613e2f565b60405180910390fd5b6000805b82518110156117285782818151811061170657611705613a57565b5b60200260200101518261171991906138b9565b915080806001019150506116ea565b5060085481111561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613ec1565b60405180910390fd5b8060085461177c9190613b18565b60088190555060005b83518110156117da576117cd308583815181106117a5576117a4613a57565b5b60200260200101518584815181106117c0576117bf613a57565b5b60200260200101516120a8565b8080600101915050611785565b50505050565b600080600160006117ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390613f53565b60405180910390fd5b6118c96118b7611ed7565b8585846118c49190613b18565b611edf565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119073384846120a8565b6001905092915050565b611919611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611937611544565b73ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119849061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614051565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60136020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b69611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611b87611544565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906140e3565b60405180910390fd5b611c55816126d8565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c9e611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611cbc611544565b73ffffffffffffffffffffffffffffffffffffffff1614611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061386a565b60405180910390fd5b611d1a610ff4565b600a611d269190613c7f565b81611d319190613cca565b600a8190555050565b611d42611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611d60611544565b73ffffffffffffffffffffffffffffffffffffffff1614611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad9061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90614051565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590614175565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490614207565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209b9190613429565b60405180910390a3505050565b600081116120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290614299565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e457600960009054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90614305565b60405180910390fd5b5b6000806121ef613006565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122905750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123435750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156123515760009150612472565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612400576010600201546010600101546010600001546123c291906138b9565b6123cc91906138b9565b9250601060405180606001604052908160008201548152602001600182015481526020016002820154815250509050612456565b600d60020154600d60010154600d6000015461241c91906138b9565b61242691906138b9565b9250600d604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b61271083856124659190613cca565b61246f9190614354565b91505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146124d2576124d1838261279e565b5b6124e8868684876124e39190613b18565b61296d565b60008311156124fd576124fc86308461296d565b5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b906143f7565b60405180910390fd5b61258082600083612bea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614489565b60405180910390fd5b81816126129190613b18565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546126669190613b18565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126cb9190613429565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008203156129695760006127b230611241565b9050600a548110612967576001600a5411156127ce57600a5490505b60006002846127dd9190613cca565b90506000818460400151846127f29190613cca565b6127fc9190614354565b90506000818461280c9190613b18565b9050600047905061281c82612bef565b6000814761282a9190613b18565b9050600087604001518661283e9190613b18565b826128499190614354565b9050600088604001518261285d9190613cca565b90506000811115612873576128728682612e32565b5b600089600001516002846128879190613cca565b6128919190613cca565b905060008111156128e8576128e781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b60008a602001516002856128fc9190613cca565b6129069190613cca565b9050600081111561295d5761295c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b5050505050505050505b505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d39061451b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906145ad565b60405180910390fd5b612a56838383612bea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad39061463f565b60405180910390fd5b8181612ae89190613b18565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7891906138b9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdc9190613429565b60405180910390a350505050565b505050565b6000600267ffffffffffffffff811115612c0c57612c0b61324f565b5b604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c5257612c51613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1d9190614674565b81600181518110612d3157612d30613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfc95949392919061479a565b600060405180830381600087803b158015612e1657600080fd5b505af1158015612e2a573d6000803e3d6000fd5b505050505050565b612e5f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ec8969594939291906147f4565b60606040518083038185885af1158015612ee6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0b919061486a565b5050505050565b80471015612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c90614909565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7b9061495a565b60006040518083038185875af1925050503d8060008114612fb8576040519150601f19603f3d011682016040523d82523d6000602084013e612fbd565b606091505b5050905080613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff8906149e1565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613061578082015181840152602081019050613046565b60008484015250505050565b6000601f19601f8301169050919050565b600061308982613027565b6130938185613032565b93506130a3818560208601613043565b6130ac8161306d565b840191505092915050565b600060208201905081810360008301526130d1818461307e565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613100816130ed565b811461310b57600080fd5b50565b60008135905061311d816130f7565b92915050565b60008060006060848603121561313c5761313b6130e3565b5b600061314a8682870161310e565b935050602061315b8682870161310e565b925050604061316c8682870161310e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a182613176565b9050919050565b6131b181613196565b81146131bc57600080fd5b50565b6000813590506131ce816131a8565b92915050565b600080604083850312156131eb576131ea6130e3565b5b60006131f9858286016131bf565b925050602061320a8582860161310e565b9150509250929050565b60008115159050919050565b61322981613214565b82525050565b60006020820190506132446000830184613220565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132878261306d565b810181811067ffffffffffffffff821117156132a6576132a561324f565b5b80604052505050565b60006132b96130d9565b90506132c5828261327e565b919050565b600067ffffffffffffffff8211156132e5576132e461324f565b5b602082029050602081019050919050565b600080fd5b600061330e613309846132ca565b6132af565b90508083825260208201905060208402830185811115613331576133306132f6565b5b835b8181101561335a578061334688826131bf565b845260208401935050602081019050613333565b5050509392505050565b600082601f8301126133795761337861324a565b5b81356133898482602086016132fb565b91505092915050565b61339b81613214565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d46130e3565b5b600083013567ffffffffffffffff8111156133f3576133f26130e8565b5b6133ff85828601613364565b9250506020613410858286016133a9565b9150509250929050565b613423816130ed565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c6130e3565b5b600061346b868287016131bf565b935050602061347c868287016131bf565b925050604061348d8682870161310e565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b600080604083850312156134e5576134e46130e3565b5b60006134f3858286016131bf565b9250506020613504858286016133a9565b9150509250929050565b600060208284031215613524576135236130e3565b5b60006135328482850161310e565b91505092915050565b600060208284031215613551576135506130e3565b5b600061355f848285016131bf565b91505092915050565b61357181613196565b82525050565b600060208201905061358c6000830184613568565b92915050565b60006060820190506135a7600083018661341a565b6135b4602083018561341a565b6135c1604083018461341a565b949350505050565b600067ffffffffffffffff8211156135e4576135e361324f565b5b602082029050602081019050919050565b6000613608613603846135c9565b6132af565b9050808382526020820190506020840283018581111561362b5761362a6132f6565b5b835b818110156136545780613640888261310e565b84526020840193505060208101905061362d565b5050509392505050565b600082601f8301126136735761367261324a565b5b81356136838482602086016135f5565b91505092915050565b600080604083850312156136a3576136a26130e3565b5b600083013567ffffffffffffffff8111156136c1576136c06130e8565b5b6136cd85828601613364565b925050602083013567ffffffffffffffff8111156136ee576136ed6130e8565b5b6136fa8582860161365e565b9150509250929050565b6000806040838503121561371b5761371a6130e3565b5b6000613729858286016131bf565b925050602061373a858286016131bf565b9150509250929050565b6000819050919050565b600061376961376461375f84613176565b613744565b613176565b9050919050565b600061377b8261374e565b9050919050565b600061378d82613770565b9050919050565b61379d81613782565b82525050565b60006020820190506137b86000830184613794565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380557607f821691505b602082108103613818576138176137be565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613854602083613032565b915061385f8261381e565b602082019050919050565b6000602082019050818103600083015261388381613847565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138c4826130ed565b91506138cf836130ed565b92508282019050808211156138e7576138e661388a565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b6000613923601d83613032565b915061392e826138ed565b602082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f4f6e6c7920726564756374696f6e7320616c6c6f776564000000000000000000600082015250565b600061398f601783613032565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f742065786365656420352520616674657220726564756374696f6e60008201527f20746f2035250000000000000000000000000000000000000000000000000000602082015250565b6000613a21602683613032565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ae2602883613032565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b6000613b23826130ed565b9150613b2e836130ed565b9250828203905081811115613b4657613b4561388a565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613ba357808604811115613b7f57613b7e61388a565b5b6001851615613b8e5780820291505b8081029050613b9c85613b4c565b9450613b63565b94509492505050565b600082613bbc5760019050613c78565b81613bca5760009050613c78565b8160018114613be05760028114613bea57613c19565b6001915050613c78565b60ff841115613bfc57613bfb61388a565b5b8360020a915084821115613c1357613c1261388a565b5b50613c78565b5060208310610133831016604e8410600b8410161715613c4e5782820a905083811115613c4957613c4861388a565b5b613c78565b613c5b8484846001613b59565b92509050818404811115613c7257613c7161388a565b5b81810290505b9392505050565b6000613c8a826130ed565b9150613c9583613497565b9250613cc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bac565b905092915050565b6000613cd5826130ed565b9150613ce0836130ed565b9250828202613cee816130ed565b91508282048414831517613d0557613d0461388a565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613d42601a83613032565b9150613d4d82613d0c565b602082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185613568565b613d9a602083018461341a565b9392505050565b600081519050613db081613392565b92915050565b600060208284031215613dcc57613dcb6130e3565b5b6000613dda84828501613da1565b91505092915050565b7f4172726179206c656e677468206d69736d617463680000000000000000000000600082015250565b6000613e19601583613032565b9150613e2482613de3565b602082019050919050565b60006020820190508181036000830152613e4881613e0c565b9050919050565b7f546f74616c20616d6f756e74206578636565647320696e697469616c2061697260008201527f64726f7020616c6c6f636174696f6e0000000000000000000000000000000000602082015250565b6000613eab602f83613032565b9150613eb682613e4f565b604082019050919050565b60006020820190508181036000830152613eda81613e9e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f3d602583613032565b9150613f4882613ee1565b604082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fcf602283613032565b9150613fda82613f73565b604082019050919050565b60006020820190508181036000830152613ffe81613fc2565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b600061403b601883613032565b915061404682614005565b602082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140cd602683613032565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061415f602483613032565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602283613032565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614283602983613032565b915061428e82614227565b604082019050919050565b600060208201905081810360008301526142b281614276565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142ef601383613032565b91506142fa826142b9565b602082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435f826130ed565b915061436a836130ed565b92508261437a57614379614325565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006143e1602183613032565b91506143ec82614385565b604082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614473602283613032565b915061447e82614417565b604082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614505602583613032565b9150614510826144a9565b604082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614597602383613032565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614629602683613032565b9150614634826145cd565b604082019050919050565b600060208201905081810360008301526146588161461c565b9050919050565b60008151905061466e816131a8565b92915050565b60006020828403121561468a576146896130e3565b5b60006146988482850161465f565b91505092915050565b6000819050919050565b60006146c66146c16146bc846146a1565b613744565b6130ed565b9050919050565b6146d6816146ab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61471181613196565b82525050565b60006147238383614708565b60208301905092915050565b6000602082019050919050565b6000614747826146dc565b61475181856146e7565b935061475c836146f8565b8060005b8381101561478d5781516147748882614717565b975061477f8361472f565b925050600181019050614760565b5085935050505092915050565b600060a0820190506147af600083018861341a565b6147bc60208301876146cd565b81810360408301526147ce818661473c565b90506147dd6060830185613568565b6147ea608083018461341a565b9695505050505050565b600060c0820190506148096000830189613568565b614816602083018861341a565b61482360408301876146cd565b61483060608301866146cd565b61483d6080830185613568565b61484a60a083018461341a565b979650505050505050565b600081519050614864816130f7565b92915050565b600080600060608486031215614883576148826130e3565b5b600061489186828701614855565b93505060206148a286828701614855565b92505060406148b386828701614855565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148f3601d83613032565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b600081905092915050565b50565b6000614944600083614929565b915061494f82614934565b600082019050919050565b600061496582614937565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006149cb603a83613032565b91506149d68261496f565b604082019050919050565b600060208201905081810360008301526149fa816149be565b905091905056fea26469706673582212203ae5d23dc39a66c63d51238ef3fcdb8a367552c97108833c6d0fd0e7e27a0f6f64736f6c634300081b00330000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000074275696c6441490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054275696c64000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80638a8c523c11610123578063aacebbe3116100ab578063f2fde38b1161006f578063f2fde38b146107d0578063f66895a3146107f9578063f887ea4014610826578063fbb63ac314610851578063fc1704411461087a57610225565b8063aacebbe3146106d7578063bcd5dd9814610700578063c5d32bb21461072b578063da48567c14610768578063dd62ed3e1461079357610225565b806395d89b41116100f257806395d89b41146105de578063a3fce65e14610609578063a457c2d714610632578063a8aa1b311461066f578063a9059cbb1461069a57610225565b80638a8c523c146105485780638cd4426d1461055f5780638da5cb5b146105885780638ea5220f146105b357610225565b8063355496ca116101a657806370a082311161017557806370a0823114610471578063715018a6146104ae57806375f0a874146104c557806385141a77146104f0578063864701a51461051b57610225565b8063355496ca146103b757806339509351146103e057806342966c681461041d5780634ada218b1461044657610225565b806318160ddd116101ed57806318160ddd146102e45780631870517a1461030f57806320800a001461033857806323b872dd1461034f578063313ce5671461038c57610225565b806306fdde031461022a5780630873321414610255578063095ea7b31461027e5780630e375a5c146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108a3565b60405161024c91906130b7565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613123565b610935565b005b34801561028a57600080fd5b506102a560048036038101906102a091906131d4565b610b12565b6040516102b2919061322f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906133be565b610b30565b005b3480156102f057600080fd5b506102f9610c3b565b6040516103069190613429565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190613123565b610c45565b005b34801561034457600080fd5b5061034d610e22565b005b34801561035b57600080fd5b5061037660048036038101906103719190613444565b610ef4565b604051610383919061322f565b60405180910390f35b34801561039857600080fd5b506103a1610ff4565b6040516103ae91906134b3565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d991906134ce565b610ffd565b005b3480156103ec57600080fd5b50610407600480360381019061040291906131d4565b6110d4565b604051610414919061322f565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f919061350e565b611180565b005b34801561045257600080fd5b5061045b61122e565b604051610468919061322f565b60405180910390f35b34801561047d57600080fd5b506104986004803603810190610493919061353b565b611241565b6040516104a59190613429565b60405180910390f35b3480156104ba57600080fd5b506104c3611289565b005b3480156104d157600080fd5b506104da611311565b6040516104e79190613577565b60405180910390f35b3480156104fc57600080fd5b50610505611337565b6040516105129190613577565b60405180910390f35b34801561052757600080fd5b5061053061133d565b60405161053f93929190613592565b60405180910390f35b34801561055457600080fd5b5061055d611355565b005b34801561056b57600080fd5b50610586600480360381019061058191906131d4565b61143e565b005b34801561059457600080fd5b5061059d611544565b6040516105aa9190613577565b60405180910390f35b3480156105bf57600080fd5b506105c861156e565b6040516105d59190613577565b60405180910390f35b3480156105ea57600080fd5b506105f3611594565b60405161060091906130b7565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061368c565b611626565b005b34801561063e57600080fd5b50610659600480360381019061065491906131d4565b6117e0565b604051610666919061322f565b60405180910390f35b34801561067b57600080fd5b506106846118d4565b6040516106919190613577565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc91906131d4565b6118fa565b6040516106ce919061322f565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f9919061353b565b611911565b005b34801561070c57600080fd5b50610715611aae565b6040516107229190613429565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d919061353b565b611ab4565b60405161075f919061322f565b60405180910390f35b34801561077457600080fd5b5061077d611ad4565b60405161078a9190613429565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613704565b611ada565b6040516107c79190613429565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f2919061353b565b611b61565b005b34801561080557600080fd5b5061080e611c58565b60405161081d93929190613592565b60405180910390f35b34801561083257600080fd5b5061083b611c70565b60405161084891906137a3565b60405180910390f35b34801561085d57600080fd5b506108786004803603810190610873919061350e565b611c96565b005b34801561088657600080fd5b506108a1600480360381019061089c919061353b565b611d3a565b005b6060600380546108b2906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546108de906137ed565b801561092b5780601f106109005761010080835404028352916020019161092b565b820191906000526020600020905b81548152906001019060200180831161090e57829003601f168201915b5050505050905090565b61093d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661095b611544565b73ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a89061386a565b60405180910390fd5b60008183856109c091906138b9565b6109ca91906138b9565b9050610bb8811115610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613939565b60405180910390fd5b6005811115610a89576010600001548411158015610a3457506010600101548311155b8015610a4557506010600201548211155b610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906139a5565b60405180910390fd5b610ace565b6005811115610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250601060008201518160000155602082015181600101556040820151816002015590505050505050565b6000610b26610b1f611ed7565b8484611edf565b6001905092915050565b610b38611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610b56611544565b73ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba39061386a565b60405180910390fd5b60005b8251811015610c36578160136000858481518110610bd057610bcf613a57565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610baf565b505050565b6000600254905090565b610c4d611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611544565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061386a565b60405180910390fd5b6000818385610cd091906138b9565b610cda91906138b9565b9050610bb8811115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890613939565b60405180910390fd5b6005811115610d9957600d600001548411158015610d445750600d600101548311155b8015610d555750600d600201548211155b610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906139a5565b60405180910390fd5b610dde565b6005811115610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd490613a37565b60405180910390fd5b5b604051806060016040528085815260200184815260200183815250600d60008201518160000155602082015181600101556040820151816002015590505050505050565b610e2a611ed7565b73ffffffffffffffffffffffffffffffffffffffff16610e48611544565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061386a565b60405180910390fd5b6000479050610eab611544565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ef0573d6000803e3d6000fd5b5050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f40611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613af8565b60405180910390fd5b610fdd85610fcc611ed7565b8584610fd89190613b18565b611edf565b610fe88585856120a8565b60019150509392505050565b60006012905090565b611005611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611023611544565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061386a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006111766110e1611ed7565b8484600160006110ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117191906138b9565b611edf565b6001905092915050565b611188611ed7565b73ffffffffffffffffffffffffffffffffffffffff166111a6611544565b73ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f39061386a565b60405180910390fd5b61122b611207611ed7565b61120f610ff4565b600a61121b9190613c7f565b836112269190613cca565b612505565b50565b600960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611291611ed7565b73ffffffffffffffffffffffffffffffffffffffff166112af611544565b73ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061386a565b60405180910390fd5b61130f60006126d8565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b600d8060000154908060010154908060020154905083565b61135d611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661137b611544565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061386a565b60405180910390fd5b600960009054906101000a900460ff1615611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d58565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b611446611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611464611544565b73ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b19061386a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114de611544565b836040518363ffffffff1660e01b81526004016114fc929190613d78565b6020604051808303816000875af115801561151b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153f9190613db6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a3906137ed565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf906137ed565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b61162e611ed7565b73ffffffffffffffffffffffffffffffffffffffff1661164c611544565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061386a565b60405180910390fd5b80518251146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613e2f565b60405180910390fd5b6000805b82518110156117285782818151811061170657611705613a57565b5b60200260200101518261171991906138b9565b915080806001019150506116ea565b5060085481111561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613ec1565b60405180910390fd5b8060085461177c9190613b18565b60088190555060005b83518110156117da576117cd308583815181106117a5576117a4613a57565b5b60200260200101518584815181106117c0576117bf613a57565b5b60200260200101516120a8565b8080600101915050611785565b50505050565b600080600160006117ef611ed7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a390613f53565b60405180910390fd5b6118c96118b7611ed7565b8585846118c49190613b18565b611edf565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119073384846120a8565b6001905092915050565b611919611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611937611544565b73ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119849061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614051565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60136020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b69611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611b87611544565b73ffffffffffffffffffffffffffffffffffffffff1614611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd49061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c43906140e3565b60405180910390fd5b611c55816126d8565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c9e611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611cbc611544565b73ffffffffffffffffffffffffffffffffffffffff1614611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061386a565b60405180910390fd5b611d1a610ff4565b600a611d269190613c7f565b81611d319190613cca565b600a8190555050565b611d42611ed7565b73ffffffffffffffffffffffffffffffffffffffff16611d60611544565b73ffffffffffffffffffffffffffffffffffffffff1614611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad9061386a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613fe5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a90614051565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590614175565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490614207565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209b9190613429565b60405180910390a3505050565b600081116120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290614299565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e457600960009054906101000a900460ff166121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90614305565b60405180910390fd5b5b6000806121ef613006565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122905750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123435750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123425750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156123515760009150612472565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612400576010600201546010600101546010600001546123c291906138b9565b6123cc91906138b9565b9250601060405180606001604052908160008201548152602001600182015481526020016002820154815250509050612456565b600d60020154600d60010154600d6000015461241c91906138b9565b61242691906138b9565b9250600d604051806060016040529081600082015481526020016001820154815260200160028201548152505090505b61271083856124659190613cca565b61246f9190614354565b91505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146124d2576124d1838261279e565b5b6124e8868684876124e39190613b18565b61296d565b60008311156124fd576124fc86308461296d565b5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b906143f7565b60405180910390fd5b61258082600083612bea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614489565b60405180910390fd5b81816126129190613b18565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546126669190613b18565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126cb9190613429565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008203156129695760006127b230611241565b9050600a548110612967576001600a5411156127ce57600a5490505b60006002846127dd9190613cca565b90506000818460400151846127f29190613cca565b6127fc9190614354565b90506000818461280c9190613b18565b9050600047905061281c82612bef565b6000814761282a9190613b18565b9050600087604001518661283e9190613b18565b826128499190614354565b9050600088604001518261285d9190613cca565b90506000811115612873576128728682612e32565b5b600089600001516002846128879190613cca565b6128919190613cca565b905060008111156128e8576128e781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b60008a602001516002856128fc9190613cca565b6129069190613cca565b9050600081111561295d5761295c81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1290919063ffffffff16565b5b5050505050505050505b505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d39061451b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906145ad565b60405180910390fd5b612a56838383612bea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad39061463f565b60405180910390fd5b8181612ae89190613b18565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7891906138b9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bdc9190613429565b60405180910390a350505050565b505050565b6000600267ffffffffffffffff811115612c0c57612c0b61324f565b5b604051908082528060200260200182016040528015612c3a5781602001602082028036833780820191505090505b5090503081600081518110612c5257612c51613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1d9190614674565b81600181518110612d3157612d30613a57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d9830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dfc95949392919061479a565b600060405180830381600087803b158015612e1657600080fd5b505af1158015612e2a573d6000803e3d6000fd5b505050505050565b612e5f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611edf565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612ec8969594939291906147f4565b60606040518083038185885af1158015612ee6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f0b919061486a565b5050505050565b80471015612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c90614909565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7b9061495a565b60006040518083038185875af1925050503d8060008114612fb8576040519150601f19603f3d011682016040523d82523d6000602084013e612fbd565b606091505b5050905080613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff8906149e1565b60405180910390fd5b505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613061578082015181840152602081019050613046565b60008484015250505050565b6000601f19601f8301169050919050565b600061308982613027565b6130938185613032565b93506130a3818560208601613043565b6130ac8161306d565b840191505092915050565b600060208201905081810360008301526130d1818461307e565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613100816130ed565b811461310b57600080fd5b50565b60008135905061311d816130f7565b92915050565b60008060006060848603121561313c5761313b6130e3565b5b600061314a8682870161310e565b935050602061315b8682870161310e565b925050604061316c8682870161310e565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131a182613176565b9050919050565b6131b181613196565b81146131bc57600080fd5b50565b6000813590506131ce816131a8565b92915050565b600080604083850312156131eb576131ea6130e3565b5b60006131f9858286016131bf565b925050602061320a8582860161310e565b9150509250929050565b60008115159050919050565b61322981613214565b82525050565b60006020820190506132446000830184613220565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132878261306d565b810181811067ffffffffffffffff821117156132a6576132a561324f565b5b80604052505050565b60006132b96130d9565b90506132c5828261327e565b919050565b600067ffffffffffffffff8211156132e5576132e461324f565b5b602082029050602081019050919050565b600080fd5b600061330e613309846132ca565b6132af565b90508083825260208201905060208402830185811115613331576133306132f6565b5b835b8181101561335a578061334688826131bf565b845260208401935050602081019050613333565b5050509392505050565b600082601f8301126133795761337861324a565b5b81356133898482602086016132fb565b91505092915050565b61339b81613214565b81146133a657600080fd5b50565b6000813590506133b881613392565b92915050565b600080604083850312156133d5576133d46130e3565b5b600083013567ffffffffffffffff8111156133f3576133f26130e8565b5b6133ff85828601613364565b9250506020613410858286016133a9565b9150509250929050565b613423816130ed565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c6130e3565b5b600061346b868287016131bf565b935050602061347c868287016131bf565b925050604061348d8682870161310e565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b600080604083850312156134e5576134e46130e3565b5b60006134f3858286016131bf565b9250506020613504858286016133a9565b9150509250929050565b600060208284031215613524576135236130e3565b5b60006135328482850161310e565b91505092915050565b600060208284031215613551576135506130e3565b5b600061355f848285016131bf565b91505092915050565b61357181613196565b82525050565b600060208201905061358c6000830184613568565b92915050565b60006060820190506135a7600083018661341a565b6135b4602083018561341a565b6135c1604083018461341a565b949350505050565b600067ffffffffffffffff8211156135e4576135e361324f565b5b602082029050602081019050919050565b6000613608613603846135c9565b6132af565b9050808382526020820190506020840283018581111561362b5761362a6132f6565b5b835b818110156136545780613640888261310e565b84526020840193505060208101905061362d565b5050509392505050565b600082601f8301126136735761367261324a565b5b81356136838482602086016135f5565b91505092915050565b600080604083850312156136a3576136a26130e3565b5b600083013567ffffffffffffffff8111156136c1576136c06130e8565b5b6136cd85828601613364565b925050602083013567ffffffffffffffff8111156136ee576136ed6130e8565b5b6136fa8582860161365e565b9150509250929050565b6000806040838503121561371b5761371a6130e3565b5b6000613729858286016131bf565b925050602061373a858286016131bf565b9150509250929050565b6000819050919050565b600061376961376461375f84613176565b613744565b613176565b9050919050565b600061377b8261374e565b9050919050565b600061378d82613770565b9050919050565b61379d81613782565b82525050565b60006020820190506137b86000830184613794565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380557607f821691505b602082108103613818576138176137be565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613854602083613032565b915061385f8261381e565b602082019050919050565b6000602082019050818103600083015261388381613847565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138c4826130ed565b91506138cf836130ed565b92508282019050808211156138e7576138e661388a565b5b92915050565b7f4d757374206b656570206665657320617420333025206f72206c657373000000600082015250565b6000613923601d83613032565b915061392e826138ed565b602082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f4f6e6c7920726564756374696f6e7320616c6c6f776564000000000000000000600082015250565b600061398f601783613032565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b7f43616e6e6f742065786365656420352520616674657220726564756374696f6e60008201527f20746f2035250000000000000000000000000000000000000000000000000000602082015250565b6000613a21602683613032565b9150613a2c826139c5565b604082019050919050565b60006020820190508181036000830152613a5081613a14565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ae2602883613032565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b6000613b23826130ed565b9150613b2e836130ed565b9250828203905081811115613b4657613b4561388a565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613ba357808604811115613b7f57613b7e61388a565b5b6001851615613b8e5780820291505b8081029050613b9c85613b4c565b9450613b63565b94509492505050565b600082613bbc5760019050613c78565b81613bca5760009050613c78565b8160018114613be05760028114613bea57613c19565b6001915050613c78565b60ff841115613bfc57613bfb61388a565b5b8360020a915084821115613c1357613c1261388a565b5b50613c78565b5060208310610133831016604e8410600b8410161715613c4e5782820a905083811115613c4957613c4861388a565b5b613c78565b613c5b8484846001613b59565b92509050818404811115613c7257613c7161388a565b5b81810290505b9392505050565b6000613c8a826130ed565b9150613c9583613497565b9250613cc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bac565b905092915050565b6000613cd5826130ed565b9150613ce0836130ed565b9250828202613cee816130ed565b91508282048414831517613d0557613d0461388a565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613d42601a83613032565b9150613d4d82613d0c565b602082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185613568565b613d9a602083018461341a565b9392505050565b600081519050613db081613392565b92915050565b600060208284031215613dcc57613dcb6130e3565b5b6000613dda84828501613da1565b91505092915050565b7f4172726179206c656e677468206d69736d617463680000000000000000000000600082015250565b6000613e19601583613032565b9150613e2482613de3565b602082019050919050565b60006020820190508181036000830152613e4881613e0c565b9050919050565b7f546f74616c20616d6f756e74206578636565647320696e697469616c2061697260008201527f64726f7020616c6c6f636174696f6e0000000000000000000000000000000000602082015250565b6000613eab602f83613032565b9150613eb682613e4f565b604082019050919050565b60006020820190508181036000830152613eda81613e9e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f3d602583613032565b9150613f4882613ee1565b604082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fcf602283613032565b9150613fda82613f73565b604082019050919050565b60006020820190508181036000830152613ffe81613fc2565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b600061403b601883613032565b915061404682614005565b602082019050919050565b6000602082019050818103600083015261406a8161402e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140cd602683613032565b91506140d882614071565b604082019050919050565b600060208201905081810360008301526140fc816140c0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061415f602483613032565b915061416a82614103565b604082019050919050565b6000602082019050818103600083015261418e81614152565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602283613032565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614283602983613032565b915061428e82614227565b604082019050919050565b600060208201905081810360008301526142b281614276565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142ef601383613032565b91506142fa826142b9565b602082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435f826130ed565b915061436a836130ed565b92508261437a57614379614325565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006143e1602183613032565b91506143ec82614385565b604082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614473602283613032565b915061447e82614417565b604082019050919050565b600060208201905081810360008301526144a281614466565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614505602583613032565b9150614510826144a9565b604082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614597602383613032565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614629602683613032565b9150614634826145cd565b604082019050919050565b600060208201905081810360008301526146588161461c565b9050919050565b60008151905061466e816131a8565b92915050565b60006020828403121561468a576146896130e3565b5b60006146988482850161465f565b91505092915050565b6000819050919050565b60006146c66146c16146bc846146a1565b613744565b6130ed565b9050919050565b6146d6816146ab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61471181613196565b82525050565b60006147238383614708565b60208301905092915050565b6000602082019050919050565b6000614747826146dc565b61475181856146e7565b935061475c836146f8565b8060005b8381101561478d5781516147748882614717565b975061477f8361472f565b925050600181019050614760565b5085935050505092915050565b600060a0820190506147af600083018861341a565b6147bc60208301876146cd565b81810360408301526147ce818661473c565b90506147dd6060830185613568565b6147ea608083018461341a565b9695505050505050565b600060c0820190506148096000830189613568565b614816602083018861341a565b61482360408301876146cd565b61483060608301866146cd565b61483d6080830185613568565b61484a60a083018461341a565b979650505050505050565b600081519050614864816130f7565b92915050565b600080600060608486031215614883576148826130e3565b5b600061489186828701614855565b93505060206148a286828701614855565b92505060406148b386828701614855565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148f3601d83613032565b91506148fe826148bd565b602082019050919050565b60006020820190508181036000830152614922816148e6565b9050919050565b600081905092915050565b50565b6000614944600083614929565b915061494f82614934565b600082019050919050565b600061496582614937565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006149cb603a83613032565b91506149d68261496f565b604082019050919050565b600060208201905081810360008301526149fa816149be565b905091905056fea26469706673582212203ae5d23dc39a66c63d51238ef3fcdb8a367552c97108833c6d0fd0e7e27a0f6f64736f6c634300081b0033

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

0000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000074275696c6441490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054275696c64000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x4BA12175E4bBA78944D44F545Ba8410A10C4B103
Arg [1] : _devWallet (address): 0xb9D8272a392918D78585A57cE3F6343EddaEbB7B
Arg [2] : name (string): BuildAI
Arg [3] : symbol (string): Build

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ba12175e4bba78944d44f545ba8410a10c4b103
Arg [1] : 000000000000000000000000b9d8272a392918d78585a57ce3f6343eddaebb7b
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [5] : 4275696c64414900000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 4275696c64000000000000000000000000000000000000000000000000000000


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.