ETH Price: $2,533.04 (-2.66%)

Token

SnowSwap (SNOW)
 

Overview

Max Total Supply

500,000 SNOW

Holders

4,970 (0.00%)

Market

Price

$0.16 @ 0.000063 ETH (+0.18%)

Onchain Market Cap

$80,209.50

Circulating Supply Market Cap

$55,985.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
47.522465444657641943 SNOW

Value
$7.62 ( ~0.00300824271589053 Eth) [0.0095%]
0x7b889039f3ff20c87360993d5669fc8d642be658
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

SnowSwap is designed for low slippage stablecoin swaps and is based on Curve’s AMM.

Market

Volume (24H):$458.91
Market Capitalization:$55,985.00
Circulating Supply:349,664.00 SNOW
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Snow

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-10-08
*/

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

/** 

 _____ _   _ _____  _    _ 
/  ___| \ | |  _  || |  | |
\ `--.|  \| | | | || |  | |
 `--. \ . ` | | | || |/\| |
/\__/ / |\  \ \_/ /\  /\  /
\____/\_| \_/\___/  \/  \/ 
                           

SNOW Token

Forked from COMP and UNI 

Although this contract is based on Compound and Uniswap, SNOW itself has not been audited. 
Use at your own risk! 

*/

contract Snow {
    /// @notice EIP-20 token name for this token
    string public constant name = "SnowSwap";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "SNOW";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 500000e18; // 500,000 Snow

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice The EIP-712 typehash for the permit struct used by the contract
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new Snow token
     * @param account The initial account to grant all the tokens
     */
    constructor(address account) public {
        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Snow::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }
    	
    /**
     * @notice Triggers an approval from owner to spends
     * @param owner The address to approve from
     * @param spender The address to be approved
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @param deadline The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Snow::permit: amount exceeds 96 bits");
        }
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Snow::permit: invalid signature");
        require(signatory == owner, "Snow::permit: unauthorized");
        require(now <= deadline, "Snow::permit: signature expired");
        allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "Snow::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "Snow::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Snow::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Snow::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Snow::delegateBySig: invalid nonce");
        require(now <= expiry, "Snow::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "Snow::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "Snow::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Snow::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Snow::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Snow::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "Snow::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "Snow::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "Snow::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200371f3803806200371f83398181016040526200003791908101906200013f565b6969e10de76676d0800000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6969e10de76676d08000006040516200011991906200017c565b60405180910390a350620001f1565b6000815190506200013981620001d7565b92915050565b6000602082840312156200015257600080fd5b6000620001628482850162000128565b91505092915050565b6200017681620001cd565b82525050565b60006020820190506200019360008301846200016b565b92915050565b6000620001a682620001ad565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620001e28162000199565b8114620001ee57600080fd5b50565b61351e80620002016000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063b4b5ea571161007c578063b4b5ea571461038c578063c3cda520146103bc578063d505accf146103d8578063dd62ed3e146103f4578063e7a324dc14610424578063f1127ed81461044257610137565b806370a08231146102ae578063782d6fe1146102de5780637ecebe001461030e57806395d89b411461033e578063a9059cbb1461035c57610137565b806330adf81f116100ff57806330adf81f146101f6578063313ce56714610214578063587cde1e146102325780635c19a95c146102625780636fcfff451461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806320606b70146101a857806323b872dd146101c6575b600080fd5b610144610473565b6040516101519190612f7d565b60405180910390f35b610174600480360361016f91908101906126a2565b6104ac565b6040516101819190612e17565b60405180910390f35b61019261063e565b60405161019f91906130e1565b60405180910390f35b6101b061064c565b6040516101bd9190612e32565b60405180910390f35b6101e060048036036101db91908101906125b5565b610663565b6040516101ed9190612e17565b60405180910390f35b6101fe6108f5565b60405161020b9190612e32565b60405180910390f35b61021c61090c565b6040516102299190613140565b60405180910390f35b61024c60048036036102479190810190612550565b610911565b6040516102599190612dfc565b60405180910390f35b61027c60048036036102779190810190612550565b610944565b005b61029860048036036102939190810190612550565b610951565b6040516102a591906130fc565b60405180910390f35b6102c860048036036102c39190810190612550565b610974565b6040516102d591906130e1565b60405180910390f35b6102f860048036036102f391908101906126a2565b6109e3565b6040516103059190613176565b60405180910390f35b61032860048036036103239190810190612550565b610df6565b60405161033591906130e1565b60405180910390f35b610346610e0e565b6040516103539190612f7d565b60405180910390f35b610376600480360361037191908101906126a2565b610e47565b6040516103839190612e17565b60405180910390f35b6103a660048036036103a19190810190612550565b610e84565b6040516103b39190613176565b60405180910390f35b6103d660048036036103d191908101906126de565b610f72565b005b6103f260048036036103ed9190810190612604565b611215565b005b61040e60048036036104099190810190612579565b611666565b60405161041b91906130e1565b60405180910390f35b61042c611712565b6040516104399190612e32565b60405180910390f35b61045c60048036036104579190810190612767565b611729565b60405161046a929190613117565b60405180910390f35b6040518060400160405280600881526020017f536e6f775377617000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156104ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610524565b6105218360405180606001604052806025815260200161348f60259139611782565b90505b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161062b919061315b565b60405180910390a3600191505092915050565b6969e10de76676d080000081565b60405161065890612dd2565b604051809103902081565b60008033905060008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006107258560405180606001604052806025815260200161348f60259139611782565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108dc5760006107c983836040518060600160405280603d81526020016133a2603d91396117e0565b9050806000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108d2919061315b565b60405180910390a3505b6108e7878783611851565b600193505050509392505050565b60405161090190612dbd565b604051809103902081565b601281565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61094e3382611c32565b50565b60046020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90612fc1565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610a94576000915050610df0565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b9657600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610df0565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c17576000915050610df0565b600080905060006001830390505b8163ffffffff168163ffffffff161115610d72576000600283830363ffffffff1681610c4d57fe5b0482039050610c5a6124b9565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610d4a57806020015195505050505050610df0565b86816000015163ffffffff161015610d6457819350610d6b565b6001820392505b5050610c25565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60056020528060005260406000206000915090505481565b6040518060400160405280600481526020017f534e4f570000000000000000000000000000000000000000000000000000000081525081565b600080610e6c8360405180606001604052806026815260200161344560269139611782565b9050610e79338583611851565b600191505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610eee576000610f6a565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610f8090612dd2565b60405180910390206040518060400160405280600881526020017f536e6f775377617000000000000000000000000000000000000000000000000081525080519060200120610fcd611df2565b30604051602001610fe19493929190612ef3565b604051602081830303815290604052805190602001209050600060405161100790612de7565b60405180910390208888886040516020016110259493929190612eae565b60405160208183030381529060405280519060200120905060008282604051602001611052929190612d86565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161108f9493929190612f38565b6020604051602081039080840390855afa1580156110b1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613041565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390613061565b60405180910390fd5b874211156111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690613081565b60405180910390fd5b611209818b611c32565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861415611267577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061128c565b6112898660405180606001604052806024815260200161346b60249139611782565b90505b600060405161129a90612dd2565b60405180910390206040518060400160405280600881526020017f536e6f7753776170000000000000000000000000000000000000000000000000815250805190602001206112e7611df2565b306040516020016112fb9493929190612ef3565b604051602081830303815290604052805190602001209050600060405161132190612dbd565b60405180910390208a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161139096959493929190612e4d565b604051602081830303815290604052805190602001209050600082826040516020016113bd929190612d86565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113fa9493929190612f38565b6020604051602081039080840390855afa15801561141c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906130c1565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90613001565b60405180910390fd5b88421115611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906130a1565b60405180910390fd5b846000808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611650919061315b565b60405180910390a3505050505050505050505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161171e90612de7565b604051809103902081565b6003602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd9190612f9f565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183b9190612f9f565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890613021565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890612fe1565b60405180910390fd5b6119ab600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603681526020016133df603691396117e0565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a92600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806030815260200161341560309139611dff565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5c919061315b565b60405180910390a3611c2d600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e75565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611dec828483611e75565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612f9f565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ebf57506000816bffffffffffffffffffffffff16115b1561216b57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612017576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f62576000611fde565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061200582856040518060600160405280602881526020016134b4602891396117e0565b905061201386848484612170565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461216a576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120b5576000612131565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612158828560405180606001604052806027815260200161334760279139611dff565b905061216685848484612170565b5050505b5b505050565b60006121944360405180606001604052806034815260200161336e60349139612463565b905060008463ffffffff1611801561222957508063ffffffff16600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122c45781600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061240c565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612454929190613191565b60405180910390a25050505050565b6000640100000000831082906124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a69190612f9f565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124f6816132d3565b92915050565b60008135905061250b816132ea565b92915050565b60008135905061252081613301565b92915050565b60008135905061253581613318565b92915050565b60008135905061254a8161332f565b92915050565b60006020828403121561256257600080fd5b6000612570848285016124e7565b91505092915050565b6000806040838503121561258c57600080fd5b600061259a858286016124e7565b92505060206125ab858286016124e7565b9150509250929050565b6000806000606084860312156125ca57600080fd5b60006125d8868287016124e7565b93505060206125e9868287016124e7565b92505060406125fa86828701612511565b9150509250925092565b600080600080600080600060e0888a03121561261f57600080fd5b600061262d8a828b016124e7565b975050602061263e8a828b016124e7565b965050604061264f8a828b01612511565b95505060606126608a828b01612511565b94505060806126718a828b0161253b565b93505060a06126828a828b016124fc565b92505060c06126938a828b016124fc565b91505092959891949750929550565b600080604083850312156126b557600080fd5b60006126c3858286016124e7565b92505060206126d485828601612511565b9150509250929050565b60008060008060008060c087890312156126f757600080fd5b600061270589828a016124e7565b965050602061271689828a01612511565b955050604061272789828a01612511565b945050606061273889828a0161253b565b935050608061274989828a016124fc565b92505060a061275a89828a016124fc565b9150509295509295509295565b6000806040838503121561277a57600080fd5b6000612788858286016124e7565b925050602061279985828601612526565b9150509250929050565b6127ac816131ec565b82525050565b6127bb816131fe565b82525050565b6127ca8161320a565b82525050565b6127e16127dc8261320a565b6132b8565b82525050565b60006127f2826131c5565b6127fc81856131d0565b935061280c818560208601613285565b612815816132c2565b840191505092915050565b600061282b826131ba565b61283581856131d0565b9350612845818560208601613285565b61284e816132c2565b840191505092915050565b60006128666002836131e1565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006128a66027836131d0565b91507f536e6f773a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061290c603a836131d0565b91507f536e6f773a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e7366657220746f20746865207a65726f20616464726573730000000000006020830152604082019050919050565b6000612972601a836131d0565b91507f536e6f773a3a7065726d69743a20756e617574686f72697a65640000000000006000830152602082019050919050565b60006129b2603c836131d0565b91507f536e6f773a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e736665722066726f6d20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612a186052836131e1565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612aa46026836131d0565b91507f536e6f773a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0a6043836131e1565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612b966022836131d0565b91507f536e6f773a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612bfc6026836131d0565b91507f536e6f773a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c62603a836131e1565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000612cc8601f836131d0565b91507f536e6f773a3a7065726d69743a207369676e61747572652065787069726564006000830152602082019050919050565b6000612d08601f836131d0565b91507f536e6f773a3a7065726d69743a20696e76616c6964207369676e6174757265006000830152602082019050919050565b612d4481613234565b82525050565b612d538161323e565b82525050565b612d628161324e565b82525050565b612d7181613273565b82525050565b612d808161325b565b82525050565b6000612d9182612859565b9150612d9d82856127d0565b602082019150612dad82846127d0565b6020820191508190509392505050565b6000612dc882612a0b565b9150819050919050565b6000612ddd82612afd565b9150819050919050565b6000612df282612c55565b9150819050919050565b6000602082019050612e1160008301846127a3565b92915050565b6000602082019050612e2c60008301846127b2565b92915050565b6000602082019050612e4760008301846127c1565b92915050565b600060c082019050612e6260008301896127c1565b612e6f60208301886127a3565b612e7c60408301876127a3565b612e896060830186612d3b565b612e966080830185612d3b565b612ea360a0830184612d3b565b979650505050505050565b6000608082019050612ec360008301876127c1565b612ed060208301866127a3565b612edd6040830185612d3b565b612eea6060830184612d3b565b95945050505050565b6000608082019050612f0860008301876127c1565b612f1560208301866127c1565b612f226040830185612d3b565b612f2f60608301846127a3565b95945050505050565b6000608082019050612f4d60008301876127c1565b612f5a6020830186612d59565b612f6760408301856127c1565b612f7460608301846127c1565b95945050505050565b60006020820190508181036000830152612f978184612820565b905092915050565b60006020820190508181036000830152612fb981846127e7565b905092915050565b60006020820190508181036000830152612fda81612899565b9050919050565b60006020820190508181036000830152612ffa816128ff565b9050919050565b6000602082019050818103600083015261301a81612965565b9050919050565b6000602082019050818103600083015261303a816129a5565b9050919050565b6000602082019050818103600083015261305a81612a97565b9050919050565b6000602082019050818103600083015261307a81612b89565b9050919050565b6000602082019050818103600083015261309a81612bef565b9050919050565b600060208201905081810360008301526130ba81612cbb565b9050919050565b600060208201905081810360008301526130da81612cfb565b9050919050565b60006020820190506130f66000830184612d3b565b92915050565b60006020820190506131116000830184612d4a565b92915050565b600060408201905061312c6000830185612d4a565b6131396020830184612d77565b9392505050565b60006020820190506131556000830184612d59565b92915050565b60006020820190506131706000830184612d68565b92915050565b600060208201905061318b6000830184612d77565b92915050565b60006040820190506131a66000830185612d68565b6131b36020830184612d68565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006131f782613214565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061327e8261325b565b9050919050565b60005b838110156132a3578082015181840152602081019050613288565b838111156132b2576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6132dc816131ec565b81146132e757600080fd5b50565b6132f38161320a565b81146132fe57600080fd5b50565b61330a81613234565b811461331557600080fd5b50565b6133218161323e565b811461332c57600080fd5b50565b6133388161324e565b811461334357600080fd5b5056fe536e6f773a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773536e6f773a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473536e6f773a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365536e6f773a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536e6f773a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773536e6f773a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473536e6f773a3a7065726d69743a20616d6f756e7420657863656564732039362062697473536e6f773a3a617070726f76653a20616d6f756e7420657863656564732039362062697473536e6f773a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a365627a7a7231582037dbe86f5a3cb8237c1d8ae77611711a41bce68300376caadc6487ca0d6b7b6a6c6578706572696d656e74616cf564736f6c634300051000400000000000000000000000000822d138aae127789ea42abae034d39f7dcd5dc1

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063b4b5ea571161007c578063b4b5ea571461038c578063c3cda520146103bc578063d505accf146103d8578063dd62ed3e146103f4578063e7a324dc14610424578063f1127ed81461044257610137565b806370a08231146102ae578063782d6fe1146102de5780637ecebe001461030e57806395d89b411461033e578063a9059cbb1461035c57610137565b806330adf81f116100ff57806330adf81f146101f6578063313ce56714610214578063587cde1e146102325780635c19a95c146102625780636fcfff451461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806320606b70146101a857806323b872dd146101c6575b600080fd5b610144610473565b6040516101519190612f7d565b60405180910390f35b610174600480360361016f91908101906126a2565b6104ac565b6040516101819190612e17565b60405180910390f35b61019261063e565b60405161019f91906130e1565b60405180910390f35b6101b061064c565b6040516101bd9190612e32565b60405180910390f35b6101e060048036036101db91908101906125b5565b610663565b6040516101ed9190612e17565b60405180910390f35b6101fe6108f5565b60405161020b9190612e32565b60405180910390f35b61021c61090c565b6040516102299190613140565b60405180910390f35b61024c60048036036102479190810190612550565b610911565b6040516102599190612dfc565b60405180910390f35b61027c60048036036102779190810190612550565b610944565b005b61029860048036036102939190810190612550565b610951565b6040516102a591906130fc565b60405180910390f35b6102c860048036036102c39190810190612550565b610974565b6040516102d591906130e1565b60405180910390f35b6102f860048036036102f391908101906126a2565b6109e3565b6040516103059190613176565b60405180910390f35b61032860048036036103239190810190612550565b610df6565b60405161033591906130e1565b60405180910390f35b610346610e0e565b6040516103539190612f7d565b60405180910390f35b610376600480360361037191908101906126a2565b610e47565b6040516103839190612e17565b60405180910390f35b6103a660048036036103a19190810190612550565b610e84565b6040516103b39190613176565b60405180910390f35b6103d660048036036103d191908101906126de565b610f72565b005b6103f260048036036103ed9190810190612604565b611215565b005b61040e60048036036104099190810190612579565b611666565b60405161041b91906130e1565b60405180910390f35b61042c611712565b6040516104399190612e32565b60405180910390f35b61045c60048036036104579190810190612767565b611729565b60405161046a929190613117565b60405180910390f35b6040518060400160405280600881526020017f536e6f775377617000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156104ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610524565b6105218360405180606001604052806025815260200161348f60259139611782565b90505b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161062b919061315b565b60405180910390a3600191505092915050565b6969e10de76676d080000081565b60405161065890612dd2565b604051809103902081565b60008033905060008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006107258560405180606001604052806025815260200161348f60259139611782565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108dc5760006107c983836040518060600160405280603d81526020016133a2603d91396117e0565b9050806000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108d2919061315b565b60405180910390a3505b6108e7878783611851565b600193505050509392505050565b60405161090190612dbd565b604051809103902081565b601281565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61094e3382611c32565b50565b60046020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90612fc1565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610a94576000915050610df0565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b9657600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610df0565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c17576000915050610df0565b600080905060006001830390505b8163ffffffff168163ffffffff161115610d72576000600283830363ffffffff1681610c4d57fe5b0482039050610c5a6124b9565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610d4a57806020015195505050505050610df0565b86816000015163ffffffff161015610d6457819350610d6b565b6001820392505b5050610c25565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60056020528060005260406000206000915090505481565b6040518060400160405280600481526020017f534e4f570000000000000000000000000000000000000000000000000000000081525081565b600080610e6c8360405180606001604052806026815260200161344560269139611782565b9050610e79338583611851565b600191505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610eee576000610f6a565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610f8090612dd2565b60405180910390206040518060400160405280600881526020017f536e6f775377617000000000000000000000000000000000000000000000000081525080519060200120610fcd611df2565b30604051602001610fe19493929190612ef3565b604051602081830303815290604052805190602001209050600060405161100790612de7565b60405180910390208888886040516020016110259493929190612eae565b60405160208183030381529060405280519060200120905060008282604051602001611052929190612d86565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161108f9493929190612f38565b6020604051602081039080840390855afa1580156110b1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613041565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390613061565b60405180910390fd5b874211156111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690613081565b60405180910390fd5b611209818b611c32565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861415611267577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061128c565b6112898660405180606001604052806024815260200161346b60249139611782565b90505b600060405161129a90612dd2565b60405180910390206040518060400160405280600881526020017f536e6f7753776170000000000000000000000000000000000000000000000000815250805190602001206112e7611df2565b306040516020016112fb9493929190612ef3565b604051602081830303815290604052805190602001209050600060405161132190612dbd565b60405180910390208a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161139096959493929190612e4d565b604051602081830303815290604052805190602001209050600082826040516020016113bd929190612d86565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113fa9493929190612f38565b6020604051602081039080840390855afa15801561141c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906130c1565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd90613001565b60405180910390fd5b88421115611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540906130a1565b60405180910390fd5b846000808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611650919061315b565b60405180910390a3505050505050505050505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161171e90612de7565b604051809103902081565b6003602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd9190612f9f565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183b9190612f9f565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890613021565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890612fe1565b60405180910390fd5b6119ab600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603681526020016133df603691396117e0565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a92600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806030815260200161341560309139611dff565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5c919061315b565b60405180910390a3611c2d600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e75565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611dec828483611e75565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612f9f565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ebf57506000816bffffffffffffffffffffffff16115b1561216b57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612017576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f62576000611fde565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061200582856040518060600160405280602881526020016134b4602891396117e0565b905061201386848484612170565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461216a576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120b5576000612131565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612158828560405180606001604052806027815260200161334760279139611dff565b905061216685848484612170565b5050505b5b505050565b60006121944360405180606001604052806034815260200161336e60349139612463565b905060008463ffffffff1611801561222957508063ffffffff16600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122c45781600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061240c565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612454929190613191565b60405180910390a25050505050565b6000640100000000831082906124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a69190612f9f565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124f6816132d3565b92915050565b60008135905061250b816132ea565b92915050565b60008135905061252081613301565b92915050565b60008135905061253581613318565b92915050565b60008135905061254a8161332f565b92915050565b60006020828403121561256257600080fd5b6000612570848285016124e7565b91505092915050565b6000806040838503121561258c57600080fd5b600061259a858286016124e7565b92505060206125ab858286016124e7565b9150509250929050565b6000806000606084860312156125ca57600080fd5b60006125d8868287016124e7565b93505060206125e9868287016124e7565b92505060406125fa86828701612511565b9150509250925092565b600080600080600080600060e0888a03121561261f57600080fd5b600061262d8a828b016124e7565b975050602061263e8a828b016124e7565b965050604061264f8a828b01612511565b95505060606126608a828b01612511565b94505060806126718a828b0161253b565b93505060a06126828a828b016124fc565b92505060c06126938a828b016124fc565b91505092959891949750929550565b600080604083850312156126b557600080fd5b60006126c3858286016124e7565b92505060206126d485828601612511565b9150509250929050565b60008060008060008060c087890312156126f757600080fd5b600061270589828a016124e7565b965050602061271689828a01612511565b955050604061272789828a01612511565b945050606061273889828a0161253b565b935050608061274989828a016124fc565b92505060a061275a89828a016124fc565b9150509295509295509295565b6000806040838503121561277a57600080fd5b6000612788858286016124e7565b925050602061279985828601612526565b9150509250929050565b6127ac816131ec565b82525050565b6127bb816131fe565b82525050565b6127ca8161320a565b82525050565b6127e16127dc8261320a565b6132b8565b82525050565b60006127f2826131c5565b6127fc81856131d0565b935061280c818560208601613285565b612815816132c2565b840191505092915050565b600061282b826131ba565b61283581856131d0565b9350612845818560208601613285565b61284e816132c2565b840191505092915050565b60006128666002836131e1565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006128a66027836131d0565b91507f536e6f773a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061290c603a836131d0565b91507f536e6f773a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e7366657220746f20746865207a65726f20616464726573730000000000006020830152604082019050919050565b6000612972601a836131d0565b91507f536e6f773a3a7065726d69743a20756e617574686f72697a65640000000000006000830152602082019050919050565b60006129b2603c836131d0565b91507f536e6f773a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e736665722066726f6d20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612a186052836131e1565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612aa46026836131d0565b91507f536e6f773a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0a6043836131e1565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612b966022836131d0565b91507f536e6f773a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612bfc6026836131d0565b91507f536e6f773a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c62603a836131e1565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000612cc8601f836131d0565b91507f536e6f773a3a7065726d69743a207369676e61747572652065787069726564006000830152602082019050919050565b6000612d08601f836131d0565b91507f536e6f773a3a7065726d69743a20696e76616c6964207369676e6174757265006000830152602082019050919050565b612d4481613234565b82525050565b612d538161323e565b82525050565b612d628161324e565b82525050565b612d7181613273565b82525050565b612d808161325b565b82525050565b6000612d9182612859565b9150612d9d82856127d0565b602082019150612dad82846127d0565b6020820191508190509392505050565b6000612dc882612a0b565b9150819050919050565b6000612ddd82612afd565b9150819050919050565b6000612df282612c55565b9150819050919050565b6000602082019050612e1160008301846127a3565b92915050565b6000602082019050612e2c60008301846127b2565b92915050565b6000602082019050612e4760008301846127c1565b92915050565b600060c082019050612e6260008301896127c1565b612e6f60208301886127a3565b612e7c60408301876127a3565b612e896060830186612d3b565b612e966080830185612d3b565b612ea360a0830184612d3b565b979650505050505050565b6000608082019050612ec360008301876127c1565b612ed060208301866127a3565b612edd6040830185612d3b565b612eea6060830184612d3b565b95945050505050565b6000608082019050612f0860008301876127c1565b612f1560208301866127c1565b612f226040830185612d3b565b612f2f60608301846127a3565b95945050505050565b6000608082019050612f4d60008301876127c1565b612f5a6020830186612d59565b612f6760408301856127c1565b612f7460608301846127c1565b95945050505050565b60006020820190508181036000830152612f978184612820565b905092915050565b60006020820190508181036000830152612fb981846127e7565b905092915050565b60006020820190508181036000830152612fda81612899565b9050919050565b60006020820190508181036000830152612ffa816128ff565b9050919050565b6000602082019050818103600083015261301a81612965565b9050919050565b6000602082019050818103600083015261303a816129a5565b9050919050565b6000602082019050818103600083015261305a81612a97565b9050919050565b6000602082019050818103600083015261307a81612b89565b9050919050565b6000602082019050818103600083015261309a81612bef565b9050919050565b600060208201905081810360008301526130ba81612cbb565b9050919050565b600060208201905081810360008301526130da81612cfb565b9050919050565b60006020820190506130f66000830184612d3b565b92915050565b60006020820190506131116000830184612d4a565b92915050565b600060408201905061312c6000830185612d4a565b6131396020830184612d77565b9392505050565b60006020820190506131556000830184612d59565b92915050565b60006020820190506131706000830184612d68565b92915050565b600060208201905061318b6000830184612d77565b92915050565b60006040820190506131a66000830185612d68565b6131b36020830184612d68565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006131f782613214565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061327e8261325b565b9050919050565b60005b838110156132a3578082015181840152602081019050613288565b838111156132b2576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6132dc816131ec565b81146132e757600080fd5b50565b6132f38161320a565b81146132fe57600080fd5b50565b61330a81613234565b811461331557600080fd5b50565b6133218161323e565b811461332c57600080fd5b50565b6133388161324e565b811461334357600080fd5b5056fe536e6f773a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773536e6f773a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473536e6f773a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365536e6f773a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536e6f773a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773536e6f773a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473536e6f773a3a7065726d69743a20616d6f756e7420657863656564732039362062697473536e6f773a3a617070726f76653a20616d6f756e7420657863656564732039362062697473536e6f773a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a365627a7a7231582037dbe86f5a3cb8237c1d8ae77611711a41bce68300376caadc6487ca0d6b7b6a6c6578706572696d656e74616cf564736f6c63430005100040

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

0000000000000000000000000822d138aae127789ea42abae034d39f7dcd5dc1

-----Decoded View---------------
Arg [0] : account (address): 0x0822d138AaE127789eA42Abae034D39f7dcD5DC1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000822d138aae127789ea42abae034d39f7dcd5dc1


Deployed Bytecode Sourcemap

444:14597:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;444:14597:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:40;;;:::i;:::-;;;;;;;;;;;;;;;;4279:419;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;816:44;;;:::i;:::-;;;;;;;;;;;;;;;;1741:122;;;:::i;:::-;;;;;;;;;;;;;;;;7364:672;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2164:137;;;:::i;:::-;;;;;;;;;;;;;;;;717:35;;;:::i;:::-;;;;;;;;;;;;;;;;1191:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8184:102;;;;;;;;;;;;;;;;:::i;:::-;;1619:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6444:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10363:1218;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2382:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;616:38;;;:::i;:::-;;;;;;;;;;;;;;;;6816:238;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9710:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8720:789;;;;;;;;;;;;;;;;:::i;:::-;;5193:1048;;;;;;;;;;;;;;;;:::i;:::-;;3665:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1957:117;;;:::i;:::-;;;;;;;;;;;;;;;;1480:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;515:40;;;;;;;;;;;;;;;;;;;:::o;4279:419::-;4347:4;4364:13;4410:2;4392:9;:21;4388:173;;;4446:2;4430:19;;4388:173;;;4491:58;4498:9;4491:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;4482:67;;4388:173;4607:6;4573:10;:22;4584:10;4573:22;;;;;;;;;;;;;;;:31;4596:7;4573:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;4652:7;4631:37;;4640:10;4631:37;;;4661:6;4631:37;;;;;;;;;;;;;;;4686:4;4679:11;;;4279:419;;;;:::o;816:44::-;851:9;816:44;:::o;1741:122::-;1783:80;;;;;;;;;;;;;;1741:122;:::o;7364:672::-;7446:4;7463:15;7481:10;7463:28;;7502:23;7528:10;:15;7539:3;7528:15;;;;;;;;;;;;;;;:24;7544:7;7528:24;;;;;;;;;;;;;;;;;;;;;;;;;7502:50;;7563:13;7579:58;7586:9;7579:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;7563:74;;7665:3;7654:14;;:7;:14;;;;:48;;;;;7699:2;7672:30;;:16;:30;;;;7654:48;7650:311;;;7719:19;7741:96;7747:16;7765:6;7741:96;;;;;;;;;;;;;;;;;:5;:96::i;:::-;7719:118;;7879:12;7852:10;:15;7863:3;7852:15;;;;;;;;;;;;;;;:24;7868:7;7852:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7927:7;7913:36;;7922:3;7913:36;;;7936:12;7913:36;;;;;;;;;;;;;;;7650:311;;7973:33;7989:3;7994;7999:6;7973:15;:33::i;:::-;8024:4;8017:11;;;;;7364:672;;;;;:::o;2164:137::-;2206:95;;;;;;;;;;;;;;2164:137;:::o;717:35::-;750:2;717:35;:::o;1191:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8184:102::-;8246:32;8256:10;8268:9;8246;:32::i;:::-;8184:102;:::o;1619:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6444:108::-;6503:4;6527:8;:17;6536:7;6527:17;;;;;;;;;;;;;;;;;;;;;;;;;6520:24;;;;6444:108;;;:::o;10363:1218::-;10442:6;10483:12;10469:11;:26;10461:78;;;;;;;;;;;;;;;;;;;;;;10552:19;10574:14;:23;10589:7;10574:23;;;;;;;;;;;;;;;;;;;;;;;;;10552:45;;10628:1;10612:12;:17;;;10608:58;;;10653:1;10646:8;;;;;10608:58;10778:11;10726;:20;10738:7;10726:20;;;;;;;;;;;;;;;:38;10762:1;10747:12;:16;10726:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;10722:147;;10813:11;:20;10825:7;10813:20;;;;;;;;;;;;;;;:38;10849:1;10834:12;:16;10813:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;10806:51;;;;;10722:147;10966:11;10930;:20;10942:7;10930:20;;;;;;;;;;;;;;;:23;10951:1;10930:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;10926:88;;;11001:1;10994:8;;;;;10926:88;11026:12;11041:1;11026:16;;11053:12;11083:1;11068:12;:16;11053:31;;11095:428;11110:5;11102:13;;:5;:13;;;11095:428;;;11132:13;11174:1;11165:5;11157;:13;11156:19;;;;;;;;11148:5;:27;11132:43;;11217:20;;:::i;:::-;11240:11;:20;11252:7;11240:20;;;;;;;;;;;;;;;:28;11261:6;11240:28;;;;;;;;;;;;;;;11217:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11303:11;11287:2;:12;;;:27;;;11283:229;;;11342:2;:8;;;11335:15;;;;;;;;;11283:229;11391:11;11376:2;:12;;;:26;;;11372:140;;;11431:6;11423:14;;11372:140;;;11495:1;11486:6;:10;11478:18;;11372:140;11095:428;;;;;11540:11;:20;11552:7;11540:20;;;;;;;;;;;;;;;:27;11561:5;11540:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;11533:40;;;;;10363:1218;;;;;:::o;2382:39::-;;;;;;;;;;;;;;;;;:::o;616:38::-;;;;;;;;;;;;;;;;;;;:::o;6816:238::-;6881:4;6898:13;6914:59;6921:9;6914:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;6898:75;;6984:40;7000:10;7012:3;7017:6;6984:15;:40::i;:::-;7042:4;7035:11;;;6816:238;;;;:::o;9710:222::-;9775:6;9794:19;9816:14;:23;9831:7;9816:23;;;;;;;;;;;;;;;;;;;;;;;;;9794:45;;9872:1;9857:12;:16;;;:67;;9923:1;9857:67;;;9876:11;:20;9888:7;9876:20;;;;;;;;;;;;;;;:38;9912:1;9897:12;:16;9876:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;9857:67;9850:74;;;9710:222;;;:::o;8720:789::-;8836:23;1783:80;;;;;;;;;;;;;;8916:4;;;;;;;;;;;;;;;;;8900:22;;;;;;8924:12;:10;:12::i;:::-;8946:4;8872:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8872:80:0;;;8862:91;;;;;;8836:117;;8964:18;2003:71;;;;;;;;;;;;;;9027:9;9038:5;9045:6;8995:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8995:57:0;;;8985:68;;;;;;8964:89;;9064:14;9120:15;9137:10;9091:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9091:57:0;;;9081:68;;;;;;9064:85;;9160:17;9180:26;9190:6;9198:1;9201;9204;9180:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9180:26:0;;;;;;;;9160:46;;9246:1;9225:23;;:9;:23;;;;9217:74;;;;;;;;;;;;;;;;;;;;;;9319:6;:17;9326:9;9319:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;9310:5;:28;9302:75;;;;;;;;;;;;;;;;;;;;;;9403:6;9396:3;:13;;9388:64;;;;;;;;;;;;;;;;;;;;;;9470:31;9480:9;9491;9470;:31::i;:::-;9463:38;;;;8720:789;;;;;;:::o;5193:1048::-;5323:13;5369:2;5351:9;:21;5347:172;;;5405:2;5389:19;;5347:172;;;5450:57;5457:9;5450:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;5441:66;;5347:172;5529:23;1783:80;;;;;;;;;;;;;;5609:4;;;;;;;;;;;;;;;;;5593:22;;;;;;5617:12;:10;:12::i;:::-;5639:4;5565:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5565:80:0;;;5555:91;;;;;;5529:117;;5657:18;2206:95;;;;;;;;;;;;;;5716:5;5723:7;5732:9;5743:6;:13;5750:5;5743:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;5760:8;5688:81;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5688:81:0;;;5678:92;;;;;;5657:113;;5781:14;5837:15;5854:10;5808:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5808:57:0;;;5798:68;;;;;;5781:85;;5877:17;5897:26;5907:6;5915:1;5918;5921;5897:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5897:26:0;;;;;;;;5877:46;;5963:1;5942:23;;:9;:23;;;;5934:67;;;;;;;;;;;;;;;;;;;;;;6033:5;6020:18;;:9;:18;;;6012:57;;;;;;;;;;;;;;;;;;;;;;6095:8;6088:3;:15;;6080:59;;;;;;;;;;;;;;;;;;;;;;6179:6;6150:10;:17;6161:5;6150:17;;;;;;;;;;;;;;;:26;6168:7;6150:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;6217:7;6201:32;;6210:5;6201:32;;;6226:6;6201:32;;;;;;;;;;;;;;;5193:1048;;;;;;;;;;;;:::o;3665:136::-;3741:4;3765:10;:19;3776:7;3765:19;;;;;;;;;;;;;;;:28;3785:7;3765:28;;;;;;;;;;;;;;;;;;;;;;;;;3758:35;;;;3665:136;;;;:::o;1957:117::-;2003:71;;;;;;;;;;;;;;1957:117;:::o;1480:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14347:161::-;14422:6;14453:5;14449:1;:9;14460:12;14441:32;;;;;;;;;;;;;;;;;;;;;;;;;14498:1;14484:16;;14347:161;;;;:::o;14712:165::-;14798:6;14830:1;14825:6;;:1;:6;;;;14833:12;14817:29;;;;;;;;;;;;;;;;;;;;;;;;;14868:1;14864;:5;14857:12;;14712:165;;;;;:::o;11972:614::-;12081:1;12066:17;;:3;:17;;;;12058:90;;;;;;;;;;;;;;;;;;;;;;12182:1;12167:17;;:3;:17;;;;12159:88;;;;;;;;;;;;;;;;;;;;;;12276:86;12282:8;:13;12291:3;12282:13;;;;;;;;;;;;;;;;;;;;;;;;;12297:6;12276:86;;;;;;;;;;;;;;;;;:5;:86::i;:::-;12260:8;:13;12269:3;12260:13;;;;;;;;;;;;;;;;:102;;;;;;;;;;;;;;;;;;12389:80;12395:8;:13;12404:3;12395:13;;;;;;;;;;;;;;;;;;;;;;;;;12410:6;12389:80;;;;;;;;;;;;;;;;;:5;:80::i;:::-;12373:8;:13;12382:3;12373:13;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;12499:3;12485:26;;12494:3;12485:26;;;12504:6;12485:26;;;;;;;;;;;;;;;12524:54;12539:9;:14;12549:3;12539:14;;;;;;;;;;;;;;;;;;;;;;;;;12555:9;:14;12565:3;12555:14;;;;;;;;;;;;;;;;;;;;;;;;;12571:6;12524:14;:54::i;:::-;11972:614;;;:::o;11589:375::-;11666:23;11692:9;:20;11702:9;11692:20;;;;;;;;;;;;;;;;;;;;;;;;;11666:46;;11723:23;11749:8;:19;11758:9;11749:19;;;;;;;;;;;;;;;;;;;;;;;;;11723:45;;11802:9;11779;:20;11789:9;11779:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11873:9;11829:54;;11856:15;11829:54;;11845:9;11829:54;;;;;;;;;;;;11896:60;11911:15;11928:9;11939:16;11896:14;:60::i;:::-;11589:375;;;;:::o;14885:153::-;14930:4;14947:15;14995:9;14984:20;;15023:7;15016:14;;;14885:153;:::o;14516:188::-;14602:6;14621:8;14636:1;14632;:5;14621:16;;14661:1;14656:6;;:1;:6;;;;14664:12;14648:29;;;;;;;;;;;;;;;;;;;;;;;;;14695:1;14688:8;;;14516:188;;;;;:::o;12594:939::-;12699:6;12689:16;;:6;:16;;;;:30;;;;;12718:1;12709:6;:10;;;12689:30;12685:841;;;12758:1;12740:20;;:6;:20;;;12736:382;;12781:16;12800:14;:22;12815:6;12800:22;;;;;;;;;;;;;;;;;;;;;;;;;12781:41;;12841:16;12872:1;12860:9;:13;;;:60;;12919:1;12860:60;;;12876:11;:19;12888:6;12876:19;;;;;;;;;;;;;;;:34;12908:1;12896:9;:13;12876:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;12860:60;12841:79;;12939:16;12958:68;12964:9;12975:6;12958:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;12939:87;;13045:57;13062:6;13070:9;13081;13092;13045:16;:57::i;:::-;12736:382;;;;13156:1;13138:20;;:6;:20;;;13134:381;;13179:16;13198:14;:22;13213:6;13198:22;;;;;;;;;;;;;;;;;;;;;;;;;13179:41;;13239:16;13270:1;13258:9;:13;;;:60;;13317:1;13258:60;;;13274:11;:19;13286:6;13274:19;;;;;;;;;;;;;;;:34;13306:1;13294:9;:13;13274:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;13258:60;13239:79;;13337:16;13356:67;13362:9;13373:6;13356:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;13337:86;;13442:57;13459:6;13467:9;13478;13489;13442:16;:57::i;:::-;13134:381;;;;12685:841;12594:939;;;:::o;13541:629::-;13659:18;13680:76;13687:12;13680:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;13659:97;;13786:1;13771:12;:16;;;:85;;;;;13845:11;13791:65;;:11;:22;13803:9;13791:22;;;;;;;;;;;;;;;:40;13829:1;13814:12;:16;13791:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;13771:85;13767:329;;;13920:8;13871:11;:22;13883:9;13871:22;;;;;;;;;;;;;;;:40;13909:1;13894:12;:16;13871:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;13767:329;;;13996:33;;;;;;;;14007:11;13996:33;;;;;;14020:8;13996:33;;;;;13957:11;:22;13969:9;13957:22;;;;;;;;;;;;;;;:36;13980:12;13957:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14085:1;14070:12;:16;14042:14;:25;14057:9;14042:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13767:329;14132:9;14111:51;;;14143:8;14153;14111:51;;;;;;;;;;;;;;;;13541:629;;;;;:::o;14178:161::-;14253:6;14284:5;14280:1;:9;14291:12;14272:32;;;;;;;;;;;;;;;;;;;;;;;;;14329:1;14315:16;;14178:161;;;;:::o;444:14597::-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:130;;222:6;209:20;200:29;;234:33;261:5;234:33;;;194:78;;;;;279:130;;359:6;346:20;337:29;;371:33;398:5;371:33;;;331:78;;;;;416:128;;495:6;482:20;473:29;;507:32;533:5;507:32;;;467:77;;;;;551:126;;629:6;616:20;607:29;;641:31;666:5;641:31;;;601:76;;;;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;892:6;881:9;877:22;856:53;;;846:63;;818:97;750:175;;;;;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1157:6;1146:9;1142:22;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1547:6;1536:9;1532:22;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2112:6;2101:9;2097:22;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3026:6;3015:9;3011:22;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;;3088:63;;3059:98;2884:283;;;;;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3466:6;3455:9;3451:22;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4270:6;4259:9;4255:22;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;;4332:62;;4303:97;4128:282;;;;;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;;4609:3;4602:34;4596:45;;;4648:113;4731:24;4749:5;4731:24;;;4726:3;4719:37;4713:48;;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;;4864:3;4857:58;4851:69;;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5234:3;5230:39;5223:46;;5019:255;;;;;;5281:339;;5389:35;5418:5;5389:35;;;5436:71;5500:6;5495:3;5436:71;;;5429:78;;5512:52;5557:6;5552:3;5545:4;5538:5;5534:16;5512:52;;;5585:29;5607:6;5585:29;;;5580:3;5576:39;5569:46;;5369:251;;;;;;5628:398;;5806:84;5888:1;5883:3;5806:84;;;5799:91;;5923:66;5919:1;5914:3;5910:11;5903:87;6018:1;6013:3;6009:11;6002:18;;5792:234;;;;6035:376;;6195:67;6259:2;6254:3;6195:67;;;6188:74;;6295:34;6291:1;6286:3;6282:11;6275:55;6364:9;6359:2;6354:3;6350:12;6343:31;6402:2;6397:3;6393:12;6386:19;;6181:230;;;;6420:395;;6580:67;6644:2;6639:3;6580:67;;;6573:74;;6680:34;6676:1;6671:3;6667:11;6660:55;6749:28;6744:2;6739:3;6735:12;6728:50;6806:2;6801:3;6797:12;6790:19;;6566:249;;;;6824:326;;6984:67;7048:2;7043:3;6984:67;;;6977:74;;7084:28;7080:1;7075:3;7071:11;7064:49;7141:2;7136:3;7132:12;7125:19;;6970:180;;;;7159:397;;7319:67;7383:2;7378:3;7319:67;;;7312:74;;7419:34;7415:1;7410:3;7406:11;7399:55;7488:30;7483:2;7478:3;7474:12;7467:52;7547:2;7542:3;7538:12;7531:19;;7305:251;;;;7565:492;;7743:85;7825:2;7820:3;7743:85;;;7736:92;;7861:34;7857:1;7852:3;7848:11;7841:55;7930:34;7925:2;7920:3;7916:12;7909:56;7999:20;7994:2;7989:3;7985:12;7978:42;8048:2;8043:3;8039:12;8032:19;;7729:328;;;;8066:375;;8226:67;8290:2;8285:3;8226:67;;;8219:74;;8326:34;8322:1;8317:3;8313:11;8306:55;8395:8;8390:2;8385:3;8381:12;8374:30;8432:2;8427:3;8423:12;8416:19;;8212:229;;;;8450:477;;8628:85;8710:2;8705:3;8628:85;;;8621:92;;8746:34;8742:1;8737:3;8733:11;8726:55;8815:34;8810:2;8805:3;8801:12;8794:56;8884:5;8879:2;8874:3;8870:12;8863:27;8918:2;8913:3;8909:12;8902:19;;8614:313;;;;8936:371;;9096:67;9160:2;9155:3;9096:67;;;9089:74;;9196:34;9192:1;9187:3;9183:11;9176:55;9265:4;9260:2;9255:3;9251:12;9244:26;9298:2;9293:3;9289:12;9282:19;;9082:225;;;;9316:375;;9476:67;9540:2;9535:3;9476:67;;;9469:74;;9576:34;9572:1;9567:3;9563:11;9556:55;9645:8;9640:2;9635:3;9631:12;9624:30;9682:2;9677:3;9673:12;9666:19;;9462:229;;;;9700:431;;9878:85;9960:2;9955:3;9878:85;;;9871:92;;9996:34;9992:1;9987:3;9983:11;9976:55;10065:28;10060:2;10055:3;10051:12;10044:50;10122:2;10117:3;10113:12;10106:19;;9864:267;;;;10140:331;;10300:67;10364:2;10359:3;10300:67;;;10293:74;;10400:33;10396:1;10391:3;10387:11;10380:54;10462:2;10457:3;10453:12;10446:19;;10286:185;;;;10480:331;;10640:67;10704:2;10699:3;10640:67;;;10633:74;;10740:33;10736:1;10731:3;10727:11;10720:54;10802:2;10797:3;10793:12;10786:19;;10626:185;;;;10819:113;10902:24;10920:5;10902:24;;;10897:3;10890:37;10884:48;;;10939:110;11020:23;11037:5;11020:23;;;11015:3;11008:36;11002:47;;;11056:107;11135:22;11151:5;11135:22;;;11130:3;11123:35;11117:46;;;11170:124;11252:36;11282:5;11252:36;;;11247:3;11240:49;11234:60;;;11301:110;11382:23;11399:5;11382:23;;;11377:3;11370:36;11364:47;;;11418:650;;11673:148;11817:3;11673:148;;;11666:155;;11832:75;11903:3;11894:6;11832:75;;;11929:2;11924:3;11920:12;11913:19;;11943:75;12014:3;12005:6;11943:75;;;12040:2;12035:3;12031:12;12024:19;;12060:3;12053:10;;11654:414;;;;;;12075:372;;12274:148;12418:3;12274:148;;;12267:155;;12439:3;12432:10;;12255:192;;;;12454:372;;12653:148;12797:3;12653:148;;;12646:155;;12818:3;12811:10;;12634:192;;;;12833:372;;13032:148;13176:3;13032:148;;;13025:155;;13197:3;13190:10;;13013:192;;;;13212:213;;13330:2;13319:9;13315:18;13307:26;;13344:71;13412:1;13401:9;13397:17;13388:6;13344:71;;;13301:124;;;;;13432:201;;13544:2;13533:9;13529:18;13521:26;;13558:65;13620:1;13609:9;13605:17;13596:6;13558:65;;;13515:118;;;;;13640:213;;13758:2;13747:9;13743:18;13735:26;;13772:71;13840:1;13829:9;13825:17;13816:6;13772:71;;;13729:124;;;;;13860:771;;14118:3;14107:9;14103:19;14095:27;;14133:71;14201:1;14190:9;14186:17;14177:6;14133:71;;;14215:72;14283:2;14272:9;14268:18;14259:6;14215:72;;;14298;14366:2;14355:9;14351:18;14342:6;14298:72;;;14381;14449:2;14438:9;14434:18;14425:6;14381:72;;;14464:73;14532:3;14521:9;14517:19;14508:6;14464:73;;;14548;14616:3;14605:9;14601:19;14592:6;14548:73;;;14089:542;;;;;;;;;;14638:547;;14840:3;14829:9;14825:19;14817:27;;14855:71;14923:1;14912:9;14908:17;14899:6;14855:71;;;14937:72;15005:2;14994:9;14990:18;14981:6;14937:72;;;15020;15088:2;15077:9;15073:18;15064:6;15020:72;;;15103;15171:2;15160:9;15156:18;15147:6;15103:72;;;14811:374;;;;;;;;15192:547;;15394:3;15383:9;15379:19;15371:27;;15409:71;15477:1;15466:9;15462:17;15453:6;15409:71;;;15491:72;15559:2;15548:9;15544:18;15535:6;15491:72;;;15574;15642:2;15631:9;15627:18;15618:6;15574:72;;;15657;15725:2;15714:9;15710:18;15701:6;15657:72;;;15365:374;;;;;;;;15746:539;;15944:3;15933:9;15929:19;15921:27;;15959:71;16027:1;16016:9;16012:17;16003:6;15959:71;;;16041:68;16105:2;16094:9;16090:18;16081:6;16041:68;;;16120:72;16188:2;16177:9;16173:18;16164:6;16120:72;;;16203;16271:2;16260:9;16256:18;16247:6;16203:72;;;15915:370;;;;;;;;16292:293;;16426:2;16415:9;16411:18;16403:26;;16476:9;16470:4;16466:20;16462:1;16451:9;16447:17;16440:47;16501:74;16570:4;16561:6;16501:74;;;16493:82;;16397:188;;;;;16592:301;;16730:2;16719:9;16715:18;16707:26;;16780:9;16774:4;16770:20;16766:1;16755:9;16751:17;16744:47;16805:78;16878:4;16869:6;16805:78;;;16797:86;;16701:192;;;;;16900:407;;17091:2;17080:9;17076:18;17068:26;;17141:9;17135:4;17131:20;17127:1;17116:9;17112:17;17105:47;17166:131;17292:4;17166:131;;;17158:139;;17062:245;;;;17314:407;;17505:2;17494:9;17490:18;17482:26;;17555:9;17549:4;17545:20;17541:1;17530:9;17526:17;17519:47;17580:131;17706:4;17580:131;;;17572:139;;17476:245;;;;17728:407;;17919:2;17908:9;17904:18;17896:26;;17969:9;17963:4;17959:20;17955:1;17944:9;17940:17;17933:47;17994:131;18120:4;17994:131;;;17986:139;;17890:245;;;;18142:407;;18333:2;18322:9;18318:18;18310:26;;18383:9;18377:4;18373:20;18369:1;18358:9;18354:17;18347:47;18408:131;18534:4;18408:131;;;18400:139;;18304:245;;;;18556:407;;18747:2;18736:9;18732:18;18724:26;;18797:9;18791:4;18787:20;18783:1;18772:9;18768:17;18761:47;18822:131;18948:4;18822:131;;;18814:139;;18718:245;;;;18970:407;;19161:2;19150:9;19146:18;19138:26;;19211:9;19205:4;19201:20;19197:1;19186:9;19182:17;19175:47;19236:131;19362:4;19236:131;;;19228:139;;19132:245;;;;19384:407;;19575:2;19564:9;19560:18;19552:26;;19625:9;19619:4;19615:20;19611:1;19600:9;19596:17;19589:47;19650:131;19776:4;19650:131;;;19642:139;;19546:245;;;;19798:407;;19989:2;19978:9;19974:18;19966:26;;20039:9;20033:4;20029:20;20025:1;20014:9;20010:17;20003:47;20064:131;20190:4;20064:131;;;20056:139;;19960:245;;;;20212:407;;20403:2;20392:9;20388:18;20380:26;;20453:9;20447:4;20443:20;20439:1;20428:9;20424:17;20417:47;20478:131;20604:4;20478:131;;;20470:139;;20374:245;;;;20626:213;;20744:2;20733:9;20729:18;20721:26;;20758:71;20826:1;20815:9;20811:17;20802:6;20758:71;;;20715:124;;;;;20846:209;;20962:2;20951:9;20947:18;20939:26;;20976:69;21042:1;21031:9;21027:17;21018:6;20976:69;;;20933:122;;;;;21062:316;;21204:2;21193:9;21189:18;21181:26;;21218:69;21284:1;21273:9;21269:17;21260:6;21218:69;;;21298:70;21364:2;21353:9;21349:18;21340:6;21298:70;;;21175:203;;;;;;21385:205;;21499:2;21488:9;21484:18;21476:26;;21513:67;21577:1;21566:9;21562:17;21553:6;21513:67;;;21470:120;;;;;21597:211;;21714:2;21703:9;21699:18;21691:26;;21728:70;21795:1;21784:9;21780:17;21771:6;21728:70;;;21685:123;;;;;21815:209;;21931:2;21920:9;21916:18;21908:26;;21945:69;22011:1;22000:9;21996:17;21987:6;21945:69;;;21902:122;;;;;22031:320;;22175:2;22164:9;22160:18;22152:26;;22189:70;22256:1;22245:9;22241:17;22232:6;22189:70;;;22270:71;22337:2;22326:9;22322:18;22313:6;22270:71;;;22146:205;;;;;;22358:118;;22448:5;22442:12;22432:22;;22413:63;;;;22483:122;;22577:5;22571:12;22561:22;;22542:63;;;;22613:163;;22728:6;22723:3;22716:19;22765:4;22760:3;22756:14;22741:29;;22709:67;;;;;22785:145;;22921:3;22906:18;;22899:31;;;;;22938:91;;23000:24;23018:5;23000:24;;;22989:35;;22983:46;;;;23036:85;;23109:5;23102:13;23095:21;23084:32;;23078:43;;;;23128:72;;23190:5;23179:16;;23173:27;;;;23207:121;;23280:42;23273:5;23269:54;23258:65;;23252:76;;;;23335:72;;23397:5;23386:16;;23380:27;;;;23414:88;;23486:10;23479:5;23475:22;23464:33;;23458:44;;;;23509:81;;23580:4;23573:5;23569:16;23558:27;;23552:38;;;;23597:104;;23669:26;23662:5;23658:38;23647:49;;23641:60;;;;23708:106;;23786:23;23803:5;23786:23;;;23773:36;;23767:47;;;;23822:268;23887:1;23894:101;23908:6;23905:1;23902:13;23894:101;;;23984:1;23979:3;23975:11;23969:18;23965:1;23960:3;23956:11;23949:39;23930:2;23927:1;23923:10;23918:15;;23894:101;;;24010:6;24007:1;24004:13;24001:2;;;24075:1;24066:6;24061:3;24057:16;24050:27;24001:2;23871:219;;;;;24098:74;;24162:5;24151:16;;24145:27;;;;24179:97;;24267:2;24263:7;24258:2;24251:5;24247:14;24243:28;24233:38;;24227:49;;;;24284:117;24353:24;24371:5;24353:24;;;24346:5;24343:35;24333:2;;24392:1;24389;24382:12;24333:2;24327:74;;24408:117;24477:24;24495:5;24477:24;;;24470:5;24467:35;24457:2;;24516:1;24513;24506:12;24457:2;24451:74;;24532:117;24601:24;24619:5;24601:24;;;24594:5;24591:35;24581:2;;24640:1;24637;24630:12;24581:2;24575:74;;24656:115;24724:23;24741:5;24724:23;;;24717:5;24714:34;24704:2;;24762:1;24759;24752:12;24704:2;24698:73;;24778:113;24845:22;24861:5;24845:22;;;24838:5;24835:33;24825:2;;24882:1;24879;24872:12;24825:2;24819:72;

Swarm Source

bzzr://37dbe86f5a3cb8237c1d8ae77611711a41bce68300376caadc6487ca0d6b7b6a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.