ETH Price: $2,932.74 (-0.81%)

Contract

0x1e2E9147F646802C93d062e25Fe129A2Bf78fA12

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
76788362025-04-26 12:20:27273 days ago1745670027  Contract Creation0 ETH
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SweepHelperFeature

Compiler Version
v0.8.17+commit.8df45f5f

ZkSolc Version
v1.5.12

Optimization Enabled:
Yes with Mode 3

Other Settings:
default evmVersion
/// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

import "../../libs/LibAssetHelper.sol";
import "./ISweepHelperFeature.sol";
import "./IPancakeRouter.sol";
import "./IUniswapQuoter.sol";


contract SweepHelperFeature is ISweepHelperFeature, LibAssetHelper {

    address public immutable WETH;
    IPancakeRouter public immutable PancakeRouter;
    IUniswapQuoter public immutable UniswapQuoter;

    constructor(address weth, IPancakeRouter pancakeRouter, IUniswapQuoter uniswapQuoter) {
        WETH = weth;
        PancakeRouter = pancakeRouter;
        UniswapQuoter = uniswapQuoter;
    }

    function getSwpHelpInfos(
        address account,
        address operator,
        SwpHelpParam[] calldata params
    ) external override returns (SwpHelpInfo[] memory infos) {
        address[] memory path = new address[](2);

        infos = new SwpHelpInfo[](params.length);
        for (uint256 i; i < params.length; i++) {
            address erc20Token = params[i].erc20Token;

            infos[i].erc20Token = erc20Token;
            infos[i].balance = _erc20BalanceOf(erc20Token, account);
            infos[i].allowance = _erc20Allowance(erc20Token, account, operator);
            infos[i].decimals = _erc20Decimals(erc20Token);
            uint256 amountIn = 10 ** infos[i].decimals;

            SwpRateInfo[] memory rates = new SwpRateInfo[](params.length);
            for (uint256 j; j < params.length; j++) {
                address token = params[j].erc20Token;
                rates[j].token = token;
                if (
                    token == erc20Token ||
                    token == address(0) && erc20Token == WETH ||
                    token == WETH && erc20Token == address(0)
                ) {
                    rates[j].tokenOutAmount = amountIn;
                    continue;
                }

                address tokenA = erc20Token == address(0) ? WETH : erc20Token;
                address tokenB = token == address(0) ? WETH : token;
                if (address(PancakeRouter) != address(0)) {
                    path[0] = tokenA;
                    path[1] = tokenB;
                    rates[j].tokenOutAmount = getAmountsOut(amountIn, path);
                } else if (address(UniswapQuoter) != address(0)) {
                    rates[j].tokenOutAmount = quoteExactInputSingle(tokenA, tokenB, params[i].fee, amountIn);
                }
            }
            infos[i].rates = rates;
        }
        return infos;
    }

    function getSwpHelpInfosEx(
        address account,
        address[] calldata operators,
        SwpHelpParam[] calldata params
    ) external override returns (SwpHelpInfoEx[] memory infos) {
        address[] memory path = new address[](2);
        infos = new SwpHelpInfoEx[](params.length);
        for (uint256 i; i < params.length; i++) {
            address erc20Token = params[i].erc20Token;

            infos[i].erc20Token = erc20Token;
            infos[i].balance = _erc20BalanceOf(erc20Token, account);

            uint256[] memory allowances = new uint256[](operators.length);
            for (uint256 j; j < operators.length; j++) {
                allowances[j] = _erc20Allowance(erc20Token, account, operators[j]);
            }

            infos[i].allowances = allowances;
            infos[i].decimals = _erc20Decimals(erc20Token);
            uint256 amountIn = 10 ** infos[i].decimals;

            SwpRateInfo[] memory rates = new SwpRateInfo[](params.length);
            for (uint256 j; j < params.length; j++) {
                address token = params[j].erc20Token;
                rates[j].token = token;
                if (
                    token == erc20Token ||
                    token == address(0) && erc20Token == WETH ||
                    token == WETH && erc20Token == address(0)
                ) {
                    rates[j].tokenOutAmount = amountIn;
                    continue;
                }

                address tokenA = erc20Token == address(0) ? WETH : erc20Token;
                address tokenB = token == address(0) ? WETH : token;
                if (address(PancakeRouter) != address(0)) {
                    path[0] = tokenA;
                    path[1] = tokenB;
                    rates[j].tokenOutAmount = getAmountsOut(amountIn, path);
                } else if (address(UniswapQuoter) != address(0)) {
                    rates[j].tokenOutAmount = quoteExactInputSingle(tokenA, tokenB, params[i].fee, amountIn);
                }
            }
            infos[i].rates = rates;
        }
        return infos;
    }

    function getAssetsBalance(SwpAssetInfo[] calldata assets) external view override returns (uint256[] memory) {
        uint256[] memory infos = new uint256[](assets.length);
        for (uint256 i; i < assets.length; i++) {
            address account = assets[i].account;
            address token = assets[i].token;
            uint256 tokenId = assets[i].tokenId;
            uint8 itemType = assets[i].itemType;

            if (itemType == 0) {
                infos[i] = (_erc721OwnerOf(token, tokenId) == account) ? 1 : 0;
                continue;
            }

            if (itemType == 1) {
                infos[i] = _erc1155BalanceOf(token, account, tokenId);
                continue;
            }

            if (itemType == 2) {
                infos[i] = _erc20BalanceOf(token, account);
            }
        }
        return infos;
    }

    function getAmountsOut(uint256 amountIn, address[] memory path) internal view returns (uint256 amount) {
        try PancakeRouter.getAmountsOut(amountIn, path) returns (uint256[] memory _amounts) {
            amount = _amounts[1];
        } catch {
        }
        return amount;
    }

    function quoteExactInputSingle(
        address tokenIn,
        address tokenOut,
        uint24 fee,
        uint256 amountIn
    ) internal returns (uint256 amountOut) {
        try UniswapQuoter.quoteExactInputSingle(
            tokenIn,
            tokenOut,
            fee,
            amountIn,
            0
        ) returns (uint256 _amountOut) {
            amountOut = _amountOut;
        } catch {
        }
        return amountOut;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


abstract contract LibAssetHelper {

    address internal constant NATIVE_TOKEN_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
    uint256 internal constant ERC404_APPROVAL = 1 << 126;

    function _isApprovedForAll(
        address token,
        bool isERC721,
        address owner,
        address operator
    ) internal view returns(uint256 approval) {
        (approval, ) = _isApprovedForAllV2(token, isERC721, owner, operator);
    }

    function _isApprovedForAllV2(
        address token,
        bool isERC721,
        address owner,
        address operator
    ) internal view returns(uint256 approval, bool isERC404) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return (0, false);
        }

        bool isApprovedForAll;
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `isApprovedForAll(address,address)`
            mstore(ptr, 0xe985e9c500000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), owner)
            mstore(add(ptr, 0x24), operator)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                if gt(mload(ptr), 0) {
                    isApprovedForAll := 1
                }
            }
        }
        if (isApprovedForAll) {
            return (1, false);
        }
//        if (isERC721) {
//            if (_erc20Decimals(token) == 0) {
//                return (0, false);
//            }
//            (uint256 allowance, bool success) = _erc20AllowanceV2(token, owner, operator);
//            approval = allowance > ERC404_APPROVAL ? 1 : 0;
//            isERC404 = success;
//            return (approval, isERC404);
//        } else {
//            return (0, false);
//        }
        return (0, false);
    }

    function _erc721OwnerOf(
        address token, uint256 tokenId
    ) internal view returns (address owner) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `ownerOf(uint256)`
            mstore(ptr, 0x6352211e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), tokenId)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                if lt(mload(ptr), shl(160, 1)) {
                    owner := mload(ptr)
                }
            }
        }
        return owner;
    }

    function _erc721GetApproved(
        address token, uint256 tokenId
    ) internal view returns (address operator) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `getApproved(uint256)`
            mstore(ptr, 0x081812fc00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), tokenId)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                if lt(mload(ptr), shl(160, 1)) {
                    operator := mload(ptr)
                }
            }
        }
        return operator;
    }

    function _erc1155BalanceOf(
        address token,
        address account,
        uint256 tokenId
    ) internal view returns (uint256 _balance) {
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `balanceOf(address,uint256)`
            mstore(ptr, 0x00fdd58e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), account)
            mstore(add(ptr, 0x24), tokenId)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                _balance := mload(ptr)
            }
        }
        return _balance;
    }

    function _erc20BalanceOf(
        address token, address account
    ) internal view returns (uint256 _balance) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return account.balance;
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `balanceOf(address)`
            mstore(ptr, 0x70a0823100000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), account)

            if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
                _balance := mload(ptr)
            }
        }
        return _balance;
    }

    function _erc20Allowance(
        address token,
        address owner,
        address spender
    ) internal view returns (uint256 allowance) {
        (allowance, ) = _erc20AllowanceV2(token, owner, spender);
    }

    function _erc20AllowanceV2(
        address token,
        address owner,
        address spender
    ) internal view returns (uint256 allowance, bool callSuccess) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return (type(uint256).max, false);
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `allowance(address,address)`
            mstore(ptr, 0xdd62ed3e00000000000000000000000000000000000000000000000000000000)
            mstore(add(ptr, 0x4), owner)
            mstore(add(ptr, 0x24), spender)

            if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
                allowance := mload(ptr)
                callSuccess := 1
            }
        }
        return (allowance, callSuccess);
    }

    function _erc20Decimals(address token) internal view returns (uint8 decimals) {
        if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
            return 18;
        }
        assembly {
            let ptr := mload(0x40) // free memory pointer

            // selector for `decimals()`
            mstore(ptr, 0x313ce56700000000000000000000000000000000000000000000000000000000)

            if staticcall(gas(), token, ptr, 0x4, ptr, 0x20) {
                if lt(mload(ptr), 48) {
                    decimals := mload(ptr)
                }
            }
        }
        return decimals;
    }
}

/// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


interface ISweepHelperFeature {

    struct SwpHelpParam {
        address erc20Token;
        uint256 amountIn;
        uint24 fee;
    }

    struct SwpRateInfo {
        address token;
        uint256 tokenOutAmount;
    }

    struct SwpHelpInfo {
        address erc20Token;
        uint256 balance;
        uint256 allowance;
        uint8 decimals;
        SwpRateInfo[] rates;
    }

    function getSwpHelpInfos(
        address account,
        address operator,
        SwpHelpParam[] calldata params
    ) external returns (SwpHelpInfo[] memory infos);

    struct SwpHelpInfoEx {
        address erc20Token;
        uint256 balance;
        uint8 decimals;
        uint256[] allowances;
        SwpRateInfo[] rates;
    }

    function getSwpHelpInfosEx(
        address account,
        address[] calldata operators,
        SwpHelpParam[] calldata params
    ) external returns (SwpHelpInfoEx[] memory infos);

    struct SwpAssetInfo {
        address account;
        uint8 itemType;
        address token;
        uint256 tokenId;
    }

    function getAssetsBalance(SwpAssetInfo[] calldata assets) external view returns (uint256[] memory);
}

/// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


interface IUniswapQuoter {

    function quoteExactInputSingle(
        address tokenIn,
        address tokenOut,
        uint24 fee,
        uint256 amountIn,
        uint160 sqrtPriceLimitX96
    ) external returns (uint256 amountOut);

    function quoteExactOutputSingle(
        address tokenIn,
        address tokenOut,
        uint24 fee,
        uint256 amountOut,
        uint160 sqrtPriceLimitX96
    ) external returns (uint256 amountIn);
}

/// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

interface IPancakeRouter {

    function factory() external pure returns (address);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "mode": "3"
  },
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "detectMissingLibraries": false,
  "forceEVMLA": false,
  "enableEraVMExtensions": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"weth","type":"address"},{"internalType":"contract IPancakeRouter","name":"pancakeRouter","type":"address"},{"internalType":"contract IUniswapQuoter","name":"uniswapQuoter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PancakeRouter","outputs":[{"internalType":"contract IPancakeRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapQuoter","outputs":[{"internalType":"contract IUniswapQuoter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint8","name":"itemType","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpAssetInfo[]","name":"assets","type":"tuple[]"}],"name":"getAssetsBalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"}],"internalType":"struct ISweepHelperFeature.SwpHelpParam[]","name":"params","type":"tuple[]"}],"name":"getSwpHelpInfos","outputs":[{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenOutAmount","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpRateInfo[]","name":"rates","type":"tuple[]"}],"internalType":"struct ISweepHelperFeature.SwpHelpInfo[]","name":"infos","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"operators","type":"address[]"},{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"}],"internalType":"struct ISweepHelperFeature.SwpHelpParam[]","name":"params","type":"tuple[]"}],"name":"getSwpHelpInfosEx","outputs":[{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256[]","name":"allowances","type":"uint256[]"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenOutAmount","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpRateInfo[]","name":"rates","type":"tuple[]"}],"internalType":"struct ISweepHelperFeature.SwpHelpInfoEx[]","name":"infos","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"}]

9c4d535b00000000000000000000000000000000000000000000000000000000000000000100027be1a3364e5b7bb6209ca7299c124e1fec386f2f39057cdc5099cce04c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003439153eb7af838ad19d56e1571fbd09333c280900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x0002000000000002002800000000000200000060031002700001000000010355000002500030019d00000250033001970000000100200190000000380000c13d0000008002000039000000400020043f000000040030008c000001110000413d000000000231034f000000000401043b000000e004400270000002550040009c000000710000213d000002590040009c000000820000613d0000025a0040009c0000008d0000613d0000025b0040009c000001110000c13d000000240030008c000001110000413d0000000004000416000000000004004b000001110000c13d0000000404100370000000000404043b0000025e0040009c000001110000213d0000002305400039000000000035004b000001110000813d0000000405400039000000000151034f000000000601043b0000025e0060009c000001110000213d001d00240040003d00000007016002100000001d01100029000000000031004b000001110000213d00000005036002100000003f013000390000025f01100197000002730010009c000001760000a13d0000027701000041000000000010043f0000004101000039000000040010043f00000266010000410000093c000104300000000002000416000000000002004b000001110000c13d0000001f023000390000025102200197000000e002200039000000400020043f0000001f0430018f0000025205300198000000e002500039000000490000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b000000450000c13d000000000004004b000000560000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000001110000413d000000e00100043d000002530010009c000001110000213d000001000200043d000002530020009c000001110000213d000001200300043d000002530030009c000001110000213d000000800010043f000000a00020043f000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e00030044300000100001004430000000301000039000001200010044300000254010000410000093b0001042e000002560040009c000000f30000613d000002570040009c000001040000613d000002580040009c000001110000c13d0000000001000416000000000001004b000001110000c13d0000000001000412002000000001001d001f00200000003d000080050100003900000044030000390000000004000415000000200440008a000000fd0000013d0000000001000416000000000001004b000001110000c13d0000000001000412002800000001001d002700400000003d000080050100003900000044030000390000000004000415000000280440008a000000fd0000013d000000640030008c000001110000413d0000000002000416000000000002004b000001110000c13d0000000402100370000000000202043b000a00000002001d000002530020009c000001110000213d0000002402100370000000000202043b0000025e0020009c000001110000213d0000002304200039000000000034004b000001110000813d0000000404200039000000000441034f000000000404043b001000000004001d0000025e0040009c000001110000213d000000240420003900000010020000290000000502200210000f00000004001d000500000002001d0000000002420019000000000032004b000001110000213d0000004402100370000000000202043b0000025e0020009c000001110000213d0000002304200039000000000034004b000001110000813d0000000404200039000000000141034f000000000101043b001400000001001d0000025e0010009c000001110000213d001300240020003d000000140100002900000060011000c90000001301100029000000000031004b000001110000213d0000000001000415000100000001001d000000400100043d001100000001001d000002760010009c000000320000813d00000011030000290000006001300039000000400010043f0000000202000039000000000323043600000000020000310000000102200367000d00000003001d000000002402043c0000000003430436000000000013004b000000cd0000c13d000000140100002900000005091002100000003f019000390004025f0010019b000000400800043d0000000401800029000000000081004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f0000001401000029000000000a180436000000000001004b001700000008001d0000058a0000c13d0000000001000415000000010110006900000000010000020000002002000039000000400100043d000000000321043600000000020804330000000000230435000000400410003900000005032002100000000003430019000000000002004b000008d30000c13d0000000002130049000001960000013d0000000001000416000000000001004b000001110000c13d0000000001000412002400000001001d002300000000003d000080050100003900000044030000390000000004000415000000240440008a00000005044002100000025c02000041093a09170000040f0000025301100197000000800010043f0000025d010000410000093b0001042e000000640030008c000001110000413d0000000004000416000000000004004b000001110000c13d0000000404100370000000000404043b000002530040009c000001110000213d0000002404100370000000000404043b000002530040009c000001130000a13d00000000010000190000093c000104300000004404100370000000000404043b0000025e0040009c000001110000213d0000002305400039000000000035004b000001110000813d0000000405400039000000000151034f000000000101043b001700000001001d0000025e0010009c000001110000213d001600240040003d000000170100002900000060011000c90000001601100029000000000031004b000001110000213d000000e00c0000390000004000c0043f0000000201000039000000800010043f000000a001000039000000002302043c0000000001310436000000e00010008c0000012b0000c13d000000170100002900000005081002100000003f018000390000025f01100197000d00000001001d000002600010009c000000320000213d0000000d03000029000000e001300039000000400010043f0000001702000029000000e00020043f000000000002004b000002850000c13d00000020020000390000000002210436000000e00300043d0000000000320435000000400410003900000005023002100000000002420019000000000003004b000001950000613d000000a00500003900000000060000190000014c0000013d0000000106600039000000000036004b000001950000813d0000000007120049000000400770008a0000000004740436000000200cc0003900000000070c043300000000980704340000025308800197000000000882043600000000090904330000000000980435000000400870003900000000080804330000004009200039000000000089043500000060087000390000000008080433000000ff0880018f000000600920003900000000008904350000008007700039000000000707043300000080082000390000000000580435000000a00920003900000000080704330000000000890435000000c002200039000000000008004b000001490000613d00000000090000190000002007700039000000000a07043300000000ba0a0434000002530aa00197000000000aa20436000000000b0b04330000000000ba043500000040022000390000000109900039000000000089004b0000016a0000413d000001490000013d0000008001100039000000400010043f000000800060043f0000001f0130018f000000000003004b000001820000613d000000a003300039000000a004000039000000002502043c0000000004540436000000000034004b0000017e0000c13d000000000001004b000000000006004b0000019e0000c13d000000400100043d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b000001950000613d000000800400003900000000050000190000002004400039000000000604043300000000026204360000000105500039000000000035004b0000018f0000413d0000000002120049000002500020009c00000250020080410000006002200210000002500010009c00000250010080410000004001100210000000000112019f0000093b0001042e0000000005000019001c00000006001d000001a60000013d000000800200043d0000001e05000029000000000052004b0000027e0000213d000008cc0000013d00000007015002100000001d011000290000000102100367000000000702043b000002530070009c000001110000213d00000040011000390000000102100367000000000202043b000002530020009c000001110000213d000000200310008a000000010330036700000020011000390000000101100367000000000101043b000000000303043b000000ff0030008c000001110000213d000000000003004b0000020a0000613d000000010030008c000001d50000613d000000020030008c000002810000c13d001e00000005001d0000025301200197000002620010009c000001c50000613d000000000001004b000002490000c13d0000026301000041000000000010044300000004007004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001c060000290000001e050000290000027b0000013d001e00000005001d000000400400043d001b00000004001d000000240340003900000000001304350000027401000041000000000014043500000004014000390000000000710435000002500040009c0000025001000041000000000104401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000268011001c7093a09350000040f0000001b0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000001f70000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000001f30000c13d0000001f05500190000002040000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c06000029000001a10000613d0000000001090433000001a10000013d001b00000007001d001e00000005001d000000400400043d001a00000004001d0000027503000041000000000034043500000004034000390000000000130435000002500040009c0000025001000041000000000104401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000266011001c7093a09350000040f0000001a0900002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034900190000022b0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002270000c13d0000001f05500190000002380000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c060000290000001b03000029000002410000613d0000000002090433000002530020009c0000000001000019000000000102a019000000800200043d0000001e05000029000000000052004b000008cc0000a13d000000000031004b000000000100003900000001010060390000027e0000013d000000400300043d001b00000003001d0000026501000041000000000013043500000004013000390000000000710435000002500030009c0000025001000041000000000103401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000266011001c7093a09350000040f0000001b0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000002680000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002640000c13d0000001f05500190000002750000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c060000290000001e050000290000027b0000613d0000000001090433000000800200043d000000000052004b000008cc0000a13d0000000502500210000000a00220003900000000001204350000000105500039000000000065004b000001a60000413d000001850000013d000002610030009c000000320000213d00000060020000390000000003000019000000a005100039000000400050043f000000800510003900000000002504350000006005100039000000000005043500000040051000390000000000050435000000200510003900000000000504350000000000010435000001000530003900000000001504350000002003300039000000000083004b0000029d0000813d000000400100043d000002720010009c000002890000a13d000000320000013d000c00640040003d0000000002000019000e00000008001d001200000002001d00000060022000c900000016012000290000000101100367000000000101043b001a00000001001d000002530010009c000001110000213d001e00000002001d000000e00100043d000000120010006c000008cc0000a13d000000120100002900000005011002100000010001100039001000000001001d00000000010104330000001a02000029000000000021043500000004010000390000000101100367000000000101043b0000025302200197000002620020009c001400000002001d000002bc0000613d000000000002004b000002cc0000c13d0000026302000041000000000020044300000004001004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b000000e00c0000390000000e08000029000002ff0000013d000000400300043d001d00000003001d0000026502000041000000000023043500000004023000390000000000120435000002500030009c0000025001000041000000000103401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000266011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000002ec0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002e80000c13d0000001f05500190000002f90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000002ff0000613d0000000001090433000000e00200043d000000120020006c000008cc0000a13d00000010020000290000000002020433000000200220003900000000001204350000001402000029000000000002004b000000010100008a000003460000613d000002620020009c000003460000613d00000001010003670000000402100370000000000202043b0000002401100370000000000101043b000000400400043d001d00000004001d000000240340003900000000001304350000026701000041000000000014043500000004014000390000000000210435000002500040009c0000025001000041000000000104401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000268011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000003330000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b0000032f0000c13d0000001f05500190000003400000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000003460000613d0000000001090433000000e00200043d000000120020006c000008cc0000a13d0000001002000029000000000202043300000040022000390000000000120435000000140000006b0000001201000039000003880000613d0000001401000029000002620010009c0000001201000039000003880000613d000000400200043d001d00000002001d00000269010000410000000000120435000002500020009c0000025001000041000000000102401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f0000026a011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000003720000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b0000036e0000c13d0000001f055001900000037f0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000003880000613d00000000020904330000002f0020008c0000000001000019000000000102a019000000e00200043d000000120020006c000008cc0000a13d0000001002000029000000000202043300000060022000390000000000120435000000e00100043d000000120010006c000008cc0000a13d0000001001000029000000000101043300000060011000390000000001010433000000ff0110018f0000004d0010008c000009100000213d000000000001004b0000000104000039000003a40000613d0000000a02000039000000010010019000000000032200a9000000010200603900000000044200a9000000010110027200000000020300190000039d0000c13d001500000004001d000000400200043d0000000d01200029001c00000002001d000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f00000017010000290000001c020000290000000001120436001d00000001001d0000000001000019000000400200043d0000026b0020009c000000320000213d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000001d0310002900000000002304350000002001100039000000000081004b000003b50000413d0000001e02000029000f000c0020002d000000140000006b00000000010000390000000101006039001100000001001d000000000900001900000060019000c900000016011000290000000101100367000000000301043b000002530030009c000001110000213d0000001c010000290000000001010433000000000091004b000008cc0000a13d00000005019002100000001d01100029001b00000001001d000000000101043300000000003104350000001a0130014f0000025300100198000004f40000613d000000000003004b001900000009001d001e00000003001d000003e40000613d0000000002000415000000220220008a0000000502200210002200000000003d000003fd0000013d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001a0110014f0000000002000415000000210220008a00000005022002100000025300100198002100000000003d002100010000603d000000e00c0000390000001909000029000004f40000613d001800000002001d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000000000131013f0000025300100198000004280000613d00000018010000290000000501100270000000000100003f000000140000006b0000001a01000029000004300000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000004300000013d00000018010000290000000501100270000000110100002f000000140000006b0000001a01000029000000e00c0000390000001909000029000004f40000613d001800000001001d000000000003004b000004420000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000301043b001e00000003001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000253001001980000001e03000029000004fa0000613d000000800100043d000000000001004b000008cc0000613d00000018020000290000025302200197000000a00020043f000000010010008c000008cc0000613d0000025301300197000000c00010043f000000400300043d0000002401300039000000400200003900000000002104350000026d0100004100000000001304350000000401300039000000150200002900000000002104350000004402300039000000800100043d00000000001204350000006405300039000000000001004b001e00000003001d000004790000613d0000000002000019000000800300003900000020033000390000000004030433000002530440019700000000054504360000000102200039000000000012004b000004720000413d001800000005001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d0000001e030000290000001802300069000002500020009c00000250020080410000006002200210000002500030009c00000250030080410000004003300210000000000232019f000000000301043b0000000001000414000002500010009c0000025001008041000000c001100210000000000121019f0000025302300197093a09350000040f00000001002001900000000002000019000000e00c0000390000001909000029000005710000613d0000006002100270000002500220019700000252042001980000001e0a00002900000000034a0019000004ab0000613d000000000501034f00000000060a0019000000005705043c0000000006760436000000000036004b000004a70000c13d0000001f05200190000004b80000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000001f0120003900000251031001970000000001a30019000000000031004b000000000300003900000001030040390000025e0010009c000000320000213d0000000100300190000000320000c13d000000400010043f000000200020008c000001110000413d00000000040a04330000025e0040009c000001110000213d0000000003a200190000000002a400190000001f04200039000000000034004b00000000050000190000026e050080410000026e044001970000026e06300197000000000764013f000000000064004b00000000040000190000026e040040410000026e0070009c000000000405c019000000000004004b000001110000c13d00000000240204340000025e0040009c000000320000213d00000005054002100000003f065000390000025f0660019700000000061600190000025e0060009c000000320000213d000000400060043f00000000004104350000000005250019000000000035004b000001110000213d000000000052004b000004ef0000813d0000000003010019000000200330003900000000240204340000000000430435000000000052004b000004e90000413d0000000004010433000000020040008c000008cc0000413d00000040011000390000000002010433000005710000013d0000001c010000290000000001010433000000000091004b0000001502000029000005750000213d000008cc0000013d0000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000025300100198000000e00c00003900000019090000290000001e04000029000005790000613d0000000f010000290000000101100367000000000101043b0000026f0010009c000001110000213d000000400500043d00000064025000390000001503000029000000000032043500000044025000390000000000120435000002530140019700000024025000390000000000120435000002700100004100000000001504350000001801000029000002530110019700000004025000390000000000120435001300000005001d000000840150003900000000000104350000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000201043b0000001301000029000002500010009c000002500100804100000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000271011001c70000025302200197093a09300000040f00000060031002700000025003300197000000200030008c000000200400003900000000040340190000002006400190000000130a00002900000000056a0019000005510000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000054d0000c13d0000001f07400190000000e00c0000390000055f0000613d000000000161034f0000000306700210000000000705043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000150435000000010020019000000000020000190000001909000029000005710000613d0000001f01400039000000600210018f0000000001a20019000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000200030008c000001110000413d00000000020a04330000001c010000290000000001010433000000000091004b000008cc0000a13d0000001b010000290000000001010433000000200110003900000000002104350000000109900039000000170090006c000003c90000413d000000e00100043d000000120010006c000008cc0000a13d0000001001000029000000000101043300000080011000390000001c02000029000000000021043500000012020000290000000102200039000000170020006c000002a00000413d000000400100043d0000013d0000013d00000060010000390000000002000019000000400300043d000002720030009c000000320000213d000000a004300039000000400040043f0000008004300039000000000014043500000060043000390000000000140435000000400430003900000000000404350000002004300039000000000004043500000000000304350000000004a2001900000000003404350000002002200039000000000092004b0000058c0000413d00000005010000290002001f001001930000001102000029000c00400020003d0000003f011000390003025f0010019b0000000002000019000900000009001d00160000000a001d000b00000002001d00000060012000c90000001301100029001500000001001d0000000101100367000000000101043b001d00000001001d000002530010009c000001110000213d00000000010804330000000b0010006c000008cc0000a13d0000000b0100002900000005011002100000000001a10019000700000001001d00000000010104330000001d0200002900000000002104350000025301200197000002620010009c001800000001001d000005c10000613d000000000001004b000005d30000c13d000002630100004100000000001004430000000a0100002900000004001004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000017080000290000000909000029000000160a000029000006080000013d000000400300043d001e00000003001d0000026501000041000000000013043500000004013000390000000a020000290000000000210435000002500030009c0000025001000041000000000103401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000266011001c70000001d02000029093a09350000040f0000001e0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b0019000005f40000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000005f00000c13d0000001f055001900000001708000029000006020000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000000909000029000000160a000029000006080000613d00000000010b043300000000020804330000000b0020006c000008cc0000a13d0000000702000029000000000202043300000020022000390000000000120435000000400600043d0000000301600029000000000061004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000100100002900000000071604360000000101000367000000050000006b000006250000613d000000050270002900000000031003680000000004070019000000003503043c0000000004540436000000000024004b000006210000c13d000000020000006b000000100000006b000006800000613d0000000004000019001a00000006001d001900000007001d00000005054002100000000f02500029000000000221034f000000000302043b000002530030009c000001110000213d0000001802000029000000000002004b000006730000613d000002620020009c000000010200008a000006780000613d001c00000005001d001e00000004001d000000400400043d001b00000004001d000000240140003900000000003104350000026701000041000000000014043500000004014000390000000a020000290000000000210435000002500040009c0000025001000041000000000104401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000268011001c70000001d02000029093a09350000040f0000001b0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b00190000065c0000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000006580000c13d0000001f05500190000006690000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000101000367000000010020019000000017080000290000000909000029000000160a0000290000001a060000290000001907000029000006750000613d00000000020b0433000006760000013d000000010200008a000006780000013d00000000020000190000001e040000290000001c050000290000000003060433000000000043004b000008cc0000a13d000000000375001900000000002304350000000104400039000000100040006c0000062b0000413d00000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000060011000390000000000610435000000180000006b0000001201000039000006c30000613d0000001801000029000002620010009c0000001201000039000006c30000613d000000400200043d001e00000002001d00000269010000410000000000120435000002500020009c0000025001000041000000000102401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f0000026a011001c70000001d02000029093a09350000040f0000001e0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b0019000006ac0000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000006a80000c13d0000001f05500190000006b90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000100200190000000000100001900000017080000290000000909000029000000160a000029000006c30000613d00000000020b04330000002f0020008c0000000001000019000000000102a01900000000020804330000000b0020006c000008cc0000a13d000000070200002900000000020204330000004002200039000000000012043500000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000040011000390000000001010433000000ff0110018f0000004e0010008c000009100000813d000000000001004b0000000104000039000006df0000613d0000000a02000039000000010010019000000000032200a9000000010200603900000000044200a900000001011002720000000002030019000006d80000c13d001200000004001d000000400200043d0000000401200029001b00000002001d000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f00000014010000290000001b020000290000000001120436001c00000001001d0000000001000019000000400200043d0000026b0020009c000000320000213d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000001c0310002900000000002304350000002001100039000000000091004b000006f00000413d0000001501000029000600400010003d000000180000006b00000000010000390000000101006039000800000001001d000000000b0000190000006001b000c900000013011000290000000101100367000000000301043b000002530030009c000001110000213d0000001b0100002900000000010104330000000000b1004b000008cc0000a13d0000000501b002100000001c01100029001a00000001001d000000000101043300000000003104350000001d0130014f0000025300100198000008350000613d000000000003004b00190000000b001d001e00000003001d0000071f0000613d0000000002000415000000260220008a0000000502200210002600000000003d000007390000013d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001d0110014f0000000002000415000000250220008a00000005022002100000025300100198002500000000003d002500010000603d0000001708000029000000160a000029000000190b000029000008350000613d001500000002001d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000000000131013f0000025300100198000007640000613d00000015010000290000000501100270000000000100003f000000180000006b0000001d010000290000076d0000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e030000290000076d0000013d00000015010000290000000501100270000000080100002f000000180000006b0000001d010000290000001708000029000000160a000029000000190b000029000008350000613d001500000001001d000000000003004b0000077f0000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000301043b001e00000003001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b000002530010019800000011010000290000001e040000290000083b0000613d0000000001010433000000000001004b000008cc0000613d000000150200002900000253022001970000000d030000290000000000230435000000010010008c000008cc0000613d00000253014001970000000c020000290000000000120435000000400400043d0000002401400039000000400200003900000000002104350000026d01000041000000000014043500000004014000390000001202000029000000000021043500000011030000290000000001030433000000440240003900000000001204350000006405400039000000000001004b001e00000004001d000007b90000613d000000000200001900000020033000390000000004030433000002530440019700000000054504360000000102200039000000000012004b000007b20000413d001500000005001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d0000001e030000290000001502300069000002500020009c00000250020080410000006002200210000002500030009c00000250030080410000004003300210000000000232019f000000000301043b0000000001000414000002500010009c0000025001008041000000c001100210000000000121019f0000025302300197093a09350000040f000000010020019000000000020000190000001708000029000000160a000029000000190b000029000008b40000613d0000006002100270000002500220019700000252042001980000001e0c00002900000000034c0019000007ec0000613d000000000501034f00000000060c0019000000005705043c0000000006760436000000000036004b000007e80000c13d0000001f05200190000007f90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000001f0120003900000251031001970000000001c30019000000000031004b000000000300003900000001030040390000025e0010009c000000320000213d0000000100300190000000320000c13d000000400010043f000000200020008c000001110000413d00000000040c04330000025e0040009c000001110000213d0000000003c200190000000002c400190000001f04200039000000000034004b00000000050000190000026e050080410000026e044001970000026e06300197000000000764013f000000000064004b00000000040000190000026e040040410000026e0070009c000000000405c019000000000004004b000001110000c13d00000000240204340000025e0040009c000000320000213d00000005054002100000003f065000390000025f0660019700000000061600190000025e0060009c000000320000213d000000400060043f00000000004104350000000005250019000000000035004b000001110000213d000000000052004b000008300000813d0000000003010019000000200330003900000000240204340000000000430435000000000052004b0000082a0000413d0000000004010433000000020040008c000008cc0000413d00000040011000390000000002010433000008b40000013d0000001b0100002900000000010104330000000000b1004b0000001202000029000008b80000213d000008cc0000013d0000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000253001001980000001708000029000000160a000029000000190b0000290000001e04000029000008bc0000613d00000006010000290000000101100367000000000101043b0000026f0010009c000001110000213d000000400500043d00000064025000390000001203000029000000000032043500000044025000390000000000120435000002530140019700000024025000390000000000120435000002700100004100000000001504350000001501000029000002530110019700000004025000390000000000120435000e00000005001d000000840150003900000000000104350000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000201043b0000000e01000029000002500010009c000002500100804100000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000271011001c70000025302200197093a09300000040f00000060031002700000025003300197000000200030008c0000002004000039000000000403401900000020064001900000000e0c00002900000000056c0019000008930000613d000000000701034f00000000080c0019000000007907043c0000000008980436000000000058004b0000088f0000c13d0000001f074001900000001708000029000000160a000029000000190b000029000008a30000613d000000000161034f0000000306700210000000000705043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f000000000015043500000001002001900000000002000019000008b40000613d0000001f01400039000000600210018f0000000001c20019000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000200030008c000001110000413d00000000020c04330000001b0100002900000000010104330000000000b1004b000008cc0000a13d0000001a01000029000000000101043300000020011000390000000000210435000000010bb000390000001400b0006c000007040000413d00000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000080011000390000001b0200002900000000002104350000000b020000290000000102200039000000140020006c000005a80000413d000000e40000013d0000027701000041000000000010043f0000003201000039000000040010043f00000266010000410000093c00010430000000000001042f000000a0050000390000000006000019000000170d000029000008da0000013d0000000106600039000000000026004b000000f10000813d0000000007130049000000400770008a0000000004740436000000200dd0003900000000070d04330000000098070434000002530880019700000000088304360000000009090433000000000098043500000040087000390000000008080433000000ff0880018f000000400930003900000000008904350000006008700039000000000908043300000060083000390000000000580435000000a008300039000000000a0904330000000000a80435000000c00830003900000000000a004b000008fa0000613d000000000b0000190000002009900039000000000c0904330000000008c80436000000010bb000390000000000ab004b000008f40000413d0000008007700039000000000707043300000000093800490000008003300039000000000093043500000000090704330000000003980436000000000009004b000008d70000613d00000000080000190000002007700039000000000a07043300000000ba0a0434000002530aa00197000000000aa30436000000000b0b04330000000000ba043500000040033000390000000108800039000000000098004b000009040000413d000008d70000013d0000027701000041000000000010043f0000001101000039000000040010043f00000266010000410000093c00010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b0000091a0000413d000002500030009c000002500300804100000060013002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000278011001c70000000002050019093a09350000040f00000001002001900000092f0000613d000000000101043b000000000001042d000000000001042f00000933002104210000000102000039000000000001042d0000000002000019000000000001042d00000938002104230000000102000039000000000001042d0000000002000019000000000001042d0000093a000004320000093b0001042e0000093c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000ad5c464700000000000000000000000000000000000000000000000000000000ad5c464800000000000000000000000000000000000000000000000000000000ca61336b00000000000000000000000000000000000000000000000000000000eda0228f0000000000000000000000000000000000000000000000000000000019e5bd980000000000000000000000000000000000000000000000000000000041ea8f92000000000000000000000000000000000000000000000000000000009c645490310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000000000000000000000000000fffffffffffffe7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf0200000200000000000000000000000000000044000000000000000000000000d06ca61f0000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffff7729d430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f000000000000000000000000000000000000000000000000ffffffffffffff7f00fdd58e000000000000000000000000000000000000000000000000000000006352211e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa04e487b710000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000151420f7d60dd9eaf2312cfd4e044877df6607c5d54bb7195278acf4de40ea1e

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

0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c280900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : weth (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809
Arg [1] : pancakeRouter (address): 0x0000000000000000000000000000000000000000
Arg [2] : uniswapQuoter (address): 0x0000000000000000000000000000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.