AVAX Price: $27.89 (-1.23%)

Overview

Max Total Supply

10,000,000 SHERPA

Holders

5,356

Market

Price

$0.02 @ 0.000868 AVAX

Onchain Market Cap

$242,181.88

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
50 SHERPA

Value
$1.21 ( ~0.0433901940730324 AVAX) [0.0005%]
0xce08d66d2824a7690d309727f06acc93faf0fb3c
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A fully decentralized protocol for private transactions on Avalanche.

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 SHERPA
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
SHERPA

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at snowscan.xyz on 2022-08-05
*/

pragma solidity =0.5.16;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

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

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

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

    /// @notice Total number of tokens in circulation
    uint public totalSupply = 10_000_000e18; // 10 million SHERPA

    /// @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 SHERPA 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, "SHERPA::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, "SHERPA::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), "SHERPA::permit: invalid signature");
        require(signatory == owner, "SHERPA::permit: unauthorized");
        require(now <= deadline, "SHERPA::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, "SHERPA::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, "SHERPA::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "SHERPA::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), "SHERPA::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "SHERPA::delegateBySig: invalid nonce");
        require(now <= expiry, "SHERPA::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, "SHERPA::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), "SHERPA::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "SHERPA::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "SHERPA::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "SHERPA::_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, "SHERPA::_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, "SHERPA::_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, "SHERPA::_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"}]

60806040526a084595161401484a0000006000553480156200002057600080fd5b50604051620037793803806200377983398181016040526200004691908101906200013e565b600054600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200011891906200017b565b60405180910390a350620001f0565b6000815190506200013881620001d6565b92915050565b6000602082840312156200015157600080fd5b6000620001618482850162000127565b91505092915050565b6200017581620001cc565b82525050565b60006020820190506200019260008301846200016a565b92915050565b6000620001a582620001ac565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620001e18162000198565b8114620001ed57600080fd5b50565b61357980620002006000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063b4b5ea571161007c578063b4b5ea571461038c578063c3cda520146103bc578063d505accf146103d8578063dd62ed3e146103f4578063e7a324dc14610424578063f1127ed81461044257610137565b806370a08231146102ae578063782d6fe1146102de5780637ecebe001461030e57806395d89b411461033e578063a9059cbb1461035c57610137565b806330adf81f116100ff57806330adf81f146101f6578063313ce56714610214578063587cde1e146102325780635c19a95c146102625780636fcfff451461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806320606b70146101a857806323b872dd146101c6575b600080fd5b610144610473565b6040516101519190612fc6565b60405180910390f35b610174600480360361016f919081019061269f565b6104ac565b6040516101819190612e60565b60405180910390f35b61019261063f565b60405161019f919061312a565b60405180910390f35b6101b0610645565b6040516101bd9190612e7b565b60405180910390f35b6101e060048036036101db91908101906125b2565b61065c565b6040516101ed9190612e60565b60405180910390f35b6101fe6108f0565b60405161020b9190612e7b565b60405180910390f35b61021c610907565b6040516102299190613189565b60405180910390f35b61024c6004803603610247919081019061254d565b61090c565b6040516102599190612e45565b60405180910390f35b61027c6004803603610277919081019061254d565b61093f565b005b6102986004803603610293919081019061254d565b61094c565b6040516102a59190613145565b60405180910390f35b6102c860048036036102c3919081019061254d565b61096f565b6040516102d5919061312a565b60405180910390f35b6102f860048036036102f3919081019061269f565b6109de565b60405161030591906131bf565b60405180910390f35b6103286004803603610323919081019061254d565b610df1565b604051610335919061312a565b60405180910390f35b610346610e09565b6040516103539190612fc6565b60405180910390f35b6103766004803603610371919081019061269f565b610e42565b6040516103839190612e60565b60405180910390f35b6103a660048036036103a1919081019061254d565b610e7f565b6040516103b391906131bf565b60405180910390f35b6103d660048036036103d191908101906126db565b610f6d565b005b6103f260048036036103ed9190810190612601565b611210565b005b61040e60048036036104099190810190612576565b611662565b60405161041b919061312a565b60405180910390f35b61042c61170f565b6040516104399190612e7b565b60405180910390f35b61045c60048036036104579190810190612764565b611726565b60405161046a929190613160565b60405180910390f35b6040518060400160405280600681526020017f536865727061000000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156104ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610524565b610521836040518060600160405280602781526020016133906027913961177f565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161062c91906131a4565b60405180910390a3600191505092915050565b60005481565b60405161065190612e1b565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050600061071f856040518060600160405280602781526020016133906027913961177f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108d75760006107c383836040518060600160405280603f8152602001613477603f91396117dd565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108cd91906131a4565b60405180910390a3505b6108e287878361184e565b600193505050509392505050565b6040516108fc90612e06565b604051809103902081565b601281565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109493382611c2f565b50565b60056020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a199061306a565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610a8f576000915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b9157600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c12576000915050610deb565b600080905060006001830390505b8163ffffffff168163ffffffff161115610d6d576000600283830363ffffffff1681610c4857fe5b0482039050610c556124b6565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610d4557806020015195505050505050610deb565b86816000015163ffffffff161015610d5f57819350610d66565b6001820392505b5050610c20565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60066020528060005260406000206000915090505481565b6040518060400160405280600681526020017f534845525041000000000000000000000000000000000000000000000000000081525081565b600080610e67836040518060600160405280602881526020016133b76028913961177f565b9050610e7433858361184e565b600191505092915050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610ee9576000610f65565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610f7b90612e1b565b60405180910390206040518060400160405280600681526020017f536865727061000000000000000000000000000000000000000000000000000081525080519060200120610fc8611def565b30604051602001610fdc9493929190612f3c565b604051602081830303815290604052805190602001209050600060405161100290612e30565b60405180910390208888886040516020016110209493929190612ef7565b6040516020818303038152906040528051906020012090506000828260405160200161104d929190612dcf565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161108a9493929190612f81565b6020604051602081039080840390855afa1580156110ac573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061308a565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae9061310a565b60405180910390fd5b874211156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f1906130ea565b60405180910390fd5b611204818b611c2f565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861415611262577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611287565b611284866040518060600160405280602681526020016134e86026913961177f565b90505b600060405161129590612e1b565b60405180910390206040518060400160405280600681526020017f5368657270610000000000000000000000000000000000000000000000000000815250805190602001206112e2611def565b306040516020016112f69493929190612f3c565b604051602081830303815290604052805190602001209050600060405161131c90612e06565b60405180910390208a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161138b96959493929190612e96565b604051602081830303815290604052805190602001209050600082826040516020016113b8929190612dcf565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113f59493929190612f81565b6020604051602081039080840390855afa158015611417573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a9061300a565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f89061304a565b60405180910390fd5b88421115611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061302a565b60405180910390fd5b84600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161164c91906131a4565b60405180910390a3505050505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161171b90612e30565b604051809103902081565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca9190612fe8565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611841576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118389190612fe8565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906130ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906130aa565b60405180910390fd5b6119a8600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603881526020016133df603891396117dd565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a8f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603281526020016134b660329139611dfc565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5991906131a4565b60405180910390a3611c2a600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e72565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611de9828483611e72565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d9190612fe8565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ebc57506000816bffffffffffffffffffffffff16115b1561216857600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612014576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f5f576000611fdb565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061200282856040518060600160405280602a8152602001613417602a91396117dd565b90506120108684848461216d565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612167576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120b257600061212e565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612155828560405180606001604052806029815260200161350e60299139611dfc565b90506121638584848461216d565b5050505b5b505050565b60006121914360405180606001604052806036815260200161344160369139612460565b905060008463ffffffff1611801561222657508063ffffffff16600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122c15781600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612409565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516124519291906131da565b60405180910390a25050505050565b6000640100000000831082906124ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a39190612fe8565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124f38161331c565b92915050565b60008135905061250881613333565b92915050565b60008135905061251d8161334a565b92915050565b60008135905061253281613361565b92915050565b60008135905061254781613378565b92915050565b60006020828403121561255f57600080fd5b600061256d848285016124e4565b91505092915050565b6000806040838503121561258957600080fd5b6000612597858286016124e4565b92505060206125a8858286016124e4565b9150509250929050565b6000806000606084860312156125c757600080fd5b60006125d5868287016124e4565b93505060206125e6868287016124e4565b92505060406125f78682870161250e565b9150509250925092565b600080600080600080600060e0888a03121561261c57600080fd5b600061262a8a828b016124e4565b975050602061263b8a828b016124e4565b965050604061264c8a828b0161250e565b955050606061265d8a828b0161250e565b945050608061266e8a828b01612538565b93505060a061267f8a828b016124f9565b92505060c06126908a828b016124f9565b91505092959891949750929550565b600080604083850312156126b257600080fd5b60006126c0858286016124e4565b92505060206126d18582860161250e565b9150509250929050565b60008060008060008060c087890312156126f457600080fd5b600061270289828a016124e4565b965050602061271389828a0161250e565b955050604061272489828a0161250e565b945050606061273589828a01612538565b935050608061274689828a016124f9565b92505060a061275789828a016124f9565b9150509295509295509295565b6000806040838503121561277757600080fd5b6000612785858286016124e4565b925050602061279685828601612523565b9150509250929050565b6127a981613235565b82525050565b6127b881613247565b82525050565b6127c781613253565b82525050565b6127de6127d982613253565b613301565b82525050565b60006127ef8261320e565b6127f98185613219565b93506128098185602086016132ce565b6128128161330b565b840191505092915050565b600061282882613203565b6128328185613219565b93506128428185602086016132ce565b61284b8161330b565b840191505092915050565b6000612863602183613219565b91507f5348455250413a3a7065726d69743a20696e76616c6964207369676e6174757260008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006128c960028361322a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612909602183613219565b91507f5348455250413a3a7065726d69743a207369676e61747572652065787069726560008301527f64000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061296f601c83613219565b91507f5348455250413a3a7065726d69743a20756e617574686f72697a6564000000006000830152602082019050919050565b60006129af60528361322a565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612a3b602983613219565b91507f5348455250413a3a6765745072696f72566f7465733a206e6f7420796574206460008301527f657465726d696e656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000612aa160438361322a565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612b2d602883613219565b91507f5348455250413a3a64656c656761746542795369673a20696e76616c6964207360008301527f69676e61747572650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b93603c83613219565b91507f5348455250413a3a5f7472616e73666572546f6b656e733a2063616e6e6f742060008301527f7472616e7366657220746f20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612bf9603e83613219565b91507f5348455250413a3a5f7472616e73666572546f6b656e733a2063616e6e6f742060008301527f7472616e736665722066726f6d20746865207a65726f206164647265737300006020830152604082019050919050565b6000612c5f603a8361322a565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000612cc5602883613219565b91507f5348455250413a3a64656c656761746542795369673a207369676e617475726560008301527f20657870697265640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d2b602483613219565b91507f5348455250413a3a64656c656761746542795369673a20696e76616c6964206e60008301527f6f6e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612d8d8161327d565b82525050565b612d9c81613287565b82525050565b612dab81613297565b82525050565b612dba816132bc565b82525050565b612dc9816132a4565b82525050565b6000612dda826128bc565b9150612de682856127cd565b602082019150612df682846127cd565b6020820191508190509392505050565b6000612e11826129a2565b9150819050919050565b6000612e2682612a94565b9150819050919050565b6000612e3b82612c52565b9150819050919050565b6000602082019050612e5a60008301846127a0565b92915050565b6000602082019050612e7560008301846127af565b92915050565b6000602082019050612e9060008301846127be565b92915050565b600060c082019050612eab60008301896127be565b612eb860208301886127a0565b612ec560408301876127a0565b612ed26060830186612d84565b612edf6080830185612d84565b612eec60a0830184612d84565b979650505050505050565b6000608082019050612f0c60008301876127be565b612f1960208301866127a0565b612f266040830185612d84565b612f336060830184612d84565b95945050505050565b6000608082019050612f5160008301876127be565b612f5e60208301866127be565b612f6b6040830185612d84565b612f7860608301846127a0565b95945050505050565b6000608082019050612f9660008301876127be565b612fa36020830186612da2565b612fb060408301856127be565b612fbd60608301846127be565b95945050505050565b60006020820190508181036000830152612fe0818461281d565b905092915050565b6000602082019050818103600083015261300281846127e4565b905092915050565b6000602082019050818103600083015261302381612856565b9050919050565b60006020820190508181036000830152613043816128fc565b9050919050565b6000602082019050818103600083015261306381612962565b9050919050565b6000602082019050818103600083015261308381612a2e565b9050919050565b600060208201905081810360008301526130a381612b20565b9050919050565b600060208201905081810360008301526130c381612b86565b9050919050565b600060208201905081810360008301526130e381612bec565b9050919050565b6000602082019050818103600083015261310381612cb8565b9050919050565b6000602082019050818103600083015261312381612d1e565b9050919050565b600060208201905061313f6000830184612d84565b92915050565b600060208201905061315a6000830184612d93565b92915050565b60006040820190506131756000830185612d93565b6131826020830184612dc0565b9392505050565b600060208201905061319e6000830184612da2565b92915050565b60006020820190506131b96000830184612db1565b92915050565b60006020820190506131d46000830184612dc0565b92915050565b60006040820190506131ef6000830185612db1565b6131fc6020830184612db1565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006132408261325d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132c7826132a4565b9050919050565b60005b838110156132ec5780820151818401526020810190506132d1565b838111156132fb576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61332581613235565b811461333057600080fd5b50565b61333c81613253565b811461334757600080fd5b50565b6133538161327d565b811461335e57600080fd5b50565b61336a81613287565b811461337557600080fd5b50565b61338181613297565b811461338c57600080fd5b5056fe5348455250413a3a617070726f76653a20616d6f756e74206578636565647320393620626974735348455250413a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735348455250413a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655348455250413a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735348455250413a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735348455250413a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63655348455250413a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735348455250413a3a7065726d69743a20616d6f756e74206578636565647320393620626974735348455250413a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158203b7719802efe079b4a1ae6cdecdae0166c399d6fd08acbaa9f32065c27fe209a6c6578706572696d656e74616cf564736f6c63430005100040000000000000000000000000c3ca3d91682c4bb7c8ee8e3fc0e24e43d4f94717

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063b4b5ea571161007c578063b4b5ea571461038c578063c3cda520146103bc578063d505accf146103d8578063dd62ed3e146103f4578063e7a324dc14610424578063f1127ed81461044257610137565b806370a08231146102ae578063782d6fe1146102de5780637ecebe001461030e57806395d89b411461033e578063a9059cbb1461035c57610137565b806330adf81f116100ff57806330adf81f146101f6578063313ce56714610214578063587cde1e146102325780635c19a95c146102625780636fcfff451461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806320606b70146101a857806323b872dd146101c6575b600080fd5b610144610473565b6040516101519190612fc6565b60405180910390f35b610174600480360361016f919081019061269f565b6104ac565b6040516101819190612e60565b60405180910390f35b61019261063f565b60405161019f919061312a565b60405180910390f35b6101b0610645565b6040516101bd9190612e7b565b60405180910390f35b6101e060048036036101db91908101906125b2565b61065c565b6040516101ed9190612e60565b60405180910390f35b6101fe6108f0565b60405161020b9190612e7b565b60405180910390f35b61021c610907565b6040516102299190613189565b60405180910390f35b61024c6004803603610247919081019061254d565b61090c565b6040516102599190612e45565b60405180910390f35b61027c6004803603610277919081019061254d565b61093f565b005b6102986004803603610293919081019061254d565b61094c565b6040516102a59190613145565b60405180910390f35b6102c860048036036102c3919081019061254d565b61096f565b6040516102d5919061312a565b60405180910390f35b6102f860048036036102f3919081019061269f565b6109de565b60405161030591906131bf565b60405180910390f35b6103286004803603610323919081019061254d565b610df1565b604051610335919061312a565b60405180910390f35b610346610e09565b6040516103539190612fc6565b60405180910390f35b6103766004803603610371919081019061269f565b610e42565b6040516103839190612e60565b60405180910390f35b6103a660048036036103a1919081019061254d565b610e7f565b6040516103b391906131bf565b60405180910390f35b6103d660048036036103d191908101906126db565b610f6d565b005b6103f260048036036103ed9190810190612601565b611210565b005b61040e60048036036104099190810190612576565b611662565b60405161041b919061312a565b60405180910390f35b61042c61170f565b6040516104399190612e7b565b60405180910390f35b61045c60048036036104579190810190612764565b611726565b60405161046a929190613160565b60405180910390f35b6040518060400160405280600681526020017f536865727061000000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156104ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610524565b610521836040518060600160405280602781526020016133906027913961177f565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161062c91906131a4565b60405180910390a3600191505092915050565b60005481565b60405161065190612e1b565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050600061071f856040518060600160405280602781526020016133906027913961177f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108d75760006107c383836040518060600160405280603f8152602001613477603f91396117dd565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108cd91906131a4565b60405180910390a3505b6108e287878361184e565b600193505050509392505050565b6040516108fc90612e06565b604051809103902081565b601281565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109493382611c2f565b50565b60056020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a199061306a565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610a8f576000915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b9157600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c12576000915050610deb565b600080905060006001830390505b8163ffffffff168163ffffffff161115610d6d576000600283830363ffffffff1681610c4857fe5b0482039050610c556124b6565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610d4557806020015195505050505050610deb565b86816000015163ffffffff161015610d5f57819350610d66565b6001820392505b5050610c20565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60066020528060005260406000206000915090505481565b6040518060400160405280600681526020017f534845525041000000000000000000000000000000000000000000000000000081525081565b600080610e67836040518060600160405280602881526020016133b76028913961177f565b9050610e7433858361184e565b600191505092915050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610ee9576000610f65565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610f7b90612e1b565b60405180910390206040518060400160405280600681526020017f536865727061000000000000000000000000000000000000000000000000000081525080519060200120610fc8611def565b30604051602001610fdc9493929190612f3c565b604051602081830303815290604052805190602001209050600060405161100290612e30565b60405180910390208888886040516020016110209493929190612ef7565b6040516020818303038152906040528051906020012090506000828260405160200161104d929190612dcf565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161108a9493929190612f81565b6020604051602081039080840390855afa1580156110ac573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061308a565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae9061310a565b60405180910390fd5b874211156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f1906130ea565b60405180910390fd5b611204818b611c2f565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861415611262577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611287565b611284866040518060600160405280602681526020016134e86026913961177f565b90505b600060405161129590612e1b565b60405180910390206040518060400160405280600681526020017f5368657270610000000000000000000000000000000000000000000000000000815250805190602001206112e2611def565b306040516020016112f69493929190612f3c565b604051602081830303815290604052805190602001209050600060405161131c90612e06565b60405180910390208a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161138b96959493929190612e96565b604051602081830303815290604052805190602001209050600082826040516020016113b8929190612dcf565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113f59493929190612f81565b6020604051602081039080840390855afa158015611417573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a9061300a565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f89061304a565b60405180910390fd5b88421115611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061302a565b60405180910390fd5b84600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161164c91906131a4565b60405180910390a3505050505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161171b90612e30565b604051809103902081565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca9190612fe8565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611841576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118389190612fe8565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906130ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906130aa565b60405180910390fd5b6119a8600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603881526020016133df603891396117dd565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a8f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603281526020016134b660329139611dfc565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5991906131a4565b60405180910390a3611c2a600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e72565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611de9828483611e72565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d9190612fe8565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ebc57506000816bffffffffffffffffffffffff16115b1561216857600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612014576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f5f576000611fdb565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061200282856040518060600160405280602a8152602001613417602a91396117dd565b90506120108684848461216d565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612167576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120b257600061212e565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612155828560405180606001604052806029815260200161350e60299139611dfc565b90506121638584848461216d565b5050505b5b505050565b60006121914360405180606001604052806036815260200161344160369139612460565b905060008463ffffffff1611801561222657508063ffffffff16600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122c15781600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612409565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516124519291906131da565b60405180910390a25050505050565b6000640100000000831082906124ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a39190612fe8565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124f38161331c565b92915050565b60008135905061250881613333565b92915050565b60008135905061251d8161334a565b92915050565b60008135905061253281613361565b92915050565b60008135905061254781613378565b92915050565b60006020828403121561255f57600080fd5b600061256d848285016124e4565b91505092915050565b6000806040838503121561258957600080fd5b6000612597858286016124e4565b92505060206125a8858286016124e4565b9150509250929050565b6000806000606084860312156125c757600080fd5b60006125d5868287016124e4565b93505060206125e6868287016124e4565b92505060406125f78682870161250e565b9150509250925092565b600080600080600080600060e0888a03121561261c57600080fd5b600061262a8a828b016124e4565b975050602061263b8a828b016124e4565b965050604061264c8a828b0161250e565b955050606061265d8a828b0161250e565b945050608061266e8a828b01612538565b93505060a061267f8a828b016124f9565b92505060c06126908a828b016124f9565b91505092959891949750929550565b600080604083850312156126b257600080fd5b60006126c0858286016124e4565b92505060206126d18582860161250e565b9150509250929050565b60008060008060008060c087890312156126f457600080fd5b600061270289828a016124e4565b965050602061271389828a0161250e565b955050604061272489828a0161250e565b945050606061273589828a01612538565b935050608061274689828a016124f9565b92505060a061275789828a016124f9565b9150509295509295509295565b6000806040838503121561277757600080fd5b6000612785858286016124e4565b925050602061279685828601612523565b9150509250929050565b6127a981613235565b82525050565b6127b881613247565b82525050565b6127c781613253565b82525050565b6127de6127d982613253565b613301565b82525050565b60006127ef8261320e565b6127f98185613219565b93506128098185602086016132ce565b6128128161330b565b840191505092915050565b600061282882613203565b6128328185613219565b93506128428185602086016132ce565b61284b8161330b565b840191505092915050565b6000612863602183613219565b91507f5348455250413a3a7065726d69743a20696e76616c6964207369676e6174757260008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006128c960028361322a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612909602183613219565b91507f5348455250413a3a7065726d69743a207369676e61747572652065787069726560008301527f64000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061296f601c83613219565b91507f5348455250413a3a7065726d69743a20756e617574686f72697a6564000000006000830152602082019050919050565b60006129af60528361322a565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612a3b602983613219565b91507f5348455250413a3a6765745072696f72566f7465733a206e6f7420796574206460008301527f657465726d696e656400000000000000000000000000000000000000000000006020830152604082019050919050565b6000612aa160438361322a565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612b2d602883613219565b91507f5348455250413a3a64656c656761746542795369673a20696e76616c6964207360008301527f69676e61747572650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b93603c83613219565b91507f5348455250413a3a5f7472616e73666572546f6b656e733a2063616e6e6f742060008301527f7472616e7366657220746f20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612bf9603e83613219565b91507f5348455250413a3a5f7472616e73666572546f6b656e733a2063616e6e6f742060008301527f7472616e736665722066726f6d20746865207a65726f206164647265737300006020830152604082019050919050565b6000612c5f603a8361322a565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000612cc5602883613219565b91507f5348455250413a3a64656c656761746542795369673a207369676e617475726560008301527f20657870697265640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d2b602483613219565b91507f5348455250413a3a64656c656761746542795369673a20696e76616c6964206e60008301527f6f6e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612d8d8161327d565b82525050565b612d9c81613287565b82525050565b612dab81613297565b82525050565b612dba816132bc565b82525050565b612dc9816132a4565b82525050565b6000612dda826128bc565b9150612de682856127cd565b602082019150612df682846127cd565b6020820191508190509392505050565b6000612e11826129a2565b9150819050919050565b6000612e2682612a94565b9150819050919050565b6000612e3b82612c52565b9150819050919050565b6000602082019050612e5a60008301846127a0565b92915050565b6000602082019050612e7560008301846127af565b92915050565b6000602082019050612e9060008301846127be565b92915050565b600060c082019050612eab60008301896127be565b612eb860208301886127a0565b612ec560408301876127a0565b612ed26060830186612d84565b612edf6080830185612d84565b612eec60a0830184612d84565b979650505050505050565b6000608082019050612f0c60008301876127be565b612f1960208301866127a0565b612f266040830185612d84565b612f336060830184612d84565b95945050505050565b6000608082019050612f5160008301876127be565b612f5e60208301866127be565b612f6b6040830185612d84565b612f7860608301846127a0565b95945050505050565b6000608082019050612f9660008301876127be565b612fa36020830186612da2565b612fb060408301856127be565b612fbd60608301846127be565b95945050505050565b60006020820190508181036000830152612fe0818461281d565b905092915050565b6000602082019050818103600083015261300281846127e4565b905092915050565b6000602082019050818103600083015261302381612856565b9050919050565b60006020820190508181036000830152613043816128fc565b9050919050565b6000602082019050818103600083015261306381612962565b9050919050565b6000602082019050818103600083015261308381612a2e565b9050919050565b600060208201905081810360008301526130a381612b20565b9050919050565b600060208201905081810360008301526130c381612b86565b9050919050565b600060208201905081810360008301526130e381612bec565b9050919050565b6000602082019050818103600083015261310381612cb8565b9050919050565b6000602082019050818103600083015261312381612d1e565b9050919050565b600060208201905061313f6000830184612d84565b92915050565b600060208201905061315a6000830184612d93565b92915050565b60006040820190506131756000830185612d93565b6131826020830184612dc0565b9392505050565b600060208201905061319e6000830184612da2565b92915050565b60006020820190506131b96000830184612db1565b92915050565b60006020820190506131d46000830184612dc0565b92915050565b60006040820190506131ef6000830185612db1565b6131fc6020830184612db1565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006132408261325d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b60006132c7826132a4565b9050919050565b60005b838110156132ec5780820151818401526020810190506132d1565b838111156132fb576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61332581613235565b811461333057600080fd5b50565b61333c81613253565b811461334757600080fd5b50565b6133538161327d565b811461335e57600080fd5b50565b61336a81613287565b811461337557600080fd5b50565b61338181613297565b811461338c57600080fd5b5056fe5348455250413a3a617070726f76653a20616d6f756e74206578636565647320393620626974735348455250413a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735348455250413a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655348455250413a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735348455250413a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735348455250413a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63655348455250413a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77735348455250413a3a7065726d69743a20616d6f756e74206578636565647320393620626974735348455250413a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a365627a7a723158203b7719802efe079b4a1ae6cdecdae0166c399d6fd08acbaa9f32065c27fe209a6c6578706572696d656e74616cf564736f6c63430005100040

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

000000000000000000000000c3ca3d91682c4bb7c8ee8e3fc0e24e43d4f94717

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c3ca3d91682c4bb7c8ee8e3fc0e24e43d4f94717


Deployed Bytecode Sourcemap

645:14640:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;645:14640:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:38;;;:::i;:::-;;;;;;;;;;;;;;;;4484:421;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1019:39;;;:::i;:::-;;;;;;;;;;;;;;;;1944:122;;;:::i;:::-;;;;;;;;;;;;;;;;7582:676;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2367:137;;;:::i;:::-;;;;;;;;;;;;;;;;920:35;;;:::i;:::-;;;;;;;;;;;;;;;;1394:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8406:102;;;;;;;;;;;;;;;;:::i;:::-;;1822:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6660:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10591:1220;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2585:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;817:40;;;:::i;:::-;;;;;;;;;;;;;;;;7032:240;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9938:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8942:795;;;;;;;;;;;;;;;;:::i;:::-;;5395:1062;;;;;;;;;;;;;;;;:::i;:::-;;3870:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2160:117;;;:::i;:::-;;;;;;;;;;;;;;;;1683:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;718:38;;;;;;;;;;;;;;;;;;;:::o;4484:421::-;4552:4;4569:13;4615:2;4597:9;:21;4593:175;;;4651:2;4635:19;;4593:175;;;4696:60;4703:9;4696:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;4687:69;;4593:175;4814:6;4780:10;:22;4791:10;4780:22;;;;;;;;;;;;;;;:31;4803:7;4780:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;4859:7;4838:37;;4847:10;4838:37;;;4868:6;4838:37;;;;;;;;;;;;;;;4893:4;4886:11;;;4484:421;;;;:::o;1019:39::-;;;;:::o;1944:122::-;1986:80;;;;;;;;;;;;;;1944:122;:::o;7582:676::-;7664:4;7681:15;7699:10;7681:28;;7720:23;7746:10;:15;7757:3;7746:15;;;;;;;;;;;;;;;:24;7762:7;7746:24;;;;;;;;;;;;;;;;;;;;;;;;;7720:50;;7781:13;7797:60;7804:9;7797:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;7781:76;;7885:3;7874:14;;:7;:14;;;;:48;;;;;7919:2;7892:30;;:16;:30;;;;7874:48;7870:313;;;7939:19;7961:98;7967:16;7985:6;7961:98;;;;;;;;;;;;;;;;;:5;:98::i;:::-;7939:120;;8101:12;8074:10;:15;8085:3;8074:15;;;;;;;;;;;;;;;:24;8090:7;8074:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8149:7;8135:36;;8144:3;8135:36;;;8158:12;8135:36;;;;;;;;;;;;;;;7870:313;;8195:33;8211:3;8216;8221:6;8195:15;:33::i;:::-;8246:4;8239:11;;;;;7582:676;;;;;:::o;2367:137::-;2409:95;;;;;;;;;;;;;;2367:137;:::o;920:35::-;953:2;920:35;:::o;1394:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8406:102::-;8468:32;8478:10;8490:9;8468;:32::i;:::-;8406:102;:::o;1822:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6660:108::-;6719:4;6743:8;:17;6752:7;6743:17;;;;;;;;;;;;;;;;;;;;;;;;;6736:24;;;;6660:108;;;:::o;10591:1220::-;10670:6;10711:12;10697:11;:26;10689:80;;;;;;;;;;;;;;;;;;;;;;10782:19;10804:14;:23;10819:7;10804:23;;;;;;;;;;;;;;;;;;;;;;;;;10782:45;;10858:1;10842:12;:17;;;10838:58;;;10883:1;10876:8;;;;;10838:58;11008:11;10956;:20;10968:7;10956:20;;;;;;;;;;;;;;;:38;10992:1;10977:12;:16;10956:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;10952:147;;11043:11;:20;11055:7;11043:20;;;;;;;;;;;;;;;:38;11079:1;11064:12;:16;11043:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;11036:51;;;;;10952:147;11196:11;11160;:20;11172:7;11160:20;;;;;;;;;;;;;;;:23;11181:1;11160:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;11156:88;;;11231:1;11224:8;;;;;11156:88;11256:12;11271:1;11256:16;;11283:12;11313:1;11298:12;:16;11283:31;;11325:428;11340:5;11332:13;;:5;:13;;;11325:428;;;11362:13;11404:1;11395:5;11387;:13;11386:19;;;;;;;;11378:5;:27;11362:43;;11447:20;;:::i;:::-;11470:11;:20;11482:7;11470:20;;;;;;;;;;;;;;;:28;11491:6;11470:28;;;;;;;;;;;;;;;11447:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11533:11;11517:2;:12;;;:27;;;11513:229;;;11572:2;:8;;;11565:15;;;;;;;;;11513:229;11621:11;11606:2;:12;;;:26;;;11602:140;;;11661:6;11653:14;;11602:140;;;11725:1;11716:6;:10;11708:18;;11602:140;11325:428;;;;;11770:11;:20;11782:7;11770:20;;;;;;;;;;;;;;;:27;11791:5;11770:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;11763:40;;;;;10591:1220;;;;;:::o;2585:39::-;;;;;;;;;;;;;;;;;:::o;817:40::-;;;;;;;;;;;;;;;;;;;:::o;7032:240::-;7097:4;7114:13;7130:61;7137:9;7130:61;;;;;;;;;;;;;;;;;:6;:61::i;:::-;7114:77;;7202:40;7218:10;7230:3;7235:6;7202:15;:40::i;:::-;7260:4;7253:11;;;7032:240;;;;:::o;9938:222::-;10003:6;10022:19;10044:14;:23;10059:7;10044:23;;;;;;;;;;;;;;;;;;;;;;;;;10022:45;;10100:1;10085:12;:16;;;:67;;10151:1;10085:67;;;10104:11;:20;10116:7;10104:20;;;;;;;;;;;;;;;:38;10140:1;10125:12;:16;10104:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;10085:67;10078:74;;;9938:222;;;:::o;8942:795::-;9058:23;1986:80;;;;;;;;;;;;;;9138:4;;;;;;;;;;;;;;;;;9122:22;;;;;;9146:12;:10;:12::i;:::-;9168:4;9094:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9094:80:0;;;9084:91;;;;;;9058:117;;9186:18;2206:71;;;;;;;;;;;;;;9249:9;9260:5;9267:6;9217:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9217:57:0;;;9207:68;;;;;;9186:89;;9286:14;9342:15;9359:10;9313:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9313:57:0;;;9303:68;;;;;;9286:85;;9382:17;9402:26;9412:6;9420:1;9423;9426;9402:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9402:26:0;;;;;;;;9382:46;;9468:1;9447:23;;:9;:23;;;;9439:76;;;;;;;;;;;;;;;;;;;;;;9543:6;:17;9550:9;9543:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;9534:5;:28;9526:77;;;;;;;;;;;;;;;;;;;;;;9629:6;9622:3;:13;;9614:66;;;;;;;;;;;;;;;;;;;;;;9698:31;9708:9;9719;9698;:31::i;:::-;9691:38;;;;8942:795;;;;;;:::o;5395:1062::-;5525:13;5571:2;5553:9;:21;5549:174;;;5607:2;5591:19;;5549:174;;;5652:59;5659:9;5652:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;5643:68;;5549:174;5735:23;1986:80;;;;;;;;;;;;;;5815:4;;;;;;;;;;;;;;;;;5799:22;;;;;;5823:12;:10;:12::i;:::-;5845:4;5771:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5771:80:0;;;5761:91;;;;;;5735:117;;5863:18;2409:95;;;;;;;;;;;;;;5922:5;5929:7;5938:9;5949:6;:13;5956:5;5949:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;5966:8;5894:81;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5894:81:0;;;5884:92;;;;;;5863:113;;5987:14;6043:15;6060:10;6014:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6014:57:0;;;6004:68;;;;;;5987:85;;6083:17;6103:26;6113:6;6121:1;6124;6127;6103:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6103:26:0;;;;;;;;6083:46;;6169:1;6148:23;;:9;:23;;;;6140:69;;;;;;;;;;;;;;;;;;;;;;6241:5;6228:18;;:9;:18;;;6220:59;;;;;;;;;;;;;;;;;;;;;;6305:8;6298:3;:15;;6290:61;;;;;;;;;;;;;;;;;;;;;;6393:6;6364:10;:17;6375:5;6364:17;;;;;;;;;;;;;;;:26;6382:7;6364:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;6433:7;6417:32;;6426:5;6417:32;;;6442:6;6417:32;;;;;;;;;;;;;;;5395:1062;;;;;;;;;;;;:::o;3870:136::-;3946:4;3970:10;:19;3981:7;3970:19;;;;;;;;;;;;;;;:28;3990:7;3970:28;;;;;;;;;;;;;;;;;;;;;;;;;3963:35;;;;3870:136;;;;:::o;2160:117::-;2206:71;;;;;;;;;;;;;;2160:117;:::o;1683:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14591:161::-;14666:6;14697:5;14693:1;:9;14704:12;14685:32;;;;;;;;;;;;;;;;;;;;;;;;;14742:1;14728:16;;14591:161;;;;:::o;14956:165::-;15042:6;15074:1;15069:6;;:1;:6;;;;15077:12;15061:29;;;;;;;;;;;;;;;;;;;;;;;;;15112:1;15108;:5;15101:12;;14956:165;;;;;:::o;12202:622::-;12311:1;12296:17;;:3;:17;;;;12288:92;;;;;;;;;;;;;;;;;;;;;;12414:1;12399:17;;:3;:17;;;;12391:90;;;;;;;;;;;;;;;;;;;;;;12510:88;12516:8;:13;12525:3;12516:13;;;;;;;;;;;;;;;;;;;;;;;;;12531:6;12510:88;;;;;;;;;;;;;;;;;:5;:88::i;:::-;12494:8;:13;12503:3;12494:13;;;;;;;;;;;;;;;;:104;;;;;;;;;;;;;;;;;;12625:82;12631:8;:13;12640:3;12631:13;;;;;;;;;;;;;;;;;;;;;;;;;12646:6;12625:82;;;;;;;;;;;;;;;;;:5;:82::i;:::-;12609:8;:13;12618:3;12609:13;;;;;;;;;;;;;;;;:98;;;;;;;;;;;;;;;;;;12737:3;12723:26;;12732:3;12723:26;;;12742:6;12723:26;;;;;;;;;;;;;;;12762:54;12777:9;:14;12787:3;12777:14;;;;;;;;;;;;;;;;;;;;;;;;;12793:9;:14;12803:3;12793:14;;;;;;;;;;;;;;;;;;;;;;;;;12809:6;12762:14;:54::i;:::-;12202:622;;;:::o;11819:375::-;11896:23;11922:9;:20;11932:9;11922:20;;;;;;;;;;;;;;;;;;;;;;;;;11896:46;;11953:23;11979:8;:19;11988:9;11979:19;;;;;;;;;;;;;;;;;;;;;;;;;11953:45;;12032:9;12009;:20;12019:9;12009:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12103:9;12059:54;;12086:15;12059:54;;12075:9;12059:54;;;;;;;;;;;;12126:60;12141:15;12158:9;12169:16;12126:14;:60::i;:::-;11819:375;;;;:::o;15129:153::-;15174:4;15191:15;15239:9;15228:20;;15267:7;15260:14;;;15129:153;:::o;14760:188::-;14846:6;14865:8;14880:1;14876;:5;14865:16;;14905:1;14900:6;;:1;:6;;;;14908:12;14892:29;;;;;;;;;;;;;;;;;;;;;;;;;14939:1;14932:8;;;14760:188;;;;;:::o;12832:943::-;12937:6;12927:16;;:6;:16;;;;:30;;;;;12956:1;12947:6;:10;;;12927:30;12923:845;;;12996:1;12978:20;;:6;:20;;;12974:384;;13019:16;13038:14;:22;13053:6;13038:22;;;;;;;;;;;;;;;;;;;;;;;;;13019:41;;13079:16;13110:1;13098:9;:13;;;:60;;13157:1;13098:60;;;13114:11;:19;13126:6;13114:19;;;;;;;;;;;;;;;:34;13146:1;13134:9;:13;13114:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;13098:60;13079:79;;13177:16;13196:70;13202:9;13213:6;13196:70;;;;;;;;;;;;;;;;;:5;:70::i;:::-;13177:89;;13285:57;13302:6;13310:9;13321;13332;13285:16;:57::i;:::-;12974:384;;;;13396:1;13378:20;;:6;:20;;;13374:383;;13419:16;13438:14;:22;13453:6;13438:22;;;;;;;;;;;;;;;;;;;;;;;;;13419:41;;13479:16;13510:1;13498:9;:13;;;:60;;13557:1;13498:60;;;13514:11;:19;13526:6;13514:19;;;;;;;;;;;;;;;:34;13546:1;13534:9;:13;13514:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;13498:60;13479:79;;13577:16;13596:69;13602:9;13613:6;13596:69;;;;;;;;;;;;;;;;;:5;:69::i;:::-;13577:88;;13684:57;13701:6;13709:9;13720;13731;13684:16;:57::i;:::-;13374:383;;;;12923:845;12832:943;;;:::o;13783:631::-;13901:18;13922:78;13929:12;13922:78;;;;;;;;;;;;;;;;;:6;:78::i;:::-;13901:99;;14030:1;14015:12;:16;;;:85;;;;;14089:11;14035:65;;:11;:22;14047:9;14035:22;;;;;;;;;;;;;;;:40;14073:1;14058:12;:16;14035:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;14015:85;14011:329;;;14164:8;14115:11;:22;14127:9;14115:22;;;;;;;;;;;;;;;:40;14153:1;14138:12;:16;14115:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;14011:329;;;14240:33;;;;;;;;14251:11;14240:33;;;;;;14264:8;14240:33;;;;;14201:11;:22;14213:9;14201:22;;;;;;;;;;;;;;;:36;14224:12;14201:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14329:1;14314:12;:16;14286:14;:25;14301:9;14286:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14011:329;14376:9;14355:51;;;14387:8;14397;14355:51;;;;;;;;;;;;;;;;13783:631;;;;;:::o;14422:161::-;14497:6;14528:5;14524:1;:9;14535:12;14516:32;;;;;;;;;;;;;;;;;;;;;;;;;14573:1;14559:16;;14422:161;;;;:::o;645:14640::-;;;;;;;;;;;;;;;;;;;;;;;:::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:370;;5788:67;5852:2;5847:3;5788:67;;;5781:74;;5888:34;5884:1;5879:3;5875:11;5868:55;5957:3;5952:2;5947:3;5943:12;5936:25;5989:2;5984:3;5980:12;5973:19;;5774:224;;;;6007:398;;6185:84;6267:1;6262:3;6185:84;;;6178:91;;6302:66;6298:1;6293:3;6289:11;6282:87;6397:1;6392:3;6388:11;6381:18;;6171:234;;;;6414:370;;6574:67;6638:2;6633:3;6574:67;;;6567:74;;6674:34;6670:1;6665:3;6661:11;6654:55;6743:3;6738:2;6733:3;6729:12;6722:25;6775:2;6770:3;6766:12;6759:19;;6560:224;;;;6793:328;;6953:67;7017:2;7012:3;6953:67;;;6946:74;;7053:30;7049:1;7044:3;7040:11;7033:51;7112:2;7107:3;7103:12;7096:19;;6939:182;;;;7130:492;;7308:85;7390:2;7385:3;7308:85;;;7301:92;;7426:34;7422:1;7417:3;7413:11;7406:55;7495:34;7490:2;7485:3;7481:12;7474:56;7564:20;7559:2;7554:3;7550:12;7543:42;7613:2;7608:3;7604:12;7597:19;;7294:328;;;;7631:378;;7791:67;7855:2;7850:3;7791:67;;;7784:74;;7891:34;7887:1;7882:3;7878:11;7871:55;7960:11;7955:2;7950:3;7946:12;7939:33;8000:2;7995:3;7991:12;7984:19;;7777:232;;;;8018:477;;8196:85;8278:2;8273:3;8196:85;;;8189:92;;8314:34;8310:1;8305:3;8301:11;8294:55;8383:34;8378:2;8373:3;8369:12;8362:56;8452:5;8447:2;8442:3;8438:12;8431:27;8486:2;8481:3;8477:12;8470:19;;8182:313;;;;8504:377;;8664:67;8728:2;8723:3;8664:67;;;8657:74;;8764:34;8760:1;8755:3;8751:11;8744:55;8833:10;8828:2;8823:3;8819:12;8812:32;8872:2;8867:3;8863:12;8856:19;;8650:231;;;;8890:397;;9050:67;9114:2;9109:3;9050:67;;;9043:74;;9150:34;9146:1;9141:3;9137:11;9130:55;9219:30;9214:2;9209:3;9205:12;9198:52;9278:2;9273:3;9269:12;9262:19;;9036:251;;;;9296:399;;9456:67;9520:2;9515:3;9456:67;;;9449:74;;9556:34;9552:1;9547:3;9543:11;9536:55;9625:32;9620:2;9615:3;9611:12;9604:54;9686:2;9681:3;9677:12;9670:19;;9442:253;;;;9704:431;;9882:85;9964:2;9959:3;9882:85;;;9875:92;;10000:34;9996:1;9991:3;9987:11;9980:55;10069:28;10064:2;10059:3;10055:12;10048:50;10126:2;10121:3;10117:12;10110:19;;9868:267;;;;10144:377;;10304:67;10368:2;10363:3;10304:67;;;10297:74;;10404:34;10400:1;10395:3;10391:11;10384:55;10473:10;10468:2;10463:3;10459:12;10452:32;10512:2;10507:3;10503:12;10496:19;;10290:231;;;;10530:373;;10690:67;10754:2;10749:3;10690:67;;;10683:74;;10790:34;10786:1;10781:3;10777:11;10770:55;10859:6;10854:2;10849:3;10845:12;10838:28;10894:2;10889:3;10885:12;10878:19;;10676:227;;;;10911:113;10994:24;11012:5;10994:24;;;10989:3;10982:37;10976:48;;;11031:110;11112:23;11129:5;11112:23;;;11107:3;11100:36;11094:47;;;11148:107;11227:22;11243:5;11227:22;;;11222:3;11215:35;11209:46;;;11262:124;11344:36;11374:5;11344:36;;;11339:3;11332:49;11326:60;;;11393:110;11474:23;11491:5;11474:23;;;11469:3;11462:36;11456:47;;;11510:650;;11765:148;11909:3;11765:148;;;11758:155;;11924:75;11995:3;11986:6;11924:75;;;12021:2;12016:3;12012:12;12005:19;;12035:75;12106:3;12097:6;12035:75;;;12132:2;12127:3;12123:12;12116:19;;12152:3;12145:10;;11746:414;;;;;;12167:372;;12366:148;12510:3;12366:148;;;12359:155;;12531:3;12524:10;;12347:192;;;;12546:372;;12745:148;12889:3;12745:148;;;12738:155;;12910:3;12903:10;;12726:192;;;;12925:372;;13124:148;13268:3;13124:148;;;13117:155;;13289:3;13282:10;;13105:192;;;;13304:213;;13422:2;13411:9;13407:18;13399:26;;13436:71;13504:1;13493:9;13489:17;13480:6;13436:71;;;13393:124;;;;;13524:201;;13636:2;13625:9;13621:18;13613:26;;13650:65;13712:1;13701:9;13697:17;13688:6;13650:65;;;13607:118;;;;;13732:213;;13850:2;13839:9;13835:18;13827:26;;13864:71;13932:1;13921:9;13917:17;13908:6;13864:71;;;13821:124;;;;;13952:771;;14210:3;14199:9;14195:19;14187:27;;14225:71;14293:1;14282:9;14278:17;14269:6;14225:71;;;14307:72;14375:2;14364:9;14360:18;14351:6;14307:72;;;14390;14458:2;14447:9;14443:18;14434:6;14390:72;;;14473;14541:2;14530:9;14526:18;14517:6;14473:72;;;14556:73;14624:3;14613:9;14609:19;14600:6;14556:73;;;14640;14708:3;14697:9;14693:19;14684:6;14640:73;;;14181:542;;;;;;;;;;14730:547;;14932:3;14921:9;14917:19;14909:27;;14947:71;15015:1;15004:9;15000:17;14991:6;14947:71;;;15029:72;15097:2;15086:9;15082:18;15073:6;15029:72;;;15112;15180:2;15169:9;15165:18;15156:6;15112:72;;;15195;15263:2;15252:9;15248:18;15239:6;15195:72;;;14903:374;;;;;;;;15284:547;;15486:3;15475:9;15471:19;15463:27;;15501:71;15569:1;15558:9;15554:17;15545:6;15501:71;;;15583:72;15651:2;15640:9;15636:18;15627:6;15583:72;;;15666;15734:2;15723:9;15719:18;15710:6;15666:72;;;15749;15817:2;15806:9;15802:18;15793:6;15749:72;;;15457:374;;;;;;;;15838:539;;16036:3;16025:9;16021:19;16013:27;;16051:71;16119:1;16108:9;16104:17;16095:6;16051:71;;;16133:68;16197:2;16186:9;16182:18;16173:6;16133:68;;;16212:72;16280:2;16269:9;16265:18;16256:6;16212:72;;;16295;16363:2;16352:9;16348:18;16339:6;16295:72;;;16007:370;;;;;;;;16384:293;;16518:2;16507:9;16503:18;16495:26;;16568:9;16562:4;16558:20;16554:1;16543:9;16539:17;16532:47;16593:74;16662:4;16653:6;16593:74;;;16585:82;;16489:188;;;;;16684:301;;16822:2;16811:9;16807:18;16799:26;;16872:9;16866:4;16862:20;16858:1;16847:9;16843:17;16836:47;16897:78;16970:4;16961:6;16897:78;;;16889:86;;16793:192;;;;;16992:407;;17183:2;17172:9;17168:18;17160:26;;17233:9;17227:4;17223:20;17219:1;17208:9;17204:17;17197:47;17258:131;17384:4;17258:131;;;17250:139;;17154:245;;;;17406:407;;17597:2;17586:9;17582:18;17574:26;;17647:9;17641:4;17637:20;17633:1;17622:9;17618:17;17611:47;17672:131;17798:4;17672:131;;;17664:139;;17568:245;;;;17820:407;;18011:2;18000:9;17996:18;17988:26;;18061:9;18055:4;18051:20;18047:1;18036:9;18032:17;18025:47;18086:131;18212:4;18086:131;;;18078:139;;17982:245;;;;18234:407;;18425:2;18414:9;18410:18;18402:26;;18475:9;18469:4;18465:20;18461:1;18450:9;18446:17;18439:47;18500:131;18626:4;18500:131;;;18492:139;;18396:245;;;;18648:407;;18839:2;18828:9;18824:18;18816:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18914:131;19040:4;18914:131;;;18906:139;;18810:245;;;;19062:407;;19253:2;19242:9;19238:18;19230:26;;19303:9;19297:4;19293:20;19289:1;19278:9;19274:17;19267:47;19328:131;19454:4;19328:131;;;19320:139;;19224:245;;;;19476:407;;19667:2;19656:9;19652:18;19644:26;;19717:9;19711:4;19707:20;19703:1;19692:9;19688:17;19681:47;19742:131;19868:4;19742:131;;;19734:139;;19638:245;;;;19890:407;;20081:2;20070:9;20066:18;20058:26;;20131:9;20125:4;20121:20;20117:1;20106:9;20102:17;20095:47;20156:131;20282:4;20156:131;;;20148:139;;20052:245;;;;20304:407;;20495:2;20484:9;20480:18;20472:26;;20545:9;20539:4;20535:20;20531:1;20520:9;20516:17;20509:47;20570:131;20696:4;20570:131;;;20562:139;;20466:245;;;;20718:213;;20836:2;20825:9;20821:18;20813:26;;20850:71;20918:1;20907:9;20903:17;20894:6;20850:71;;;20807:124;;;;;20938:209;;21054:2;21043:9;21039:18;21031:26;;21068:69;21134:1;21123:9;21119:17;21110:6;21068:69;;;21025:122;;;;;21154:316;;21296:2;21285:9;21281:18;21273:26;;21310:69;21376:1;21365:9;21361:17;21352:6;21310:69;;;21390:70;21456:2;21445:9;21441:18;21432:6;21390:70;;;21267:203;;;;;;21477:205;;21591:2;21580:9;21576:18;21568:26;;21605:67;21669:1;21658:9;21654:17;21645:6;21605:67;;;21562:120;;;;;21689:211;;21806:2;21795:9;21791:18;21783:26;;21820:70;21887:1;21876:9;21872:17;21863:6;21820:70;;;21777:123;;;;;21907:209;;22023:2;22012:9;22008:18;22000:26;;22037:69;22103:1;22092:9;22088:17;22079:6;22037:69;;;21994:122;;;;;22123:320;;22267:2;22256:9;22252:18;22244:26;;22281:70;22348:1;22337:9;22333:17;22324:6;22281:70;;;22362:71;22429:2;22418:9;22414:18;22405:6;22362:71;;;22238:205;;;;;;22450:118;;22540:5;22534:12;22524:22;;22505:63;;;;22575:122;;22669:5;22663:12;22653:22;;22634:63;;;;22705:163;;22820:6;22815:3;22808:19;22857:4;22852:3;22848:14;22833:29;;22801:67;;;;;22877:145;;23013:3;22998:18;;22991:31;;;;;23030:91;;23092:24;23110:5;23092:24;;;23081:35;;23075:46;;;;23128:85;;23201:5;23194:13;23187:21;23176:32;;23170:43;;;;23220:72;;23282:5;23271:16;;23265:27;;;;23299:121;;23372:42;23365:5;23361:54;23350:65;;23344:76;;;;23427:72;;23489:5;23478:16;;23472:27;;;;23506:88;;23578:10;23571:5;23567:22;23556:33;;23550:44;;;;23601:81;;23672:4;23665:5;23661:16;23650:27;;23644:38;;;;23689:104;;23761:26;23754:5;23750:38;23739:49;;23733:60;;;;23800:106;;23878:23;23895:5;23878:23;;;23865:36;;23859:47;;;;23914:268;23979:1;23986:101;24000:6;23997:1;23994:13;23986:101;;;24076:1;24071:3;24067:11;24061:18;24057:1;24052:3;24048:11;24041:39;24022:2;24019:1;24015:10;24010:15;;23986:101;;;24102:6;24099:1;24096:13;24093:2;;;24167:1;24158:6;24153:3;24149:16;24142:27;24093:2;23963:219;;;;;24190:74;;24254:5;24243:16;;24237:27;;;;24271:97;;24359:2;24355:7;24350:2;24343:5;24339:14;24335:28;24325:38;;24319:49;;;;24376:117;24445:24;24463:5;24445:24;;;24438:5;24435:35;24425:2;;24484:1;24481;24474:12;24425:2;24419:74;;24500:117;24569:24;24587:5;24569:24;;;24562:5;24559:35;24549:2;;24608:1;24605;24598:12;24549:2;24543:74;;24624:117;24693:24;24711:5;24693:24;;;24686:5;24683:35;24673:2;;24732:1;24729;24722:12;24673:2;24667:74;;24748:115;24816:23;24833:5;24816:23;;;24809:5;24806:34;24796:2;;24854:1;24851;24844:12;24796:2;24790:73;;24870:113;24937:22;24953:5;24937:22;;;24930:5;24927:33;24917:2;;24974:1;24971;24964:12;24917:2;24911:72;

Swarm Source

bzzr://3b7719802efe079b4a1ae6cdecdae0166c399d6fd08acbaa9f32065c27fe209a
[ 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.