ETH Price: $2,863.88 (-2.63%)

Contract

0x065d37CFF1308117F46E31bB617C370Bf2bcEC3A

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Batch Transfer T...4253058102026-01-26 4:55:1913 secs ago1769403319IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001760.02
Batch Transfer T...4253057302026-01-26 4:54:5933 secs ago1769403299IN
0x065d37CF...Bf2bcEC3A
0 ETH0.00000210.02
Batch Transfer T...4253056502026-01-26 4:54:3953 secs ago1769403279IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001420.02
Batch Transfer T...4253055702026-01-26 4:54:191 min ago1769403259IN
0x065d37CF...Bf2bcEC3A
0 ETH0.00000210.02
Batch Transfer T...4253054902026-01-26 4:53:591 min ago1769403239IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001660.02
Batch Transfer T...4253054102026-01-26 4:53:391 min ago1769403219IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001770.020086
Batch Transfer T...4253053302026-01-26 4:53:192 mins ago1769403199IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000002110.020056
Batch Transfer T...4253052512026-01-26 4:52:592 mins ago1769403179IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001760.02
Batch Transfer T...4253051712026-01-26 4:52:392 mins ago1769403159IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001420.02
Batch Transfer T...4253050912026-01-26 4:52:193 mins ago1769403139IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001760.02
Batch Transfer T...4253050112026-01-26 4:51:593 mins ago1769403119IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000002230.02
Batch Transfer T...4253049232026-01-26 4:51:393 mins ago1769403099IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001770.020072
Batch Transfer T...4253048442026-01-26 4:51:194 mins ago1769403079IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001990.02
Batch Transfer T...4253047642026-01-26 4:50:594 mins ago1769403059IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001090.02
Batch Transfer T...4253046842026-01-26 4:50:394 mins ago1769403039IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001420.02
Batch Transfer T...4253046042026-01-26 4:50:195 mins ago1769403019IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001090.02
Batch Transfer T...4253045242026-01-26 4:49:595 mins ago1769402999IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000002770.02
Batch Transfer T...4253042852026-01-26 4:48:596 mins ago1769402939IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001760.02
Batch Transfer T...4253039662026-01-26 4:47:397 mins ago1769402859IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001430.02
Batch Transfer T...4253038862026-01-26 4:47:198 mins ago1769402839IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001430.02
Batch Transfer T...4253038062026-01-26 4:46:598 mins ago1769402819IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001430.02
Batch Transfer T...4253037262026-01-26 4:46:398 mins ago1769402799IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001090.02
Batch Transfer T...4253035662026-01-26 4:45:599 mins ago1769402759IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001990.020066
Batch Transfer T...4253034872026-01-26 4:45:399 mins ago1769402739IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001760.02
Batch Transfer T...4253032412026-01-26 4:44:3910 mins ago1769402679IN
0x065d37CF...Bf2bcEC3A
0 ETH0.000001430.02
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xf0fA83C5...3E4EEeb7E
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
U

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: NC.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./IERC20.sol";
import "./PancakeRouter.sol";
import "./AAInterface.sol";
contract U {

    address public adminAddr;

    event getBNB(address invitation,address indexed from, uint256 indexed order, uint256 indexed value,string p1,string p2,string p3);

    event receiveTokenAndBnb(address invitation,address from,address indexed to, address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event getTokenAndBnb(address invitation,address from,address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event getTokenAndBnbAndRc(uint256 rcAmount,address from,address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event setBNB(address invitation,address from,address indexed to, uint256 value, uint256 indexed order,string p1,string p2,string p3);

    event setToken(address invitation,address from,address indexed tokenAddress,address indexed to, uint256 value, uint256 indexed order,string p1,string p2,string p3);

    event receiveTokenForTokenAndBnb(address invitation,address from,address indexed to, address inToken,address toToken,uint256 indexed tokenAmount,uint256 bnbValue,string order);

    event receiveTokenForTokenAndBnbAndRc(uint256 rcAmount,address from,address indexed to, address inToken,address toToken,uint256 indexed tokenAmount,uint256 bnbValue,string order);

    event TokensStaked(
        address indexed user,
        address indexed npcToken,
        uint256 npcAmount,
        address indexed ncToken,
        uint256 ncAmount,
        address npcReceiver,
        address ncReceiver,
        uint256 order,
        address invitation
    );

   constructor() {
        adminAddr = msg.sender;
    }


    modifier onlyAdmin() {
        require(msg.sender == adminAddr, "Not admin");
        _;
    }

    function changeAdmin(address newAdmin) public onlyAdmin {
        adminAddr = newAdmin;
    }

    function stT(address payable toAddr, uint256 value, uint256 order, address invitation, string memory p1, string memory p2, string memory p3) public payable onlyAdmin returns (bool) {
        toAddr.transfer(value);
        emit setBNB(invitation, msg.sender, toAddr, value, order, p1, p2, p3);
        return true;
    }

    function batchTransferBNB(
        address payable[] memory recipients, 
        uint256[] memory amounts,
        uint256 order,
        address invitation,
        string memory p1,
        string memory p2,
        string memory p3
        ) public onlyAdmin {
            require(recipients.length == amounts.length, "Array length mismatch");
            for(uint i=0; i<recipients.length; i++){
                recipients[i].transfer(amounts[i]);
                emit setBNB(invitation, msg.sender, recipients[i], amounts[i], order, p1, p2, p3);
            }
    }

    function stTK(address token, address to, uint value,uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public returns (bool){
        require(msg.sender == adminAddr);
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));

        require(success);
        emit setToken(invitation,msg.sender,token,to,value,order,p1,p2,p3);
        return (success && (data.length == 0 || abi.decode(data, (bool))));

    }

    function batchTransferTokens(
        address token,
        address[] memory recipients,
        uint256[] memory amounts,
        uint256 order,
        address invitation,
        string memory p1,
        string memory p2,
        string memory p3
        ) public onlyAdmin {
            require(recipients.length == amounts.length, "Array length mismatch");
            
            for(uint i=0; i<recipients.length; i++){
                (bool success,) = token.call(abi.encodeWithSelector(0xa9059cbb, recipients[i], amounts[i]));
                require(success);
                emit setToken(invitation, msg.sender, token, recipients[i], amounts[i], order, p1, p2, p3);
            }
     }

    function batchTransferMultiTokens(
        address[] calldata tokens,
        address[] calldata recipients,
        uint256[][] calldata amounts,
        uint256 order,
        address invitation
    ) external onlyAdmin {
        require(tokens.length > 0, "No tokens");
        require(recipients.length > 0, "No recipients");
        
        for (uint256 i = 0; i < tokens.length; i++) {
            require(amounts[i].length == recipients.length, "Amounts mismatch");
            
            for (uint256 j = 0; j < recipients.length; j++) {
                uint256 amount = amounts[i][j];
                if (amount > 0) {
                    bool success = IERC20(tokens[i]).transfer(recipients[j], amount);
                    require(success, "Transfer failed");
                    
                    emit setToken(
                        invitation,
                        msg.sender,
                        tokens[i],
                        recipients[j],
                        amount,
                        order,
                        "", "", "" 
                    );
                }
            }
        }
    }
    
    function stakeDualTokens(
        address npcToken,
        uint256 npcAmount,
        address npcReceiver,
        address ncToken,
        uint256 ncAmount,
        address ncReceiver,
        uint256 order,
        address invitation
    ) external {
        require(npcAmount > 0 || ncAmount > 0, "No tokens to stake");
        
      
        if (npcAmount > 0) {
            require(npcToken != address(0), "Invalid NPC token");
            require(npcReceiver != address(0), "Invalid NPC receiver");
            require(IERC20(npcToken).allowance(msg.sender, address(this)) >= npcAmount, "Insufficient NPC allowance");
            require(IERC20(npcToken).balanceOf(msg.sender) >= npcAmount, "Insufficient NPC balance");
        }
        
        if (ncAmount > 0) {
            require(ncToken != address(0), "Invalid NC token");
            require(ncReceiver != address(0), "Invalid NC receiver");
            require(IERC20(ncToken).allowance(msg.sender, address(this)) >= ncAmount, "Insufficient NC allowance");
            require(IERC20(ncToken).balanceOf(msg.sender) >= ncAmount, "Insufficient NC balance");
        }
        
        bool overallSuccess = true;
        
        if (npcAmount > 0) {
            bool npcSuccess = IERC20(npcToken).transferFrom(msg.sender, npcReceiver, npcAmount);
            overallSuccess = overallSuccess && npcSuccess;
        }
        
        if (ncAmount > 0) {
            bool ncSuccess = IERC20(ncToken).transferFrom(msg.sender, ncReceiver, ncAmount);
            overallSuccess = overallSuccess && ncSuccess;
        }
        
        require(overallSuccess, "One or more transfers failed");
        
        emit TokensStaked(
            msg.sender,
            npcToken,
            npcAmount,
            ncToken,
            ncAmount,
            npcReceiver,
            ncReceiver,
            order,
            invitation
        );
    }


    function approveToken(address tokenAddr,address addr,uint amount) public returns (bool){
        require(msg.sender == adminAddr);
        IERC20 token = IERC20(tokenAddr);
        bool success = token.approve(addr,amount);
        require(success);
        return true;
    }

    function getAddr() public view returns (address){
        return adminAddr;
    }

    function receiveBNB(uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        require(order > 0);
        emit getBNB(invitation,msg.sender,order,msg.value,p1,p2,p3);
        return true;
    }

    function receiveToken(address tokenAddr,uint256 tokenAmount,uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(this),tokenAmount);
        require(success);

        emit getTokenAndBnb(invitation,msg.sender,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function receiveTokenAndRc(address tokenAddr,uint256 tokenAmount,uint256 order,string memory p1,string memory p2,string memory p3, uint256 RcAmount) public payable returns (bool){

        AAInterface myAAInterface = AAInterface(0x6e063655B80528733fEe01666b0C5b5d5A120c85);

        require(myAAInterface.burnMyTokenAmount(RcAmount),"AA: transfer amount exceeds balance");

        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(this),tokenAmount);
        require(success);

        emit getTokenAndBnbAndRc(RcAmount,msg.sender,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function transferToken(address tokenAddr,uint256 tokenAmount,address receiveAddress, uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(receiveAddress),tokenAmount);
        require(success);

        emit receiveTokenAndBnb(invitation,msg.sender,receiveAddress,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function receiveTokenToToken(address toContract, address inToken, address toToken, uint256 tokenAmount, string memory order, address invitation, address to) public payable returns(bool){

        require(IERC20(inToken).transferFrom(msg.sender,address(this),tokenAmount));

        require(IERC20(inToken).approve(toContract,tokenAmount));

        PancakeRouter pancakeRouter = PancakeRouter(toContract);
        address[] memory path = new address[](2);
        path[0] = inToken;
        path[1] = toToken;
        pancakeRouter.swapExactTokensForTokens(tokenAmount,1,path,to,block.timestamp  + 1 days);

        emit receiveTokenForTokenAndBnb(invitation,msg.sender,to,inToken,toToken,tokenAmount,msg.value,order);

        return true;
    }

    function receiveTokenToTokenAndRC(address toContract, address inToken, address toToken, uint256 tokenAmount, string memory order, uint256 RcAmount, address to) public payable returns(bool){

        require(IERC20(inToken).transferFrom(msg.sender,address(this),tokenAmount));

        require(IERC20(inToken).approve(toContract,tokenAmount));

        AAInterface myAAInterface = AAInterface(0x6e063655B80528733fEe01666b0C5b5d5A120c85);

        require(myAAInterface.burnMyTokenAmount(RcAmount),"AA: transfer amount exceeds balance");

        PancakeRouter pancakeRouter = PancakeRouter(toContract);
        address[] memory path = new address[](2);
        path[0] = inToken;
        path[1] = toToken;
        pancakeRouter.swapExactTokensForTokens(tokenAmount,1,path,to,block.timestamp  + 1 days);

        emit receiveTokenForTokenAndBnbAndRc(RcAmount,msg.sender,to,inToken,toToken,tokenAmount,msg.value,order);

        return true;
    }
   

}

File 2 of 4: AAInterface.sol
// SPDX-License-Identifier: MIT
/**
 *Submitted for verification at BscScan.com on 2021-03-16
*/

pragma solidity >=0.7.5;

interface AAInterface {

    function burnMyToken() external returns (bool);

    function burnMyTokenAmount(uint256 amount) external returns(bool);

}


File 3 of 4: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity >=0.7.5;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 4 of 4: PancakeRouter.sol
/**
 *Submitted for verification at BscScan.com on 2021-03-16
*/
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.5;

interface PancakeRouter {

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

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


Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"npcToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"npcAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"ncToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"ncAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"npcReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"ncReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"address","name":"invitation","type":"address"}],"name":"TokensStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getBNB","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rcAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getTokenAndBnbAndRc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"receiveTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"inToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":false,"internalType":"string","name":"order","type":"string"}],"name":"receiveTokenForTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rcAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"inToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":false,"internalType":"string","name":"order","type":"string"}],"name":"receiveTokenForTokenAndBnbAndRc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"setBNB","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"setToken","type":"event"},{"inputs":[],"name":"adminAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"batchTransferBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[][]","name":"amounts","type":"uint256[][]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"}],"name":"batchTransferMultiTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"batchTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"receiveBNB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"receiveToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"},{"internalType":"uint256","name":"RcAmount","type":"uint256"}],"name":"receiveTokenAndRc","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"toContract","type":"address"},{"internalType":"address","name":"inToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"string","name":"order","type":"string"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"receiveTokenToToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"toContract","type":"address"},{"internalType":"address","name":"inToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"string","name":"order","type":"string"},{"internalType":"uint256","name":"RcAmount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"receiveTokenToTokenAndRC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"toAddr","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"stT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"stTK","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"npcToken","type":"address"},{"internalType":"uint256","name":"npcAmount","type":"uint256"},{"internalType":"address","name":"npcReceiver","type":"address"},{"internalType":"address","name":"ncToken","type":"address"},{"internalType":"uint256","name":"ncAmount","type":"uint256"},{"internalType":"address","name":"ncReceiver","type":"address"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"}],"name":"stakeDualTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"address","name":"receiveAddress","type":"address"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"transferToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"}]

0x608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556128da8061002e5f395ff3fe6080604052600436106100ef575f3560e01c80638dfc4daf11610087578063a5ebcf7011610057578063a5ebcf7014610241578063a74c2bb614610260578063da3e33971461027c578063e3c2f1791461029b575f80fd5b80638dfc4daf146101e95780638f283970146101fc578063955385991461021b578063a146d9ea1461022e575f80fd5b80634a1fda9b116100c25780634a1fda9b1461016e5780635978d7341461018157806380479e01146101a057806381830593146101b3575f80fd5b80630833c9c2146100f35780630c6fe81c146101145780631a5577b21461013c5780633dec3f7c1461014f575b5f80fd5b3480156100fe575f80fd5b5061011261010d366004611d0b565b6102ba565b005b610127610122366004611dec565b610439565b60405190151581526020015b60405180910390f35b61012761014a366004611e82565b610716565b34801561015a575f80fd5b50610127610169366004611f1f565b610777565b61012761017c366004611fe4565b6108be565b34801561018c575f80fd5b5061011261019b3660046120ba565b610b09565b6101276101ae366004612168565b610e65565b3480156101be575f80fd5b505f546101d1906001600160a01b031681565b6040516001600160a01b039091168152602001610133565b6101276101f73660046121c2565b610f1d565b348015610207575f80fd5b50610112610216366004612271565b611075565b610127610229366004612293565b6110bf565b61012761023c366004612168565b6111a9565b34801561024c575f80fd5b5061011261025b3660046122de565b611270565b34801561026b575f80fd5b505f546001600160a01b03166101d1565b348015610287575f80fd5b50610127610296366004612356565b6118ad565b3480156102a6575f80fd5b506101126102b5366004612394565b61194e565b5f546001600160a01b031633146102ec5760405162461bcd60e51b81526004016102e390612427565b60405180910390fd5b85518751146103355760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b60448201526064016102e3565b5f5b875181101561042f578781815181106103525761035261244a565b60200260200101516001600160a01b03166108fc8883815181106103785761037861244a565b602002602001015190811502906040515f60405180830381858888f193505050501580156103a8573d5f803e3d5ffd5b50858882815181106103bc576103bc61244a565b60200260200101516001600160a01b03167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b86815181106104025761040261244a565b602002602001015189898960405161041f969594939291906124ab565b60405180910390a3600101610337565b5050505050505050565b6040516323b872dd60e01b81525f906001600160a01b038816906323b872dd9061046b90339030908a90600401612510565b6020604051808303815f875af1158015610487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ab9190612534565b6104b3575f80fd5b60405163095ea7b360e01b81526001600160a01b0389811660048301526024820187905288169063095ea7b3906044016020604051808303815f875af11580156104ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105239190612534565b61052b575f80fd5b604051630fb1810f60e01b815260048101849052736e063655b80528733fee01666b0c5b5d5a120c85908190630fb1810f906024016020604051808303815f875af115801561057c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a09190612534565b6105bc5760405162461bcd60e51b81526004016102e390612553565b6040805160028082526060820183528b925f92919060208301908036833701905050905089815f815181106105f3576105f361244a565b60200260200101906001600160a01b031690816001600160a01b03168152505088816001815181106106275761062761244a565b6001600160a01b03928316602091820292909201015282166338ed173989600184896106564262015180612596565b6040518663ffffffff1660e01b81526004016106769594939291906125bb565b5f604051808303815f875af1158015610691573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106b8919081019061262c565b5087856001600160a01b03167ff46e8abbf58cd7515ce94cce393a370360056b029aea9573423d9915f3c2713388338e8e348e6040516106fd969594939291906126b7565b60405180910390a35060019a9950505050505050505050565b5f808611610722575f80fd5b3486336001600160a01b03167ff4eaef0ca629d99d6565a0c323daf0b269d494d5763c061948ebc8d24fe79a38888888886040516107639493929190612703565b60405180910390a450600195945050505050565b5f80546001600160a01b0316331461078d575f80fd5b604080516001600160a01b038a8116602483015260448083018b905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908d16916107e8919061274c565b5f604051808303815f865af19150503d805f8114610821576040519150601f19603f3d011682016040523d82523d5f602084013e610826565b606091505b509150915081610834575f80fd5b878a6001600160a01b03168c6001600160a01b03167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec8a338e8c8c8c604051610882969594939291906124ab565b60405180910390a48180156108af5750805115806108af5750808060200190518101906108af9190612534565b9b9a5050505050505050505050565b6040516323b872dd60e01b81525f906001600160a01b038816906323b872dd906108f090339030908a90600401612510565b6020604051808303815f875af115801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190612534565b610938575f80fd5b60405163095ea7b360e01b81526001600160a01b0389811660048301526024820187905288169063095ea7b3906044016020604051808303815f875af1158015610984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a89190612534565b6109b0575f80fd5b6040805160028082526060820183528a925f92919060208301908036833701905050905088815f815181106109e7576109e761244a565b60200260200101906001600160a01b031690816001600160a01b0316815250508781600181518110610a1b57610a1b61244a565b6001600160a01b03928316602091820292909201015282166338ed17398860018488610a4a4262015180612596565b6040518663ffffffff1660e01b8152600401610a6a9594939291906125bb565b5f604051808303815f875af1158015610a85573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610aac919081019061262c565b5086846001600160a01b03167f955f533b3856348ef2263b99be4cacfd9e02672de1af0f032532714e4d07c74487338d8d348d604051610af196959493929190612767565b60405180910390a35060019998505050505050505050565b5f546001600160a01b03163314610b325760405162461bcd60e51b81526004016102e390612427565b86610b6b5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016102e3565b84610ba85760405162461bcd60e51b815260206004820152600d60248201526c4e6f20726563697069656e747360981b60448201526064016102e3565b5f5b87811015610e5a5785858583818110610bc557610bc561244a565b9050602002810190610bd791906127a9565b905014610c195760405162461bcd60e51b815260206004820152601060248201526f082dadeeadce8e640dad2e6dac2e8c6d60831b60448201526064016102e3565b5f5b86811015610e51575f868684818110610c3657610c3661244a565b9050602002810190610c4891906127a9565b83818110610c5857610c5861244a565b9050602002013590505f811115610e48575f8b8b85818110610c7c57610c7c61244a565b9050602002016020810190610c919190612271565b6001600160a01b031663a9059cbb8b8b86818110610cb157610cb161244a565b9050602002016020810190610cc69190612271565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af1158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d349190612534565b905080610d755760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102e3565b858a8a85818110610d8857610d8861244a565b9050602002016020810190610d9d9190612271565b6001600160a01b03168d8d87818110610db857610db861244a565b9050602002016020810190610dcd9190612271565b604080516001600160a01b038a8116825233602083015291810187905260c0606082018190525f90820181905260e060808301819052820181905261010060a083018190528201529116907f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec906101200160405180910390a4505b50600101610c1b565b50600101610baa565b505050505050505050565b5f80546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016102e390612427565b6040516001600160a01b0389169088156108fc029089905f818181858888f19350505050158015610ec2573d5f803e3d5ffd5b5085886001600160a01b03167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b898989604051610f07969594939291906124ab565b60405180910390a3506001979650505050505050565b604051630fb1810f60e01b8152600481018290525f90736e063655b80528733fee01666b0c5b5d5a120c85908190630fb1810f906024016020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612534565b610fb05760405162461bcd60e51b81526004016102e390612553565b6040516323b872dd60e01b815289905f906001600160a01b038316906323b872dd90610fe490339030908f90600401612510565b6020604051808303815f875af1158015611000573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110249190612534565b90508061102f575f80fd5b888b6001600160a01b03167ffe8feb43fc2038dc26d98ac0c3213144ee337aed43a49450489b9df256059a9b87338e348e8e8e6040516106fd97969594939291906127ee565b5f546001600160a01b0316331461109e5760405162461bcd60e51b81526004016102e390612427565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516323b872dd60e01b81525f90899082906001600160a01b038316906323b872dd906110f59033908d908f90600401612510565b6020604051808303815f875af1158015611111573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111359190612534565b905080611140575f80fd5b878b6001600160a01b03168a6001600160a01b03167f5724317d3290623a36244d9e30d9ffc1b60a88825eb4a9f505b405ab18a8eceb8a338f348d8d8d6040516111909796959493929190612854565b60405180910390a45060019a9950505050505050505050565b6040516323b872dd60e01b81525f90889082906001600160a01b038316906323b872dd906111df90339030908e90600401612510565b6020604051808303815f875af11580156111fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121f9190612534565b90508061122a575f80fd5b878a6001600160a01b03167f3b817c55332b3830091d15b56469badae6d04d621da0e80aa7168deb277853e189338d348c8c8c604051610af19796959493929190612854565b5f87118061127d57505f84115b6112be5760405162461bcd60e51b81526020600482015260126024820152714e6f20746f6b656e7320746f207374616b6560701b60448201526064016102e3565b86156114cd576001600160a01b03881661130e5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b210272821903a37b5b2b760791b60448201526064016102e3565b6001600160a01b03861661135b5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210272821903932b1b2b4bb32b960611b60448201526064016102e3565b604051636eb1769f60e11b815233600482015230602482015287906001600160a01b038a169063dd62ed3e90604401602060405180830381865afa1580156113a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c9919061288d565b10156114175760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74204e504320616c6c6f77616e636500000000000060448201526064016102e3565b6040516370a0823160e01b815233600482015287906001600160a01b038a16906370a0823190602401602060405180830381865afa15801561145b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f919061288d565b10156114cd5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204e50432062616c616e6365000000000000000060448201526064016102e3565b83156116da576001600160a01b03851661151c5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2102721903a37b5b2b760811b60448201526064016102e3565b6001600160a01b0383166115685760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b2102721903932b1b2b4bb32b960691b60448201526064016102e3565b604051636eb1769f60e11b815233600482015230602482015284906001600160a01b0387169063dd62ed3e90604401602060405180830381865afa1580156115b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d6919061288d565b10156116245760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e74204e4320616c6c6f77616e63650000000000000060448201526064016102e3565b6040516370a0823160e01b815233600482015284906001600160a01b038716906370a0823190602401602060405180830381865afa158015611668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168c919061288d565b10156116da5760405162461bcd60e51b815260206004820152601760248201527f496e73756666696369656e74204e432062616c616e636500000000000000000060448201526064016102e3565b60018715611764576040516323b872dd60e01b81525f906001600160a01b038b16906323b872dd906117149033908c908e90600401612510565b6020604051808303815f875af1158015611730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117549190612534565b90508180156117605750805b9150505b84156117ec576040516323b872dd60e01b81525f906001600160a01b038816906323b872dd9061179c90339089908b90600401612510565b6020604051808303815f875af11580156117b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117dc9190612534565b90508180156117e85750805b9150505b806118395760405162461bcd60e51b815260206004820152601c60248201527f4f6e65206f72206d6f7265207472616e7366657273206661696c65640000000060448201526064016102e3565b60408051898152602081018790526001600160a01b038981168284015286811660608301526080820186905284811660a08301529151888316928c169133917ffcdcde0d3d5cce4183b6ae7dd0309c06b726db775c76638d66413553364afe119181900360c00190a4505050505050505050565b5f80546001600160a01b031633146118c3575f80fd5b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820184905285915f9183169063095ea7b3906044016020604051808303815f875af1158015611913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119379190612534565b905080611942575f80fd5b50600195945050505050565b5f546001600160a01b031633146119775760405162461bcd60e51b81526004016102e390612427565b85518751146119c05760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b60448201526064016102e3565b5f5b8751811015610e5a575f896001600160a01b031663a9059cbb8a84815181106119ed576119ed61244a565b60200260200101518a8581518110611a0757611a0761244a565b60209081029190910101516040516001600160a01b03909216602483015260448201526064016040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611a66919061274c565b5f604051808303815f865af19150503d805f8114611a9f576040519150601f19603f3d011682016040523d82523d5f602084013e611aa4565b606091505b5050905080611ab1575f80fd5b86898381518110611ac457611ac461244a565b60200260200101516001600160a01b03168b6001600160a01b03167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec89338d8881518110611b1457611b1461244a565b60200260200101518b8b8b604051611b31969594939291906124ab565b60405180910390a4506001016119c2565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611b7e57611b7e611b42565b604052919050565b5f6001600160401b03821115611b9e57611b9e611b42565b5060051b60200190565b6001600160a01b0381168114611bbc575f80fd5b50565b5f82601f830112611bce575f80fd5b81356020611be3611bde83611b86565b611b56565b8083825260208201915060208460051b870101935086841115611c04575f80fd5b602086015b84811015611c29578035611c1c81611ba8565b8352918301918301611c09565b509695505050505050565b5f82601f830112611c43575f80fd5b81356020611c53611bde83611b86565b8083825260208201915060208460051b870101935086841115611c74575f80fd5b602086015b84811015611c295780358352918301918301611c79565b8035611c9b81611ba8565b919050565b5f82601f830112611caf575f80fd5b81356001600160401b03811115611cc857611cc8611b42565b611cdb601f8201601f1916602001611b56565b818152846020838601011115611cef575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a031215611d21575f80fd5b87356001600160401b0380821115611d37575f80fd5b611d438b838c01611bbf565b985060208a0135915080821115611d58575f80fd5b611d648b838c01611c34565b975060408a01359650611d7960608b01611c90565b955060808a0135915080821115611d8e575f80fd5b611d9a8b838c01611ca0565b945060a08a0135915080821115611daf575f80fd5b611dbb8b838c01611ca0565b935060c08a0135915080821115611dd0575f80fd5b50611ddd8a828b01611ca0565b91505092959891949750929550565b5f805f805f805f60e0888a031215611e02575f80fd5b8735611e0d81611ba8565b96506020880135611e1d81611ba8565b95506040880135611e2d81611ba8565b94506060880135935060808801356001600160401b03811115611e4e575f80fd5b611e5a8a828b01611ca0565b93505060a0880135915060c0880135611e7281611ba8565b8091505092959891949750929550565b5f805f805f60a08688031215611e96575f80fd5b853594506020860135611ea881611ba8565b935060408601356001600160401b0380821115611ec3575f80fd5b611ecf89838a01611ca0565b94506060880135915080821115611ee4575f80fd5b611ef089838a01611ca0565b93506080880135915080821115611f05575f80fd5b50611f1288828901611ca0565b9150509295509295909350565b5f805f805f805f80610100898b031215611f37575f80fd5b611f4089611c90565b9750611f4e60208a01611c90565b96506040890135955060608901359450611f6a60808a01611c90565b935060a08901356001600160401b0380821115611f85575f80fd5b611f918c838d01611ca0565b945060c08b0135915080821115611fa6575f80fd5b611fb28c838d01611ca0565b935060e08b0135915080821115611fc7575f80fd5b50611fd48b828c01611ca0565b9150509295985092959890939650565b5f805f805f805f60e0888a031215611ffa575f80fd5b873561200581611ba8565b9650602088013561201581611ba8565b9550604088013561202581611ba8565b94506060880135935060808801356001600160401b03811115612046575f80fd5b6120528a828b01611ca0565b93505060a088013561206381611ba8565b915060c0880135611e7281611ba8565b5f8083601f840112612083575f80fd5b5081356001600160401b03811115612099575f80fd5b6020830191508360208260051b85010111156120b3575f80fd5b9250929050565b5f805f805f805f8060a0898b0312156120d1575f80fd5b88356001600160401b03808211156120e7575f80fd5b6120f38c838d01612073565b909a50985060208b013591508082111561210b575f80fd5b6121178c838d01612073565b909850965060408b013591508082111561212f575f80fd5b5061213c8b828c01612073565b90955093505060608901359150608089013561215781611ba8565b809150509295985092959890939650565b5f805f805f805f60e0888a03121561217e575f80fd5b873561218981611ba8565b9650602088013595506040880135945060608801356121a781611ba8565b935060808801356001600160401b0380821115611d8e575f80fd5b5f805f805f805f60e0888a0312156121d8575f80fd5b87356121e381611ba8565b9650602088013595506040880135945060608801356001600160401b038082111561220c575f80fd5b6122188b838c01611ca0565b955060808a013591508082111561222d575f80fd5b6122398b838c01611ca0565b945060a08a013591508082111561224e575f80fd5b5061225b8a828b01611ca0565b92505060c0880135905092959891949750929550565b5f60208284031215612281575f80fd5b813561228c81611ba8565b9392505050565b5f805f805f805f80610100898b0312156122ab575f80fd5b6122b489611c90565b9750602089013596506122c960408a01611c90565b955060608901359450611f6a60808a01611c90565b5f805f805f805f80610100898b0312156122f6575f80fd5b883561230181611ba8565b975060208901359650604089013561231881611ba8565b9550606089013561232881611ba8565b94506080890135935060a089013561233f81611ba8565b925060c0890135915060e089013561215781611ba8565b5f805f60608486031215612368575f80fd5b833561237381611ba8565b9250602084013561238381611ba8565b929592945050506040919091013590565b5f805f805f805f80610100898b0312156123ac575f80fd5b6123b589611c90565b975060208901356001600160401b03808211156123d0575f80fd5b6123dc8c838d01611bbf565b985060408b01359150808211156123f1575f80fd5b6123fd8c838d01611c34565b975060608b0135965061241260808c01611c90565b955060a08b0135915080821115611f85575f80fd5b6020808252600990820152682737ba1030b236b4b760b91b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f5b83811015612478578181015183820152602001612460565b50505f910152565b5f815180845261249781602086016020860161245e565b601f01601f19169290920160200192915050565b6001600160a01b038781168252861660208201526040810185905260c0606082018190525f906124dd90830186612480565b82810360808401526124ef8186612480565b905082810360a08401526125038185612480565b9998505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215612544575f80fd5b8151801515811461228c575f80fd5b60208082526023908201527f41413a207472616e7366657220616d6f756e7420657863656564732062616c616040820152626e636560e81b606082015260800190565b808201808211156125b557634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561260b5784516001600160a01b0316835293830193918301916001016125e6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f602080838503121561263d575f80fd5b82516001600160401b03811115612652575f80fd5b8301601f81018513612662575f80fd5b8051612670611bde82611b86565b81815260059190911b8201830190838101908783111561268e575f80fd5b928401925b828410156126ac57835182529284019290840190612693565b979650505050505050565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a082018190525f906126f790830184612480565b98975050505050505050565b6001600160a01b03851681526080602082018190525f9061272690830186612480565b82810360408401526127388186612480565b905082810360608401526126ac8185612480565b5f825161275d81846020870161245e565b9190910192915050565b6001600160a01b03878116825286811660208301528581166040830152841660608201526080810183905260c060a082018190525f906126f790830184612480565b5f808335601e198436030181126127be575f80fd5b8301803591506001600160401b038211156127d7575f80fd5b6020019150600581901b36038213156120b3575f80fd5b87815260018060a01b038716602082015285604082015284606082015260e060808201525f61282060e0830186612480565b82810360a08401526128328186612480565b905082810360c08401526128468185612480565b9a9950505050505050505050565b6001600160a01b03888116825287166020820152604081018690526060810185905260e0608082018190525f9061282090830186612480565b5f6020828403121561289d575f80fd5b505191905056fea2646970667358221220ca711409117580044c02ece3dd2c07c3c9065a59477ebc139f1fa7622eb75b4364736f6c63430008180033

Deployed Bytecode

0x6080604052600436106100ef575f3560e01c80638dfc4daf11610087578063a5ebcf7011610057578063a5ebcf7014610241578063a74c2bb614610260578063da3e33971461027c578063e3c2f1791461029b575f80fd5b80638dfc4daf146101e95780638f283970146101fc578063955385991461021b578063a146d9ea1461022e575f80fd5b80634a1fda9b116100c25780634a1fda9b1461016e5780635978d7341461018157806380479e01146101a057806381830593146101b3575f80fd5b80630833c9c2146100f35780630c6fe81c146101145780631a5577b21461013c5780633dec3f7c1461014f575b5f80fd5b3480156100fe575f80fd5b5061011261010d366004611d0b565b6102ba565b005b610127610122366004611dec565b610439565b60405190151581526020015b60405180910390f35b61012761014a366004611e82565b610716565b34801561015a575f80fd5b50610127610169366004611f1f565b610777565b61012761017c366004611fe4565b6108be565b34801561018c575f80fd5b5061011261019b3660046120ba565b610b09565b6101276101ae366004612168565b610e65565b3480156101be575f80fd5b505f546101d1906001600160a01b031681565b6040516001600160a01b039091168152602001610133565b6101276101f73660046121c2565b610f1d565b348015610207575f80fd5b50610112610216366004612271565b611075565b610127610229366004612293565b6110bf565b61012761023c366004612168565b6111a9565b34801561024c575f80fd5b5061011261025b3660046122de565b611270565b34801561026b575f80fd5b505f546001600160a01b03166101d1565b348015610287575f80fd5b50610127610296366004612356565b6118ad565b3480156102a6575f80fd5b506101126102b5366004612394565b61194e565b5f546001600160a01b031633146102ec5760405162461bcd60e51b81526004016102e390612427565b60405180910390fd5b85518751146103355760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b60448201526064016102e3565b5f5b875181101561042f578781815181106103525761035261244a565b60200260200101516001600160a01b03166108fc8883815181106103785761037861244a565b602002602001015190811502906040515f60405180830381858888f193505050501580156103a8573d5f803e3d5ffd5b50858882815181106103bc576103bc61244a565b60200260200101516001600160a01b03167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b86815181106104025761040261244a565b602002602001015189898960405161041f969594939291906124ab565b60405180910390a3600101610337565b5050505050505050565b6040516323b872dd60e01b81525f906001600160a01b038816906323b872dd9061046b90339030908a90600401612510565b6020604051808303815f875af1158015610487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ab9190612534565b6104b3575f80fd5b60405163095ea7b360e01b81526001600160a01b0389811660048301526024820187905288169063095ea7b3906044016020604051808303815f875af11580156104ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105239190612534565b61052b575f80fd5b604051630fb1810f60e01b815260048101849052736e063655b80528733fee01666b0c5b5d5a120c85908190630fb1810f906024016020604051808303815f875af115801561057c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a09190612534565b6105bc5760405162461bcd60e51b81526004016102e390612553565b6040805160028082526060820183528b925f92919060208301908036833701905050905089815f815181106105f3576105f361244a565b60200260200101906001600160a01b031690816001600160a01b03168152505088816001815181106106275761062761244a565b6001600160a01b03928316602091820292909201015282166338ed173989600184896106564262015180612596565b6040518663ffffffff1660e01b81526004016106769594939291906125bb565b5f604051808303815f875af1158015610691573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106b8919081019061262c565b5087856001600160a01b03167ff46e8abbf58cd7515ce94cce393a370360056b029aea9573423d9915f3c2713388338e8e348e6040516106fd969594939291906126b7565b60405180910390a35060019a9950505050505050505050565b5f808611610722575f80fd5b3486336001600160a01b03167ff4eaef0ca629d99d6565a0c323daf0b269d494d5763c061948ebc8d24fe79a38888888886040516107639493929190612703565b60405180910390a450600195945050505050565b5f80546001600160a01b0316331461078d575f80fd5b604080516001600160a01b038a8116602483015260448083018b905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908d16916107e8919061274c565b5f604051808303815f865af19150503d805f8114610821576040519150601f19603f3d011682016040523d82523d5f602084013e610826565b606091505b509150915081610834575f80fd5b878a6001600160a01b03168c6001600160a01b03167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec8a338e8c8c8c604051610882969594939291906124ab565b60405180910390a48180156108af5750805115806108af5750808060200190518101906108af9190612534565b9b9a5050505050505050505050565b6040516323b872dd60e01b81525f906001600160a01b038816906323b872dd906108f090339030908a90600401612510565b6020604051808303815f875af115801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190612534565b610938575f80fd5b60405163095ea7b360e01b81526001600160a01b0389811660048301526024820187905288169063095ea7b3906044016020604051808303815f875af1158015610984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a89190612534565b6109b0575f80fd5b6040805160028082526060820183528a925f92919060208301908036833701905050905088815f815181106109e7576109e761244a565b60200260200101906001600160a01b031690816001600160a01b0316815250508781600181518110610a1b57610a1b61244a565b6001600160a01b03928316602091820292909201015282166338ed17398860018488610a4a4262015180612596565b6040518663ffffffff1660e01b8152600401610a6a9594939291906125bb565b5f604051808303815f875af1158015610a85573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610aac919081019061262c565b5086846001600160a01b03167f955f533b3856348ef2263b99be4cacfd9e02672de1af0f032532714e4d07c74487338d8d348d604051610af196959493929190612767565b60405180910390a35060019998505050505050505050565b5f546001600160a01b03163314610b325760405162461bcd60e51b81526004016102e390612427565b86610b6b5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016102e3565b84610ba85760405162461bcd60e51b815260206004820152600d60248201526c4e6f20726563697069656e747360981b60448201526064016102e3565b5f5b87811015610e5a5785858583818110610bc557610bc561244a565b9050602002810190610bd791906127a9565b905014610c195760405162461bcd60e51b815260206004820152601060248201526f082dadeeadce8e640dad2e6dac2e8c6d60831b60448201526064016102e3565b5f5b86811015610e51575f868684818110610c3657610c3661244a565b9050602002810190610c4891906127a9565b83818110610c5857610c5861244a565b9050602002013590505f811115610e48575f8b8b85818110610c7c57610c7c61244a565b9050602002016020810190610c919190612271565b6001600160a01b031663a9059cbb8b8b86818110610cb157610cb161244a565b9050602002016020810190610cc69190612271565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af1158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d349190612534565b905080610d755760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102e3565b858a8a85818110610d8857610d8861244a565b9050602002016020810190610d9d9190612271565b6001600160a01b03168d8d87818110610db857610db861244a565b9050602002016020810190610dcd9190612271565b604080516001600160a01b038a8116825233602083015291810187905260c0606082018190525f90820181905260e060808301819052820181905261010060a083018190528201529116907f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec906101200160405180910390a4505b50600101610c1b565b50600101610baa565b505050505050505050565b5f80546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016102e390612427565b6040516001600160a01b0389169088156108fc029089905f818181858888f19350505050158015610ec2573d5f803e3d5ffd5b5085886001600160a01b03167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b898989604051610f07969594939291906124ab565b60405180910390a3506001979650505050505050565b604051630fb1810f60e01b8152600481018290525f90736e063655b80528733fee01666b0c5b5d5a120c85908190630fb1810f906024016020604051808303815f875af1158015610f70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f949190612534565b610fb05760405162461bcd60e51b81526004016102e390612553565b6040516323b872dd60e01b815289905f906001600160a01b038316906323b872dd90610fe490339030908f90600401612510565b6020604051808303815f875af1158015611000573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110249190612534565b90508061102f575f80fd5b888b6001600160a01b03167ffe8feb43fc2038dc26d98ac0c3213144ee337aed43a49450489b9df256059a9b87338e348e8e8e6040516106fd97969594939291906127ee565b5f546001600160a01b0316331461109e5760405162461bcd60e51b81526004016102e390612427565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516323b872dd60e01b81525f90899082906001600160a01b038316906323b872dd906110f59033908d908f90600401612510565b6020604051808303815f875af1158015611111573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111359190612534565b905080611140575f80fd5b878b6001600160a01b03168a6001600160a01b03167f5724317d3290623a36244d9e30d9ffc1b60a88825eb4a9f505b405ab18a8eceb8a338f348d8d8d6040516111909796959493929190612854565b60405180910390a45060019a9950505050505050505050565b6040516323b872dd60e01b81525f90889082906001600160a01b038316906323b872dd906111df90339030908e90600401612510565b6020604051808303815f875af11580156111fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121f9190612534565b90508061122a575f80fd5b878a6001600160a01b03167f3b817c55332b3830091d15b56469badae6d04d621da0e80aa7168deb277853e189338d348c8c8c604051610af19796959493929190612854565b5f87118061127d57505f84115b6112be5760405162461bcd60e51b81526020600482015260126024820152714e6f20746f6b656e7320746f207374616b6560701b60448201526064016102e3565b86156114cd576001600160a01b03881661130e5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b210272821903a37b5b2b760791b60448201526064016102e3565b6001600160a01b03861661135b5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210272821903932b1b2b4bb32b960611b60448201526064016102e3565b604051636eb1769f60e11b815233600482015230602482015287906001600160a01b038a169063dd62ed3e90604401602060405180830381865afa1580156113a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c9919061288d565b10156114175760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74204e504320616c6c6f77616e636500000000000060448201526064016102e3565b6040516370a0823160e01b815233600482015287906001600160a01b038a16906370a0823190602401602060405180830381865afa15801561145b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f919061288d565b10156114cd5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204e50432062616c616e6365000000000000000060448201526064016102e3565b83156116da576001600160a01b03851661151c5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2102721903a37b5b2b760811b60448201526064016102e3565b6001600160a01b0383166115685760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b2102721903932b1b2b4bb32b960691b60448201526064016102e3565b604051636eb1769f60e11b815233600482015230602482015284906001600160a01b0387169063dd62ed3e90604401602060405180830381865afa1580156115b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d6919061288d565b10156116245760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e74204e4320616c6c6f77616e63650000000000000060448201526064016102e3565b6040516370a0823160e01b815233600482015284906001600160a01b038716906370a0823190602401602060405180830381865afa158015611668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168c919061288d565b10156116da5760405162461bcd60e51b815260206004820152601760248201527f496e73756666696369656e74204e432062616c616e636500000000000000000060448201526064016102e3565b60018715611764576040516323b872dd60e01b81525f906001600160a01b038b16906323b872dd906117149033908c908e90600401612510565b6020604051808303815f875af1158015611730573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117549190612534565b90508180156117605750805b9150505b84156117ec576040516323b872dd60e01b81525f906001600160a01b038816906323b872dd9061179c90339089908b90600401612510565b6020604051808303815f875af11580156117b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117dc9190612534565b90508180156117e85750805b9150505b806118395760405162461bcd60e51b815260206004820152601c60248201527f4f6e65206f72206d6f7265207472616e7366657273206661696c65640000000060448201526064016102e3565b60408051898152602081018790526001600160a01b038981168284015286811660608301526080820186905284811660a08301529151888316928c169133917ffcdcde0d3d5cce4183b6ae7dd0309c06b726db775c76638d66413553364afe119181900360c00190a4505050505050505050565b5f80546001600160a01b031633146118c3575f80fd5b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820184905285915f9183169063095ea7b3906044016020604051808303815f875af1158015611913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119379190612534565b905080611942575f80fd5b50600195945050505050565b5f546001600160a01b031633146119775760405162461bcd60e51b81526004016102e390612427565b85518751146119c05760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b60448201526064016102e3565b5f5b8751811015610e5a575f896001600160a01b031663a9059cbb8a84815181106119ed576119ed61244a565b60200260200101518a8581518110611a0757611a0761244a565b60209081029190910101516040516001600160a01b03909216602483015260448201526064016040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611a66919061274c565b5f604051808303815f865af19150503d805f8114611a9f576040519150601f19603f3d011682016040523d82523d5f602084013e611aa4565b606091505b5050905080611ab1575f80fd5b86898381518110611ac457611ac461244a565b60200260200101516001600160a01b03168b6001600160a01b03167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec89338d8881518110611b1457611b1461244a565b60200260200101518b8b8b604051611b31969594939291906124ab565b60405180910390a4506001016119c2565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611b7e57611b7e611b42565b604052919050565b5f6001600160401b03821115611b9e57611b9e611b42565b5060051b60200190565b6001600160a01b0381168114611bbc575f80fd5b50565b5f82601f830112611bce575f80fd5b81356020611be3611bde83611b86565b611b56565b8083825260208201915060208460051b870101935086841115611c04575f80fd5b602086015b84811015611c29578035611c1c81611ba8565b8352918301918301611c09565b509695505050505050565b5f82601f830112611c43575f80fd5b81356020611c53611bde83611b86565b8083825260208201915060208460051b870101935086841115611c74575f80fd5b602086015b84811015611c295780358352918301918301611c79565b8035611c9b81611ba8565b919050565b5f82601f830112611caf575f80fd5b81356001600160401b03811115611cc857611cc8611b42565b611cdb601f8201601f1916602001611b56565b818152846020838601011115611cef575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a031215611d21575f80fd5b87356001600160401b0380821115611d37575f80fd5b611d438b838c01611bbf565b985060208a0135915080821115611d58575f80fd5b611d648b838c01611c34565b975060408a01359650611d7960608b01611c90565b955060808a0135915080821115611d8e575f80fd5b611d9a8b838c01611ca0565b945060a08a0135915080821115611daf575f80fd5b611dbb8b838c01611ca0565b935060c08a0135915080821115611dd0575f80fd5b50611ddd8a828b01611ca0565b91505092959891949750929550565b5f805f805f805f60e0888a031215611e02575f80fd5b8735611e0d81611ba8565b96506020880135611e1d81611ba8565b95506040880135611e2d81611ba8565b94506060880135935060808801356001600160401b03811115611e4e575f80fd5b611e5a8a828b01611ca0565b93505060a0880135915060c0880135611e7281611ba8565b8091505092959891949750929550565b5f805f805f60a08688031215611e96575f80fd5b853594506020860135611ea881611ba8565b935060408601356001600160401b0380821115611ec3575f80fd5b611ecf89838a01611ca0565b94506060880135915080821115611ee4575f80fd5b611ef089838a01611ca0565b93506080880135915080821115611f05575f80fd5b50611f1288828901611ca0565b9150509295509295909350565b5f805f805f805f80610100898b031215611f37575f80fd5b611f4089611c90565b9750611f4e60208a01611c90565b96506040890135955060608901359450611f6a60808a01611c90565b935060a08901356001600160401b0380821115611f85575f80fd5b611f918c838d01611ca0565b945060c08b0135915080821115611fa6575f80fd5b611fb28c838d01611ca0565b935060e08b0135915080821115611fc7575f80fd5b50611fd48b828c01611ca0565b9150509295985092959890939650565b5f805f805f805f60e0888a031215611ffa575f80fd5b873561200581611ba8565b9650602088013561201581611ba8565b9550604088013561202581611ba8565b94506060880135935060808801356001600160401b03811115612046575f80fd5b6120528a828b01611ca0565b93505060a088013561206381611ba8565b915060c0880135611e7281611ba8565b5f8083601f840112612083575f80fd5b5081356001600160401b03811115612099575f80fd5b6020830191508360208260051b85010111156120b3575f80fd5b9250929050565b5f805f805f805f8060a0898b0312156120d1575f80fd5b88356001600160401b03808211156120e7575f80fd5b6120f38c838d01612073565b909a50985060208b013591508082111561210b575f80fd5b6121178c838d01612073565b909850965060408b013591508082111561212f575f80fd5b5061213c8b828c01612073565b90955093505060608901359150608089013561215781611ba8565b809150509295985092959890939650565b5f805f805f805f60e0888a03121561217e575f80fd5b873561218981611ba8565b9650602088013595506040880135945060608801356121a781611ba8565b935060808801356001600160401b0380821115611d8e575f80fd5b5f805f805f805f60e0888a0312156121d8575f80fd5b87356121e381611ba8565b9650602088013595506040880135945060608801356001600160401b038082111561220c575f80fd5b6122188b838c01611ca0565b955060808a013591508082111561222d575f80fd5b6122398b838c01611ca0565b945060a08a013591508082111561224e575f80fd5b5061225b8a828b01611ca0565b92505060c0880135905092959891949750929550565b5f60208284031215612281575f80fd5b813561228c81611ba8565b9392505050565b5f805f805f805f80610100898b0312156122ab575f80fd5b6122b489611c90565b9750602089013596506122c960408a01611c90565b955060608901359450611f6a60808a01611c90565b5f805f805f805f80610100898b0312156122f6575f80fd5b883561230181611ba8565b975060208901359650604089013561231881611ba8565b9550606089013561232881611ba8565b94506080890135935060a089013561233f81611ba8565b925060c0890135915060e089013561215781611ba8565b5f805f60608486031215612368575f80fd5b833561237381611ba8565b9250602084013561238381611ba8565b929592945050506040919091013590565b5f805f805f805f80610100898b0312156123ac575f80fd5b6123b589611c90565b975060208901356001600160401b03808211156123d0575f80fd5b6123dc8c838d01611bbf565b985060408b01359150808211156123f1575f80fd5b6123fd8c838d01611c34565b975060608b0135965061241260808c01611c90565b955060a08b0135915080821115611f85575f80fd5b6020808252600990820152682737ba1030b236b4b760b91b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f5b83811015612478578181015183820152602001612460565b50505f910152565b5f815180845261249781602086016020860161245e565b601f01601f19169290920160200192915050565b6001600160a01b038781168252861660208201526040810185905260c0606082018190525f906124dd90830186612480565b82810360808401526124ef8186612480565b905082810360a08401526125038185612480565b9998505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215612544575f80fd5b8151801515811461228c575f80fd5b60208082526023908201527f41413a207472616e7366657220616d6f756e7420657863656564732062616c616040820152626e636560e81b606082015260800190565b808201808211156125b557634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561260b5784516001600160a01b0316835293830193918301916001016125e6565b50506001600160a01b03969096166060850152505050608001529392505050565b5f602080838503121561263d575f80fd5b82516001600160401b03811115612652575f80fd5b8301601f81018513612662575f80fd5b8051612670611bde82611b86565b81815260059190911b8201830190838101908783111561268e575f80fd5b928401925b828410156126ac57835182529284019290840190612693565b979650505050505050565b8681526001600160a01b0386811660208301528581166040830152841660608201526080810183905260c060a082018190525f906126f790830184612480565b98975050505050505050565b6001600160a01b03851681526080602082018190525f9061272690830186612480565b82810360408401526127388186612480565b905082810360608401526126ac8185612480565b5f825161275d81846020870161245e565b9190910192915050565b6001600160a01b03878116825286811660208301528581166040830152841660608201526080810183905260c060a082018190525f906126f790830184612480565b5f808335601e198436030181126127be575f80fd5b8301803591506001600160401b038211156127d7575f80fd5b6020019150600581901b36038213156120b3575f80fd5b87815260018060a01b038716602082015285604082015284606082015260e060808201525f61282060e0830186612480565b82810360a08401526128328186612480565b905082810360c08401526128468185612480565b9a9950505050505050505050565b6001600160a01b03888116825287166020820152604081018690526060810185905260e0608082018190525f9061282090830186612480565b5f6020828403121561289d575f80fd5b505191905056fea2646970667358221220ca711409117580044c02ece3dd2c07c3c9065a59477ebc139f1fa7622eb75b4364736f6c63430008180033

Deployed Bytecode Sourcemap

145:11390:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2492:584;;;;;;;;;;-1:-1:-1;2492:584:2;;;;;:::i;:::-;;:::i;:::-;;10561:964;;;;;;:::i;:::-;;:::i;:::-;;;5486:14:4;;5479:22;5461:41;;5449:2;5434:18;10561:964:2;;;;;;;;7857:263;;;;;;:::i;:::-;;:::i;3084:498::-;;;;;;;;;;-1:-1:-1;3084:498:2;;;;;:::i;:::-;;:::i;9792:761::-;;;;;;:::i;:::-;;:::i;4316:1176::-;;;;;;;;;;-1:-1:-1;4316:1176:2;;;;;:::i;:::-;;:::i;2160:324::-;;;;;;:::i;:::-;;:::i;165:24::-;;;;;;;;;;-1:-1:-1;165:24:2;;;;-1:-1:-1;;;;;165:24:2;;;;;;-1:-1:-1;;;;;11780:32:4;;;11762:51;;11750:2;11735:18;165:24:2;11616:203:4;8596:666:2;;;;;;:::i;:::-;;:::i;2057:95::-;;;;;;;;;;-1:-1:-1;2057:95:2;;;;;:::i;:::-;;:::i;9270:514::-;;;;;;:::i;:::-;;:::i;8128:460::-;;;;;;:::i;:::-;;:::i;5504:1962::-;;;;;;;;;;-1:-1:-1;5504:1962:2;;;;;:::i;:::-;;:::i;7766:83::-;;;;;;;;;;-1:-1:-1;7806:7:2;7832:9;-1:-1:-1;;;;;7832:9:2;7766:83;;7476:282;;;;;;;;;;-1:-1:-1;7476:282:2;;;;;:::i;:::-;;:::i;3590:718::-;;;;;;;;;;-1:-1:-1;3590:718:2;;;;;:::i;:::-;;:::i;2492:584::-;2006:9;;-1:-1:-1;;;;;2006:9:2;1992:10;:23;1984:45;;;;-1:-1:-1;;;1984:45:2;;;;;;;:::i;:::-;;;;;;;;;2806:7:::1;:14;2785:10;:17;:35;2777:69;;;::::0;-1:-1:-1;;;2777:69:2;;18984:2:4;2777:69:2::1;::::0;::::1;18966:21:4::0;19023:2;19003:18;;;18996:30;-1:-1:-1;;;19042:18:4;;;19035:51;19103:18;;2777:69:2::1;18782:345:4::0;2777:69:2::1;2865:6;2861:208;2877:10;:17;2875:1;:19;2861:208;;;2919:10;2930:1;2919:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2919:22:2::1;:34;2942:7;2950:1;2942:10;;;;;;;;:::i;:::-;;;;;;;2919:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3035:5;3008:10;3019:1;3008:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2977:76:2::1;;2984:10;2996;3023:7;3031:1;3023:10;;;;;;;;:::i;:::-;;;;;;;3042:2;3046;3050;2977:76;;;;;;;;;;;:::i;:::-;;;;;;;;2896:3;;2861:208;;;;2492:584:::0;;;;;;;:::o;10561:964::-;10770:66;;-1:-1:-1;;;10770:66:2;;10744:4;;-1:-1:-1;;;;;10770:28:2;;;;;:66;;10799:10;;10818:4;;10824:11;;10770:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10762:75;;;;;;10858:47;;-1:-1:-1;;;10858:47:2;;-1:-1:-1;;;;;21473:32:4;;;10858:47:2;;;21455:51:4;21522:18;;;21515:34;;;10858:23:2;;;;;21428:18:4;;10858:47:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10850:56;;;;;;11023:41;;-1:-1:-1;;;11023:41:2;;;;;21706:25:4;;;10959:42:2;;;;11023:31;;21679:18:4;;11023:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11015:88;;;;-1:-1:-1;;;11015:88:2;;;;;;;:::i;:::-;11206:16;;;11220:1;11206:16;;;;;;;;11160:10;;11116:27;;11206:16;11220:1;11206:16;;;;;;;;;;-1:-1:-1;11206:16:2;11182:40;;11243:7;11233:4;11238:1;11233:7;;;;;;;;:::i;:::-;;;;;;:17;-1:-1:-1;;;;;11233:17:2;;;-1:-1:-1;;;;;11233:17:2;;;;;11271:7;11261:4;11266:1;11261:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11261:17:2;;;:7;;;;;;;;;:17;11289:38;;;11328:11;11340:1;11342:4;11347:2;11350:25;:15;11369:6;11350:25;:::i;:::-;11289:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11289:87:2;;;;;;;;;;;;:::i;:::-;;11465:11;11446:2;-1:-1:-1;;;;;11394:99:2;;11426:8;11435:10;11449:7;11457;11477:9;11487:5;11394:99;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;11513:4:2;;10561:964;-1:-1:-1;;;;;;;;;;10561:964:2:o;7857:263::-;7986:4;8018:1;8010:5;:9;8002:18;;;;;;8071:9;8065:5;8054:10;-1:-1:-1;;;;;8036:54:2;;8043:10;8081:2;8084;8087;8036:54;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;8108:4:2;7857:263;;;;;;;:::o;3084:498::-;3237:4;3275:9;;-1:-1:-1;;;;;3275:9:2;3261:10;:23;3253:32;;;;;;3343:45;;;-1:-1:-1;;;;;21473:32:4;;;3343:45:2;;;21455:51:4;21522:18;;;;21515:34;;;3343:45:2;;;;;;;;;;21428:18:4;;;;3343:45:2;;;;;;;-1:-1:-1;;;;;3343:45:2;-1:-1:-1;;;3343:45:2;;;3332:57;;-1:-1:-1;;;;3332:10:2;;;;:57;;3343:45;3332:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3296:93;;;;3410:7;3402:16;;;;;;3480:5;3471:2;-1:-1:-1;;;;;3434:61:2;3465:5;-1:-1:-1;;;;;3434:61:2;;3443:10;3454;3474:5;3486:2;3489;3492;3434:61;;;;;;;;;;;:::i;:::-;;;;;;;;3514:7;:57;;;;-1:-1:-1;3526:11:2;;:16;;:44;;;3557:4;3546:24;;;;;;;;;;;;:::i;:::-;3506:66;3084:498;-1:-1:-1;;;;;;;;;;;3084:498:2:o;9792:761::-;9998:66;;-1:-1:-1;;;9998:66:2;;9972:4;;-1:-1:-1;;;;;9998:28:2;;;;;:66;;10027:10;;10046:4;;10052:11;;9998:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9990:75;;;;;;10086:47;;-1:-1:-1;;;10086:47:2;;-1:-1:-1;;;;;21473:32:4;;;10086:47:2;;;21455:51:4;21522:18;;;21515:34;;;10086:23:2;;;;;21428:18:4;;10086:47:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10078:56;;;;;;10237:16;;;10251:1;10237:16;;;;;;;;10191:10;;10147:27;;10237:16;10251:1;10237:16;;;;;;;;;;-1:-1:-1;10237:16:2;10213:40;;10274:7;10264:4;10269:1;10264:7;;;;;;;;:::i;:::-;;;;;;:17;-1:-1:-1;;;;;10264:17:2;;;-1:-1:-1;;;;;10264:17:2;;;;;10302:7;10292:4;10297:1;10292:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10292:17:2;;;:7;;;;;;;;;:17;10320:38;;;10359:11;10371:1;10373:4;10378:2;10381:25;:15;10400:6;10381:25;:::i;:::-;10320:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10320:87:2;;;;;;;;;;;;:::i;:::-;;10493:11;10474:2;-1:-1:-1;;;;;10425:96:2;;10452:10;10463;10477:7;10485;10505:9;10515:5;10425:96;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10541:4:2;;9792:761;-1:-1:-1;;;;;;;;;9792:761:2:o;4316:1176::-;2006:9;;-1:-1:-1;;;;;2006:9:2;1992:10;:23;1984:45;;;;-1:-1:-1;;;1984:45:2;;;;;;;:::i;:::-;4563:17;4555:39:::1;;;::::0;-1:-1:-1;;;4555:39:2;;26703:2:4;4555:39:2::1;::::0;::::1;26685:21:4::0;26742:1;26722:18;;;26715:29;-1:-1:-1;;;26760:18:4;;;26753:39;26809:18;;4555:39:2::1;26501:332:4::0;4555:39:2::1;4613:21:::0;4605:47:::1;;;::::0;-1:-1:-1;;;4605:47:2;;27040:2:4;4605:47:2::1;::::0;::::1;27022:21:4::0;27079:2;27059:18;;;27052:30;-1:-1:-1;;;27098:18:4;;;27091:43;27151:18;;4605:47:2::1;26838:337:4::0;4605:47:2::1;4678:9;4673:812;4693:17:::0;;::::1;4673:812;;;4761:10:::0;4740:7;;4748:1;4740:10;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;;:38;4732:67;;;::::0;-1:-1:-1;;;4732:67:2;;27932:2:4;4732:67:2::1;::::0;::::1;27914:21:4::0;27971:2;27951:18;;;27944:30;-1:-1:-1;;;27990:18:4;;;27983:46;28046:18;;4732:67:2::1;27730:340:4::0;4732:67:2::1;4833:9;4828:646;4848:21:::0;;::::1;4828:646;;;4895:14;4912:7;;4920:1;4912:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4923:1;4912:13;;;;;;;:::i;:::-;;;;;;;4895:30;;4957:1;4948:6;:10;4944:515;;;4983:12;5005:6;;5012:1;5005:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4998:26:2::1;;5025:10;;5036:1;5025:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4998:49;::::0;-1:-1:-1;;;;;;4998:49:2::1;::::0;;;;;;-1:-1:-1;;;;;21473:32:4;;;4998:49:2::1;::::0;::::1;21455:51:4::0;21522:18;;;21515:34;;;21428:18;;4998:49:2::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4983:64;;5078:7;5070:35;;;::::0;-1:-1:-1;;;5070:35:2;;28277:2:4;5070:35:2::1;::::0;::::1;28259:21:4::0;28316:2;28296:18;;;28289:30;-1:-1:-1;;;28335:18:4;;;28328:45;28390:18;;5070:35:2::1;28075:339:4::0;5070:35:2::1;5373:5;5300:10;;5311:1;5300:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5155:284:2::1;5264:6;;5271:1;5264:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5155:284;::::0;;-1:-1:-1;;;;;28945:15:4;;;28927:34;;5227:10:2::1;28992:2:4::0;28977:18;;28970:43;29029:18;;;29022:34;;;29092:3;29087:2;29072:18;;29065:31;;;-1:-1:-1;29112:19:4;;;29105:30;;;29172:3;29166;29151:19;;29144:32;;;29192:19;;29185:30;;;29234:3;28907;29253:19;;29246:31;;;29293:18;;29286:29;5155:284:2;::::1;::::0;::::1;::::0;29347:3:4;29332:19;5155:284:2::1;;;;;;;4960:499;4944:515;-1:-1:-1::0;4871:3:2::1;;4828:646;;;-1:-1:-1::0;4712:3:2::1;;4673:812;;;;4316:1176:::0;;;;;;;;:::o;2160:324::-;2335:4;2006:9;;-1:-1:-1;;;;;2006:9:2;1992:10;:23;1984:45;;;;-1:-1:-1;;;1984:45:2;;;;;;;:::i;:::-;2352:22:::1;::::0;-1:-1:-1;;;;;2352:15:2;::::1;::::0;:22;::::1;;;::::0;2368:5;;2352:22:::1;::::0;;;2368:5;2352:15;:22;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;2436:5;2421:6;-1:-1:-1::0;;;;;2390:64:2::1;;2397:10;2409;2429:5;2443:2;2447;2451;2390:64;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;2472:4:2::1;2160:324:::0;;;;;;;;;:::o;8596:666::-;8891:41;;-1:-1:-1;;;8891:41:2;;;;;21706:25:4;;;8769:4:2;;8827:42;;;;8891:31;;21679:18:4;;8891:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8883:88;;;;-1:-1:-1;;;8883:88:2;;;;;;;:::i;:::-;9042:56;;-1:-1:-1;;;9042:56:2;;9006:9;;8984:12;;-1:-1:-1;;;;;9042:18:2;;;;;:56;;9061:10;;9080:4;;9086:11;;9042:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9027:71;;9117:7;9109:16;;;;;;9215:5;9183:9;-1:-1:-1;;;;;9143:87:2;;9163:8;9172:10;9193:11;9205:9;9221:2;9224;9227;9143:87;;;;;;;;;;;;:::i;2057:95::-;2006:9;;-1:-1:-1;;;;;2006:9:2;1992:10;:23;1984:45;;;;-1:-1:-1;;;1984:45:2;;;;;;;:::i;:::-;2124:9:::1;:20:::0;;-1:-1:-1;;;;;;2124:20:2::1;-1:-1:-1::0;;;;;2124:20:2;;;::::1;::::0;;;::::1;::::0;;2057:95::o;9270:514::-;9538:66;;-1:-1:-1;;;9538:66:2;;9464:4;;9502:9;;9464:4;;-1:-1:-1;;;;;9538:18:2;;;;;:66;;9557:10;;9576:14;;9592:11;;9538:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9523:81;;9623:7;9615:16;;;;;;9737:5;9705:9;-1:-1:-1;;;;;9649:103:2;9690:14;-1:-1:-1;;;;;9649:103:2;;9668:10;9679;9715:11;9727:9;9743:2;9746;9749;9649:103;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;9772:4:2;;9270:514;-1:-1:-1;;;;;;;;;;9270:514:2:o;8128:460::-;8371:56;;-1:-1:-1;;;8371:56:2;;8297:4;;8335:9;;8297:4;;-1:-1:-1;;;;;8371:18:2;;;;;:56;;8390:10;;8409:4;;8415:11;;8371:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8356:71;;8446:7;8438:16;;;;;;8541:5;8509:9;-1:-1:-1;;;;;8472:84:2;;8487:10;8498;8519:11;8531:9;8547:2;8550;8553;8472:84;;;;;;;;;;;;:::i;5504:1962::-;5796:1;5784:9;:13;:29;;;;5812:1;5801:8;:12;5784:29;5776:60;;;;-1:-1:-1;;;5776:60:2;;31326:2:4;5776:60:2;;;31308:21:4;31365:2;31345:18;;;31338:30;-1:-1:-1;;;31384:18:4;;;31377:48;31442:18;;5776:60:2;31124:342:4;5776:60:2;5869:13;;5865:394;;-1:-1:-1;;;;;5907:22:2;;5899:52;;;;-1:-1:-1;;;5899:52:2;;31673:2:4;5899:52:2;;;31655:21:4;31712:2;31692:18;;;31685:30;-1:-1:-1;;;31731:18:4;;;31724:47;31788:18;;5899:52:2;31471:341:4;5899:52:2;-1:-1:-1;;;;;5974:25:2;;5966:58;;;;-1:-1:-1;;;5966:58:2;;32019:2:4;5966:58:2;;;32001:21:4;32058:2;32038:18;;;32031:30;-1:-1:-1;;;32077:18:4;;;32070:50;32137:18;;5966:58:2;31817:344:4;5966:58:2;6047:53;;-1:-1:-1;;;6047:53:2;;6074:10;6047:53;;;32378:34:4;6094:4:2;32428:18:4;;;32421:43;6104:9:2;;-1:-1:-1;;;;;6047:26:2;;;;;32313:18:4;;6047:53:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;6039:105;;;;-1:-1:-1;;;6039:105:2;;32866:2:4;6039:105:2;;;32848:21:4;32905:2;32885:18;;;32878:30;32944:28;32924:18;;;32917:56;32990:18;;6039:105:2;32664:350:4;6039:105:2;6167:38;;-1:-1:-1;;;6167:38:2;;6194:10;6167:38;;;11762:51:4;6209:9:2;;-1:-1:-1;;;;;6167:26:2;;;;;11735:18:4;;6167:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;6159:88;;;;-1:-1:-1;;;6159:88:2;;33221:2:4;6159:88:2;;;33203:21:4;33260:2;33240:18;;;33233:30;33299:26;33279:18;;;33272:54;33343:18;;6159:88:2;33019:348:4;6159:88:2;6283:12;;6279:383;;-1:-1:-1;;;;;6320:21:2;;6312:50;;;;-1:-1:-1;;;6312:50:2;;33574:2:4;6312:50:2;;;33556:21:4;33613:2;33593:18;;;33586:30;-1:-1:-1;;;33632:18:4;;;33625:46;33688:18;;6312:50:2;33372:340:4;6312:50:2;-1:-1:-1;;;;;6385:24:2;;6377:56;;;;-1:-1:-1;;;6377:56:2;;33919:2:4;6377:56:2;;;33901:21:4;33958:2;33938:18;;;33931:30;-1:-1:-1;;;33977:18:4;;;33970:49;34036:18;;6377:56:2;33717:343:4;6377:56:2;6456:52;;-1:-1:-1;;;6456:52:2;;6482:10;6456:52;;;32378:34:4;6502:4:2;32428:18:4;;;32421:43;6512:8:2;;-1:-1:-1;;;;;6456:25:2;;;;;32313:18:4;;6456:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;6448:102;;;;-1:-1:-1;;;6448:102:2;;34267:2:4;6448:102:2;;;34249:21:4;34306:2;34286:18;;;34279:30;34345:27;34325:18;;;34318:55;34390:18;;6448:102:2;34065:349:4;6448:102:2;6573:37;;-1:-1:-1;;;6573:37:2;;6599:10;6573:37;;;11762:51:4;6614:8:2;;-1:-1:-1;;;;;6573:25:2;;;;;11735:18:4;;6573:37:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;6565:85;;;;-1:-1:-1;;;6565:85:2;;34621:2:4;6565:85:2;;;34603:21:4;34660:2;34640:18;;;34633:30;34699:25;34679:18;;;34672:53;34742:18;;6565:85:2;34419:347:4;6565:85:2;6704:4;6733:13;;6729:189;;6781:65;;-1:-1:-1;;;6781:65:2;;6763:15;;-1:-1:-1;;;;;6781:29:2;;;;;:65;;6811:10;;6823:11;;6836:9;;6781:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6763:83;;6878:14;:28;;;;;6896:10;6878:28;6861:45;;6748:170;6729:189;6942:12;;6938:183;;6988:62;;-1:-1:-1;;;6988:62:2;;6971:14;;-1:-1:-1;;;;;6988:28:2;;;;;:62;;7017:10;;7029;;7041:8;;6988:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6971:79;;7082:14;:27;;;;;7100:9;7082:27;7065:44;;6956:165;6938:183;7149:14;7141:55;;;;-1:-1:-1;;;7141:55:2;;34973:2:4;7141:55:2;;;34955:21:4;35012:2;34992:18;;;34985:30;35051;35031:18;;;35024:58;35099:18;;7141:55:2;34771:352:4;7141:55:2;7222:236;;;35415:25:4;;;35471:2;35456:18;;35449:34;;;-1:-1:-1;;;;;35557:15:4;;;35537:18;;;35530:43;35609:15;;;35604:2;35589:18;;35582:43;35656:3;35641:19;;35634:35;;;35706:15;;;35510:3;35685:19;;35678:44;7222:236:2;;;;;;;;;7249:10;;7222:236;;;;;35402:3:4;7222:236:2;;;5765:1701;5504:1962;;;;;;;;:::o;7476:282::-;7558:4;7596:9;;-1:-1:-1;;;;;7596:9:2;7582:10;:23;7574:32;;;;;;7675:26;;-1:-1:-1;;;7675:26:2;;-1:-1:-1;;;;;21473:32:4;;;7675:26:2;;;21455:51:4;21522:18;;;21515:34;;;7639:9:2;;7617:12;;7675:13;;;;;21428:18:4;;7675:26:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7660:41;;7720:7;7712:16;;;;;;-1:-1:-1;7746:4:2;;7476:282;-1:-1:-1;;;;;7476:282:2:o;3590:718::-;2006:9;;-1:-1:-1;;;;;2006:9:2;1992:10;:23;1984:45;;;;-1:-1:-1;;;1984:45:2;;;;;;;:::i;:::-;3922:7:::1;:14;3901:10;:17;:35;3893:69;;;::::0;-1:-1:-1;;;3893:69:2;;18984:2:4;3893:69:2::1;::::0;::::1;18966:21:4::0;19023:2;19003:18;;;18996:30;-1:-1:-1;;;19042:18:4;;;19035:51;19103:18;;3893:69:2::1;18782:345:4::0;3893:69:2::1;3995:6;3991:309;4007:10;:17;4005:1;:19;3991:309;;;4050:12;4067:5;-1:-1:-1::0;;;;;4067:10:2::1;4101;4113;4124:1;4113:13;;;;;;;;:::i;:::-;;;;;;;4128:7;4136:1;4128:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;4078:61:::1;::::0;-1:-1:-1;;;;;21473:32:4;;;4078:61:2::1;::::0;::::1;21455:51:4::0;21522:18;;;21515:34;21428:18;;4078:61:2::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;4078:61:2::1;;;;;;;;;;;4067:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4049:91;;;4167:7;4159:16;;;::::0;::::1;;4266:5;4239:10;4250:1;4239:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4199:85:2::1;4232:5;-1:-1:-1::0;;;;;4199:85:2::1;;4208:10;4220;4254:7;4262:1;4254:10;;;;;;;;:::i;:::-;;;;;;;4273:2;4277;4281;4199:85;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;4026:3:2::1;;3991:309;;14:127:4::0;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:4;247:40;;-1:-1:-1;;;;;302:34:4;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:4:o;426:191::-;494:4;-1:-1:-1;;;;;519:6:4;516:30;513:56;;;549:18;;:::i;:::-;-1:-1:-1;594:1:4;590:14;606:4;586:25;;426:191::o;622:139::-;-1:-1:-1;;;;;705:31:4;;695:42;;685:70;;751:1;748;741:12;685:70;622:139;:::o;766:767::-;828:5;881:3;874:4;866:6;862:17;858:27;848:55;;899:1;896;889:12;848:55;935:6;922:20;961:4;985:68;1001:51;1049:2;1001:51;:::i;:::-;985:68;:::i;:::-;1075:3;1099:2;1094:3;1087:15;1127:4;1122:3;1118:14;1111:21;;1184:4;1178:2;1175:1;1171:10;1163:6;1159:23;1155:34;1141:48;;1212:3;1204:6;1201:15;1198:35;;;1229:1;1226;1219:12;1198:35;1265:4;1257:6;1253:17;1279:225;1295:6;1290:3;1287:15;1279:225;;;1375:3;1362:17;1392:39;1425:5;1392:39;:::i;:::-;1444:18;;1482:12;;;;1312;;1279:225;;;-1:-1:-1;1522:5:4;766:767;-1:-1:-1;;;;;;766:767:4:o;1538:676::-;1592:5;1645:3;1638:4;1630:6;1626:17;1622:27;1612:55;;1663:1;1660;1653:12;1612:55;1699:6;1686:20;1725:4;1749:68;1765:51;1813:2;1765:51;:::i;1749:68::-;1839:3;1863:2;1858:3;1851:15;1891:4;1886:3;1882:14;1875:21;;1948:4;1942:2;1939:1;1935:10;1927:6;1923:23;1919:34;1905:48;;1976:3;1968:6;1965:15;1962:35;;;1993:1;1990;1983:12;1962:35;2029:4;2021:6;2017:17;2043:142;2059:6;2054:3;2051:15;2043:142;;;2125:17;;2113:30;;2163:12;;;;2076;;2043:142;;2219;2287:20;;2316:39;2287:20;2316:39;:::i;:::-;2219:142;;;:::o;2366:531::-;2409:5;2462:3;2455:4;2447:6;2443:17;2439:27;2429:55;;2480:1;2477;2470:12;2429:55;2516:6;2503:20;-1:-1:-1;;;;;2538:2:4;2535:26;2532:52;;;2564:18;;:::i;:::-;2608:55;2651:2;2632:13;;-1:-1:-1;;2628:27:4;2657:4;2624:38;2608:55;:::i;:::-;2688:2;2679:7;2672:19;2734:3;2727:4;2722:2;2714:6;2710:15;2706:26;2703:35;2700:55;;;2751:1;2748;2741:12;2700:55;2816:2;2809:4;2801:6;2797:17;2790:4;2781:7;2777:18;2764:55;2864:1;2839:16;;;2857:4;2835:27;2828:38;;;;2843:7;2366:531;-1:-1:-1;;;2366:531:4:o;2902:1357::-;3103:6;3111;3119;3127;3135;3143;3151;3204:3;3192:9;3183:7;3179:23;3175:33;3172:53;;;3221:1;3218;3211:12;3172:53;3261:9;3248:23;-1:-1:-1;;;;;3331:2:4;3323:6;3320:14;3317:34;;;3347:1;3344;3337:12;3317:34;3370:69;3431:7;3422:6;3411:9;3407:22;3370:69;:::i;:::-;3360:79;;3492:2;3481:9;3477:18;3464:32;3448:48;;3521:2;3511:8;3508:16;3505:36;;;3537:1;3534;3527:12;3505:36;3560:63;3615:7;3604:8;3593:9;3589:24;3560:63;:::i;:::-;3550:73;;3670:2;3659:9;3655:18;3642:32;3632:42;;3693:38;3727:2;3716:9;3712:18;3693:38;:::i;:::-;3683:48;;3784:3;3773:9;3769:19;3756:33;3740:49;;3814:2;3804:8;3801:16;3798:36;;;3830:1;3827;3820:12;3798:36;3853:52;3897:7;3886:8;3875:9;3871:24;3853:52;:::i;:::-;3843:62;;3958:3;3947:9;3943:19;3930:33;3914:49;;3988:2;3978:8;3975:16;3972:36;;;4004:1;4001;3994:12;3972:36;4027:52;4071:7;4060:8;4049:9;4045:24;4027:52;:::i;:::-;4017:62;;4132:3;4121:9;4117:19;4104:33;4088:49;;4162:2;4152:8;4149:16;4146:36;;;4178:1;4175;4168:12;4146:36;;4201:52;4245:7;4234:8;4223:9;4219:24;4201:52;:::i;:::-;4191:62;;;2902:1357;;;;;;;;;;:::o;4264:1052::-;4387:6;4395;4403;4411;4419;4427;4435;4488:3;4476:9;4467:7;4463:23;4459:33;4456:53;;;4505:1;4502;4495:12;4456:53;4544:9;4531:23;4563:39;4596:5;4563:39;:::i;:::-;4621:5;-1:-1:-1;4678:2:4;4663:18;;4650:32;4691:41;4650:32;4691:41;:::i;:::-;4751:7;-1:-1:-1;4810:2:4;4795:18;;4782:32;4823:41;4782:32;4823:41;:::i;:::-;4883:7;-1:-1:-1;4937:2:4;4922:18;;4909:32;;-1:-1:-1;4992:3:4;4977:19;;4964:33;-1:-1:-1;;;;;5009:30:4;;5006:50;;;5052:1;5049;5042:12;5006:50;5075;5117:7;5108:6;5097:9;5093:22;5075:50;:::i;:::-;5065:60;;;5172:3;5161:9;5157:19;5144:33;5134:43;;5229:3;5218:9;5214:19;5201:33;5243:41;5276:7;5243:41;:::i;:::-;5303:7;5293:17;;;4264:1052;;;;;;;;;;:::o;5513:956::-;5638:6;5646;5654;5662;5670;5723:3;5711:9;5702:7;5698:23;5694:33;5691:53;;;5740:1;5737;5730:12;5691:53;5776:9;5763:23;5753:33;;5836:2;5825:9;5821:18;5808:32;5849:39;5882:5;5849:39;:::i;:::-;5907:5;-1:-1:-1;5963:2:4;5948:18;;5935:32;-1:-1:-1;;;;;6016:14:4;;;6013:34;;;6043:1;6040;6033:12;6013:34;6066:50;6108:7;6099:6;6088:9;6084:22;6066:50;:::i;:::-;6056:60;;6169:2;6158:9;6154:18;6141:32;6125:48;;6198:2;6188:8;6185:16;6182:36;;;6214:1;6211;6204:12;6182:36;6237:52;6281:7;6270:8;6259:9;6255:24;6237:52;:::i;:::-;6227:62;;6342:3;6331:9;6327:19;6314:33;6298:49;;6372:2;6362:8;6359:16;6356:36;;;6388:1;6385;6378:12;6356:36;;6411:52;6455:7;6444:8;6433:9;6429:24;6411:52;:::i;:::-;6401:62;;;5513:956;;;;;;;;:::o;6474:1106::-;6626:6;6634;6642;6650;6658;6666;6674;6682;6735:3;6723:9;6714:7;6710:23;6706:33;6703:53;;;6752:1;6749;6742:12;6703:53;6775:29;6794:9;6775:29;:::i;:::-;6765:39;;6823:38;6857:2;6846:9;6842:18;6823:38;:::i;:::-;6813:48;;6908:2;6897:9;6893:18;6880:32;6870:42;;6959:2;6948:9;6944:18;6931:32;6921:42;;6982:39;7016:3;7005:9;7001:19;6982:39;:::i;:::-;6972:49;;7072:3;7061:9;7057:19;7044:33;-1:-1:-1;;;;;7137:2:4;7129:6;7126:14;7123:34;;;7153:1;7150;7143:12;7123:34;7176:50;7218:7;7209:6;7198:9;7194:22;7176:50;:::i;:::-;7166:60;;7279:3;7268:9;7264:19;7251:33;7235:49;;7309:2;7299:8;7296:16;7293:36;;;7325:1;7322;7315:12;7293:36;7348:52;7392:7;7381:8;7370:9;7366:24;7348:52;:::i;:::-;7338:62;;7453:3;7442:9;7438:19;7425:33;7409:49;;7483:2;7473:8;7470:16;7467:36;;;7499:1;7496;7489:12;7467:36;;7522:52;7566:7;7555:8;7544:9;7540:24;7522:52;:::i;:::-;7512:62;;;6474:1106;;;;;;;;;;;:::o;7585:1133::-;7708:6;7716;7724;7732;7740;7748;7756;7809:3;7797:9;7788:7;7784:23;7780:33;7777:53;;;7826:1;7823;7816:12;7777:53;7865:9;7852:23;7884:39;7917:5;7884:39;:::i;:::-;7942:5;-1:-1:-1;7999:2:4;7984:18;;7971:32;8012:41;7971:32;8012:41;:::i;:::-;8072:7;-1:-1:-1;8131:2:4;8116:18;;8103:32;8144:41;8103:32;8144:41;:::i;:::-;8204:7;-1:-1:-1;8258:2:4;8243:18;;8230:32;;-1:-1:-1;8313:3:4;8298:19;;8285:33;-1:-1:-1;;;;;8330:30:4;;8327:50;;;8373:1;8370;8363:12;8327:50;8396;8438:7;8429:6;8418:9;8414:22;8396:50;:::i;:::-;8386:60;;;8498:3;8487:9;8483:19;8470:33;8512:41;8545:7;8512:41;:::i;:::-;8572:7;-1:-1:-1;8631:3:4;8616:19;;8603:33;8645:41;8603:33;8645:41;:::i;8723:367::-;8786:8;8796:6;8850:3;8843:4;8835:6;8831:17;8827:27;8817:55;;8868:1;8865;8858:12;8817:55;-1:-1:-1;8891:20:4;;-1:-1:-1;;;;;8923:30:4;;8920:50;;;8966:1;8963;8956:12;8920:50;9003:4;8995:6;8991:17;8979:29;;9063:3;9056:4;9046:6;9043:1;9039:14;9031:6;9027:27;9023:38;9020:47;9017:67;;;9080:1;9077;9070:12;9017:67;8723:367;;;;;:::o;9095:1328::-;9298:6;9306;9314;9322;9330;9338;9346;9354;9407:3;9395:9;9386:7;9382:23;9378:33;9375:53;;;9424:1;9421;9414:12;9375:53;9464:9;9451:23;-1:-1:-1;;;;;9534:2:4;9526:6;9523:14;9520:34;;;9550:1;9547;9540:12;9520:34;9589:70;9651:7;9642:6;9631:9;9627:22;9589:70;:::i;:::-;9678:8;;-1:-1:-1;9563:96:4;-1:-1:-1;9766:2:4;9751:18;;9738:32;;-1:-1:-1;9782:16:4;;;9779:36;;;9811:1;9808;9801:12;9779:36;9850:72;9914:7;9903:8;9892:9;9888:24;9850:72;:::i;:::-;9941:8;;-1:-1:-1;9824:98:4;-1:-1:-1;10029:2:4;10014:18;;10001:32;;-1:-1:-1;10045:16:4;;;10042:36;;;10074:1;10071;10064:12;10042:36;;10113:72;10177:7;10166:8;10155:9;10151:24;10113:72;:::i;:::-;10204:8;;-1:-1:-1;10087:98:4;-1:-1:-1;;10286:2:4;10271:18;;10258:32;;-1:-1:-1;10340:3:4;10325:19;;10312:33;10354:39;10312:33;10354:39;:::i;:::-;10412:5;10402:15;;;9095:1328;;;;;;;;;;;:::o;10428:1183::-;10579:6;10587;10595;10603;10611;10619;10627;10680:3;10668:9;10659:7;10655:23;10651:33;10648:53;;;10697:1;10694;10687:12;10648:53;10736:9;10723:23;10755:39;10788:5;10755:39;:::i;:::-;10813:5;-1:-1:-1;10865:2:4;10850:18;;10837:32;;-1:-1:-1;10916:2:4;10901:18;;10888:32;;-1:-1:-1;10972:2:4;10957:18;;10944:32;10985:41;10944:32;10985:41;:::i;:::-;11045:7;-1:-1:-1;11103:3:4;11088:19;;11075:33;-1:-1:-1;;;;;11157:14:4;;;11154:34;;;11184:1;11181;11174:12;11824:1094;11967:6;11975;11983;11991;11999;12007;12015;12068:3;12056:9;12047:7;12043:23;12039:33;12036:53;;;12085:1;12082;12075:12;12036:53;12124:9;12111:23;12143:39;12176:5;12143:39;:::i;:::-;12201:5;-1:-1:-1;12253:2:4;12238:18;;12225:32;;-1:-1:-1;12304:2:4;12289:18;;12276:32;;-1:-1:-1;12359:2:4;12344:18;;12331:32;-1:-1:-1;;;;;12412:14:4;;;12409:34;;;12439:1;12436;12429:12;12409:34;12462:50;12504:7;12495:6;12484:9;12480:22;12462:50;:::i;:::-;12452:60;;12565:3;12554:9;12550:19;12537:33;12521:49;;12595:2;12585:8;12582:16;12579:36;;;12611:1;12608;12601:12;12579:36;12634:52;12678:7;12667:8;12656:9;12652:24;12634:52;:::i;:::-;12624:62;;12739:3;12728:9;12724:19;12711:33;12695:49;;12769:2;12759:8;12756:16;12753:36;;;12785:1;12782;12775:12;12753:36;;12808:52;12852:7;12841:8;12830:9;12826:24;12808:52;:::i;:::-;12798:62;;;12907:3;12896:9;12892:19;12879:33;12869:43;;11824:1094;;;;;;;;;;:::o;12923:255::-;12982:6;13035:2;13023:9;13014:7;13010:23;13006:32;13003:52;;;13051:1;13048;13041:12;13003:52;13090:9;13077:23;13109:39;13142:5;13109:39;:::i;:::-;13167:5;12923:255;-1:-1:-1;;;12923:255:4:o;13183:1106::-;13335:6;13343;13351;13359;13367;13375;13383;13391;13444:3;13432:9;13423:7;13419:23;13415:33;13412:53;;;13461:1;13458;13451:12;13412:53;13484:29;13503:9;13484:29;:::i;:::-;13474:39;;13560:2;13549:9;13545:18;13532:32;13522:42;;13583:38;13617:2;13606:9;13602:18;13583:38;:::i;:::-;13573:48;;13668:2;13657:9;13653:18;13640:32;13630:42;;13691:39;13725:3;13714:9;13710:19;13691:39;:::i;15474:1060::-;15596:6;15604;15612;15620;15628;15636;15644;15652;15705:3;15693:9;15684:7;15680:23;15676:33;15673:53;;;15722:1;15719;15712:12;15673:53;15761:9;15748:23;15780:39;15813:5;15780:39;:::i;:::-;15838:5;-1:-1:-1;15890:2:4;15875:18;;15862:32;;-1:-1:-1;15946:2:4;15931:18;;15918:32;15959:41;15918:32;15959:41;:::i;:::-;16019:7;-1:-1:-1;16078:2:4;16063:18;;16050:32;16091:41;16050:32;16091:41;:::i;:::-;16151:7;-1:-1:-1;16205:3:4;16190:19;;16177:33;;-1:-1:-1;16262:3:4;16247:19;;16234:33;16276:41;16234:33;16276:41;:::i;:::-;16336:7;-1:-1:-1;16390:3:4;16375:19;;16362:33;;-1:-1:-1;16447:3:4;16432:19;;16419:33;16461:41;16419:33;16461:41;:::i;16539:472::-;16616:6;16624;16632;16685:2;16673:9;16664:7;16660:23;16656:32;16653:52;;;16701:1;16698;16691:12;16653:52;16740:9;16727:23;16759:39;16792:5;16759:39;:::i;:::-;16817:5;-1:-1:-1;16874:2:4;16859:18;;16846:32;16887:41;16846:32;16887:41;:::i;:::-;16539:472;;16947:7;;-1:-1:-1;;;17001:2:4;16986:18;;;;16973:32;;16539:472::o;17016:1424::-;17218:6;17226;17234;17242;17250;17258;17266;17274;17327:3;17315:9;17306:7;17302:23;17298:33;17295:53;;;17344:1;17341;17334:12;17295:53;17367:29;17386:9;17367:29;:::i;:::-;17357:39;;17447:2;17436:9;17432:18;17419:32;-1:-1:-1;;;;;17511:2:4;17503:6;17500:14;17497:34;;;17527:1;17524;17517:12;17497:34;17550:69;17611:7;17602:6;17591:9;17587:22;17550:69;:::i;:::-;17540:79;;17672:2;17661:9;17657:18;17644:32;17628:48;;17701:2;17691:8;17688:16;17685:36;;;17717:1;17714;17707:12;17685:36;17740:63;17795:7;17784:8;17773:9;17769:24;17740:63;:::i;:::-;17730:73;;17850:2;17839:9;17835:18;17822:32;17812:42;;17873:39;17907:3;17896:9;17892:19;17873:39;:::i;:::-;17863:49;;17965:3;17954:9;17950:19;17937:33;17921:49;;17995:2;17985:8;17982:16;17979:36;;;18011:1;18008;18001:12;18445:332;18647:2;18629:21;;;18686:1;18666:18;;;18659:29;-1:-1:-1;;;18719:2:4;18704:18;;18697:39;18768:2;18753:18;;18445:332::o;19132:127::-;19193:10;19188:3;19184:20;19181:1;19174:31;19224:4;19221:1;19214:15;19248:4;19245:1;19238:15;19264:250;19349:1;19359:113;19373:6;19370:1;19367:13;19359:113;;;19449:11;;;19443:18;19430:11;;;19423:39;19395:2;19388:10;19359:113;;;-1:-1:-1;;19506:1:4;19488:16;;19481:27;19264:250::o;19519:271::-;19561:3;19599:5;19593:12;19626:6;19621:3;19614:19;19642:76;19711:6;19704:4;19699:3;19695:14;19688:4;19681:5;19677:16;19642:76;:::i;:::-;19772:2;19751:15;-1:-1:-1;;19747:29:4;19738:39;;;;19779:4;19734:50;;19519:271;-1:-1:-1;;19519:271:4:o;19795:819::-;-1:-1:-1;;;;;20162:15:4;;;20144:34;;20214:15;;20209:2;20194:18;;20187:43;20261:2;20246:18;;20239:34;;;20309:3;20304:2;20289:18;;20282:31;;;20087:4;;20336:46;;20362:19;;20354:6;20336:46;:::i;:::-;20431:9;20423:6;20419:22;20413:3;20402:9;20398:19;20391:51;20465:33;20491:6;20483;20465:33;:::i;:::-;20451:47;;20547:9;20539:6;20535:22;20529:3;20518:9;20514:19;20507:51;20575:33;20601:6;20593;20575:33;:::i;:::-;20567:41;19795:819;-1:-1:-1;;;;;;;;;19795:819:4:o;20619:375::-;-1:-1:-1;;;;;20877:15:4;;;20859:34;;20929:15;;;;20924:2;20909:18;;20902:43;20976:2;20961:18;;20954:34;;;;20809:2;20794:18;;20619:375::o;20999:277::-;21066:6;21119:2;21107:9;21098:7;21094:23;21090:32;21087:52;;;21135:1;21132;21125:12;21087:52;21167:9;21161:16;21220:5;21213:13;21206:21;21199:5;21196:32;21186:60;;21242:1;21239;21232:12;21742:399;21944:2;21926:21;;;21983:2;21963:18;;;21956:30;22022:34;22017:2;22002:18;;21995:62;-1:-1:-1;;;22088:2:4;22073:18;;22066:33;22131:3;22116:19;;21742:399::o;22146:222::-;22211:9;;;22232:10;;;22229:133;;;22284:10;22279:3;22275:20;22272:1;22265:31;22319:4;22316:1;22309:15;22347:4;22344:1;22337:15;22229:133;22146:222;;;;:::o;22373:980::-;22635:4;22683:3;22672:9;22668:19;22714:6;22703:9;22696:25;22740:2;22778:6;22773:2;22762:9;22758:18;22751:34;22821:3;22816:2;22805:9;22801:18;22794:31;22845:6;22880;22874:13;22911:6;22903;22896:22;22949:3;22938:9;22934:19;22927:26;;22988:2;22980:6;22976:15;22962:29;;23009:1;23019:195;23033:6;23030:1;23027:13;23019:195;;;23098:13;;-1:-1:-1;;;;;23094:39:4;23082:52;;23189:15;;;;23154:12;;;;23130:1;23048:9;23019:195;;;-1:-1:-1;;;;;;;23270:32:4;;;;23265:2;23250:18;;23243:60;-1:-1:-1;;;23334:3:4;23319:19;23312:35;23231:3;22373:980;-1:-1:-1;;;22373:980:4:o;23358:889::-;23453:6;23484:2;23527;23515:9;23506:7;23502:23;23498:32;23495:52;;;23543:1;23540;23533:12;23495:52;23576:9;23570:16;-1:-1:-1;;;;;23601:6:4;23598:30;23595:50;;;23641:1;23638;23631:12;23595:50;23664:22;;23717:4;23709:13;;23705:27;-1:-1:-1;23695:55:4;;23746:1;23743;23736:12;23695:55;23775:2;23769:9;23798:68;23814:51;23862:2;23814:51;:::i;23798:68::-;23900:15;;;23982:1;23978:10;;;;23970:19;;23966:28;;;23931:12;;;;24006:19;;;24003:39;;;24038:1;24035;24028:12;24003:39;24062:11;;;;24082:135;24098:6;24093:3;24090:15;24082:135;;;24164:10;;24152:23;;24115:12;;;;24195;;;;24082:135;;;24236:5;23358:889;-1:-1:-1;;;;;;;23358:889:4:o;24252:644::-;24523:25;;;-1:-1:-1;;;;;24622:15:4;;;24617:2;24602:18;;24595:43;24674:15;;;24669:2;24654:18;;24647:43;24726:15;;24721:2;24706:18;;24699:43;24773:3;24758:19;;24751:35;;;24823:3;24575;24802:19;;24795:32;;;24504:4;;24844:46;;24870:19;;24862:6;24844:46;:::i;:::-;24836:54;24252:644;-1:-1:-1;;;;;;;;24252:644:4:o;24901:645::-;-1:-1:-1;;;;;25174:32:4;;25156:51;;25243:3;25238:2;25223:18;;25216:31;;;-1:-1:-1;;25270:46:4;;25296:19;;25288:6;25270:46;:::i;:::-;25364:9;25356:6;25352:22;25347:2;25336:9;25332:18;25325:50;25398:33;25424:6;25416;25398:33;:::i;:::-;25384:47;;25479:9;25471:6;25467:22;25462:2;25451:9;25447:18;25440:50;25507:33;25533:6;25525;25507:33;:::i;25551:287::-;25680:3;25718:6;25712:13;25734:66;25793:6;25788:3;25781:4;25773:6;25769:17;25734:66;:::i;:::-;25816:16;;;;;25551:287;-1:-1:-1;;25551:287:4:o;25843:653::-;-1:-1:-1;;;;;26170:15:4;;;26152:34;;26222:15;;;26217:2;26202:18;;26195:43;26274:15;;;26269:2;26254:18;;26247:43;26326:15;;26321:2;26306:18;;26299:43;26373:3;26358:19;;26351:35;;;26423:3;26132;26402:19;;26395:32;;;26095:4;;26444:46;;26470:19;;26462:6;26444:46;:::i;27180:545::-;27273:4;27279:6;27339:11;27326:25;27433:2;27429:7;27418:8;27402:14;27398:29;27394:43;27374:18;27370:68;27360:96;;27452:1;27449;27442:12;27360:96;27479:33;;27531:20;;;-1:-1:-1;;;;;;27563:30:4;;27560:50;;;27606:1;27603;27596:12;27560:50;27639:4;27627:17;;-1:-1:-1;27690:1:4;27686:14;;;27670;27666:35;27656:46;;27653:66;;;27715:1;27712;27705:12;29362:861;29719:6;29708:9;29701:25;29791:1;29787;29782:3;29778:11;29774:19;29766:6;29762:32;29757:2;29746:9;29742:18;29735:60;29831:6;29826:2;29815:9;29811:18;29804:34;29874:6;29869:2;29858:9;29854:18;29847:34;29918:3;29912;29901:9;29897:19;29890:32;29682:4;29945:46;29986:3;29975:9;29971:19;29963:6;29945:46;:::i;:::-;30040:9;30032:6;30028:22;30022:3;30011:9;30007:19;30000:51;30074:33;30100:6;30092;30074:33;:::i;:::-;30060:47;;30156:9;30148:6;30144:22;30138:3;30127:9;30123:19;30116:51;30184:33;30210:6;30202;30184:33;:::i;:::-;30176:41;29362:861;-1:-1:-1;;;;;;;;;;29362:861:4:o;30228:891::-;-1:-1:-1;;;;;30623:15:4;;;30605:34;;30675:15;;30670:2;30655:18;;30648:43;30722:2;30707:18;;30700:34;;;30765:2;30750:18;;30743:34;;;30814:3;30808;30793:19;;30786:32;;;30548:4;;30841:46;;30867:19;;30859:6;30841:46;:::i;32475:184::-;32545:6;32598:2;32586:9;32577:7;32573:23;32569:32;32566:52;;;32614:1;32611;32604:12;32566:52;-1:-1:-1;32637:16:4;;32475:184;-1:-1:-1;32475:184:4:o

Swarm Source

ipfs://ca711409117580044c02ece3dd2c07c3c9065a59477ebc139f1fa7622eb75b43

Block Transaction Difficulty 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.