ETH Price: $2,717.75 (+12.19%)
 

Overview

Max Total Supply

100,000,000 AMPT

Holders

49 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000 AMPT

Value
$0.00
0xd94b4aa164bb889030dde8aa1fc83db7528a6142
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Building Inclusive Trade Finance through DeFi Lending

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AMPT

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-01-19
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.4;

contract AMPT {

    /// @notice EIP-20 token name for this token
    string public constant name = "Amplify Token";

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

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

    /// @notice Total number of tokens in circulation
    uint256 public constant totalSupply = 100_000_000e18; // 100 million AMPT

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

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

    /// @dev A record of each account's delegate
    mapping (address => address) public delegates;

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

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

    /// @notice The number of checkpoints for each account
    mapping (address => uint256) 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 A record of states for signing / validating signatures
    mapping (address => uint256) public nonces;

    /// @notice An event that's emitted when an account changes their delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event that's emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 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);

    /// @dev A constant to be used in comparing
    uint256 internal constant MAX_UINT256 = 2**256 - 1;

    /**
     * @notice Construct a new AMPT token
     * @param account The initial account to grant all the tokens
     */
    constructor(address account) {
        require(account != address(0), "constructor from the zero address");
        balances[account] = 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 (uint256) {
        return allowances[account][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, allowances[msg.sender][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 currentAllowance = allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);

        return true;
    }

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

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

    /**
     * @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 (uint256) {
        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, uint256 rawAmount) external returns (bool) {
        _transferTokens(msg.sender, dst, rawAmount);
        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, uint256 rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint256 spenderAllowance = allowances[src][spender];

        if (spender != src && spenderAllowance != MAX_UINT256) {
            require(spenderAllowance >= rawAmount, "AMPT::transferFrom: transfer amount exceeds spender allowance");
            uint256 newAllowance = spenderAllowance - rawAmount;
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

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

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) external {
        _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, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external {
        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), "AMPT::delegateBySig: invalid signature");
        require(nonce == nonces[signatory], "AMPT::delegateBySig: invalid nonce");
        nonces[signatory]++;
        require(getBlockTimestamp() <= expiry, "AMPT::delegateBySig: signature expired");
        _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 (uint256) {
        uint256 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, uint256 blockNumber) external view returns (uint256) {
        uint256 currentBlockNumber = getBlockNumber();
        require(currentBlockNumber > blockNumber, "AMPT::getPriorVotes: not yet determined");

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

        uint256 lower = 0;
        uint256 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint256 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];
        uint256 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

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

        balances[src] = safeSub(balances[src], amount, "AMPT::_transferTokens: transfer amount exceeds balance");
        balances[dst] += amount;
        emit Transfer(src, dst, amount);

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

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

            if (dstRep != address(0)) {
                uint256 dstRepNum = numCheckpoints[dstRep];
                uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint256 dstRepNew = dstRepOld + amount;
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint256 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal {
      uint256 currentBlockNumber = getBlockNumber();

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

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function getBlockNumber() public virtual view returns (uint256) {
        return block.number;
    }

    function getBlockTimestamp() public virtual view returns (uint256) {
        return block.timestamp;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"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"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002de238038062002de283398181016040528101906200003791906200018a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a190620001ee565b60405180910390fd5b6a52b7d2dcc80cd2e4000000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e400000060405162000164919062000210565b60405180910390a350620002e5565b6000815190506200018481620002cb565b92915050565b6000602082840312156200019d57600080fd5b6000620001ad8482850162000173565b91505092915050565b6000620001c56021836200022d565b9150620001d2826200027c565b604082019050919050565b620001e88162000272565b82525050565b600060208201905081810360008301526200020981620001b6565b9050919050565b6000602082019050620002276000830184620001dd565b92915050565b600082825260208201905092915050565b60006200024b8262000252565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f636f6e7374727563746f722066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b620002d6816200023e565b8114620002e257600080fd5b50565b612aed80620002f56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636fcfff45116100c3578063a457c2d71161007c578063a457c2d7146103f1578063a9059cbb14610421578063b4b5ea5714610451578063c3cda52014610481578063dd62ed3e1461049d578063e7a324dc146104cd5761014d565b80636fcfff45146102f557806370a0823114610325578063782d6fe114610355578063796b89b9146103855780637ecebe00146103a357806395d89b41146103d35761014d565b806323b872dd1161011557806323b872dd1461020d578063313ce5671461023d578063395093511461025b57806342cbb15c1461028b578063587cde1e146102a95780635c19a95c146102d95761014d565b806306fdde0314610152578063095ea7b3146101705780630cdfebfa146101a057806318160ddd146101d157806320606b70146101ef575b600080fd5b61015a6104eb565b60405161016791906122c7565b60405180910390f35b61018a60048036038101906101859190611e8f565b610524565b60405161019791906121c2565b60405180910390f35b6101ba60048036038101906101b59190611e8f565b61053b565b6040516101c8929190612444565b60405180910390f35b6101d961056c565b6040516101e69190612429565b60405180910390f35b6101f761057b565b60405161020491906121dd565b60405180910390f35b61022760048036038101906102229190611e40565b61059f565b60405161023491906121c2565b60405180910390f35b6102456107d8565b604051610252919061246d565b60405180910390f35b61027560048036038101906102709190611e8f565b6107dd565b60405161028291906121c2565b60405180910390f35b61029361087a565b6040516102a09190612429565b60405180910390f35b6102c360048036038101906102be9190611ddb565b610882565b6040516102d091906121a7565b60405180910390f35b6102f360048036038101906102ee9190611ddb565b6108b5565b005b61030f600480360381019061030a9190611ddb565b6108c2565b60405161031c9190612429565b60405180910390f35b61033f600480360381019061033a9190611ddb565b6108da565b60405161034c9190612429565b60405180910390f35b61036f600480360381019061036a9190611e8f565b610923565b60405161037c9190612429565b60405180910390f35b61038d610c5e565b60405161039a9190612429565b60405180910390f35b6103bd60048036038101906103b89190611ddb565b610c66565b6040516103ca9190612429565b60405180910390f35b6103db610c7e565b6040516103e891906122c7565b60405180910390f35b61040b60048036038101906104069190611e8f565b610cb7565b60405161041891906121c2565b60405180910390f35b61043b60048036038101906104369190611e8f565b610d9c565b60405161044891906121c2565b60405180910390f35b61046b60048036038101906104669190611ddb565b610db3565b6040516104789190612429565b60405180910390f35b61049b60048036038101906104969190611ecb565b610e70565b005b6104b760048036038101906104b29190611e04565b61117b565b6040516104c49190612429565b60405180910390f35b6104d5611201565b6040516104e291906121dd565b60405180910390f35b6040518060400160405280600d81526020017f416d706c69667920546f6b656e0000000000000000000000000000000000000081525081565b6000610531338484611225565b6001905092915050565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b6a52b7d2dcc80cd2e400000081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60008033905060008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561068157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b156107c057838110156106c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c090612349565b60405180910390fd5b600084826106d79190612536565b9050806000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107b69190612429565b60405180910390a3505b6107cb8686866113ef565b6001925050509392505050565b601281565b60006108703384846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461086b91906124af565b611225565b6001905092915050565b600043905090565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108bf33826116fd565b50565b60046020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008061092e61087a565b9050828111610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906123c9565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156109ca57600092505050610c58565b83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a199190612536565b81526020019081526020016000206000015411610a9957600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610a7e9190612536565b81526020019081526020016000206001015492505050610c58565b83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808152602001908152602001600020600001541115610aff57600092505050610c58565b600080600183610b0f9190612536565b90505b81811115610bfd57600060028383610b2a9190612536565b610b349190612505565b82610b3f9190612536565b90506000600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090508781600001511415610bd25780602001519650505050505050610c58565b8781600001511015610be657819350610bf6565b600182610bf39190612536565b92505b5050610b12565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101549450505050505b92915050565b600042905090565b60056020528060005260406000206000915090505481565b6040518060400160405280600481526020017f414d50540000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290612409565b60405180910390fd5b610d9133858584610d8c9190612536565b611225565b600191505092915050565b6000610da93384846113ef565b6001905092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610e07576000610e68565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610e559190612536565b8152602001908152602001600020600101545b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600d81526020017f416d706c69667920546f6b656e0000000000000000000000000000000000000081525080519060200120610ed86118a5565b30604051602001610eec949392919061223d565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001610f3d94939291906121f8565b60405160208183030381529060405280519060200120905060008282604051602001610f6a929190612170565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fa79493929190612282565b6020604051602081039080840390855afa158015610fc9573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90612389565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612309565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611116906125fc565b919050555087611124610c5e565b1115611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90612329565b60405180910390fd5b61116f818b6116fd565b50505050505050505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906122e9565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e29190612429565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561145f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611456906123e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612369565b60405180910390fd5b611531600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482604051806060016040528060368152602001612a82603691396118b2565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c391906124af565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116279190612429565b60405180910390a36116f8600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611907565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a461189f828483611907565b50505050565b6000804690508091505090565b60008383111582906118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f191906122c7565b60405180910390fd5b5082840390509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119435750600081115b15611b7657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a6a576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116119d0576000611a31565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611a1e9190612536565b8152602001908152602001600020600101545b90506000611a588285604051806060016040528060288152602001612a5a602891396118b2565b9050611a6686848484611b7b565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b75576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000808211611af2576000611b53565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611b409190612536565b8152602001908152602001600020600101545b905060008382611b6391906124af565b9050611b7185848484611b7b565b5050505b5b505050565b6000611b8561087a565b9050600084118015611bf5575080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611be19190612536565b815260200190815260200160002060000154145b15611c635781600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611c499190612536565b815260200190815260200160002060010181905550611d30565b604051806040016040528082815260200183815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000820151816000015560208201518160010155905050600184611cec91906124af565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051611d78929190612444565b60405180910390a25050505050565b600081359050611d96816129fd565b92915050565b600081359050611dab81612a14565b92915050565b600081359050611dc081612a2b565b92915050565b600081359050611dd581612a42565b92915050565b600060208284031215611ded57600080fd5b6000611dfb84828501611d87565b91505092915050565b60008060408385031215611e1757600080fd5b6000611e2585828601611d87565b9250506020611e3685828601611d87565b9150509250929050565b600080600060608486031215611e5557600080fd5b6000611e6386828701611d87565b9350506020611e7486828701611d87565b9250506040611e8586828701611db1565b9150509250925092565b60008060408385031215611ea257600080fd5b6000611eb085828601611d87565b9250506020611ec185828601611db1565b9150509250929050565b60008060008060008060c08789031215611ee457600080fd5b6000611ef289828a01611d87565b9650506020611f0389828a01611db1565b9550506040611f1489828a01611db1565b9450506060611f2589828a01611dc6565b9350506080611f3689828a01611d9c565b92505060a0611f4789828a01611d9c565b9150509295509295509295565b611f5d8161256a565b82525050565b611f6c8161257c565b82525050565b611f7b81612588565b82525050565b611f92611f8d82612588565b612645565b82525050565b6000611fa382612488565b611fad8185612493565b9350611fbd8185602086016125c9565b611fc6816126ad565b840191505092915050565b6000611fde602283612493565b9150611fe9826126be565b604082019050919050565b60006120016002836124a4565b915061200c8261270d565b600282019050919050565b6000612024602283612493565b915061202f82612736565b604082019050919050565b6000612047602683612493565b915061205282612785565b604082019050919050565b600061206a603d83612493565b9150612075826127d4565b604082019050919050565b600061208d603a83612493565b915061209882612823565b604082019050919050565b60006120b0602683612493565b91506120bb82612872565b604082019050919050565b60006120d3602483612493565b91506120de826128c1565b604082019050919050565b60006120f6602783612493565b915061210182612910565b604082019050919050565b6000612119603c83612493565b91506121248261295f565b604082019050919050565b600061213c602583612493565b9150612147826129ae565b604082019050919050565b61215b816125b2565b82525050565b61216a816125bc565b82525050565b600061217b82611ff4565b91506121878285611f81565b6020820191506121978284611f81565b6020820191508190509392505050565b60006020820190506121bc6000830184611f54565b92915050565b60006020820190506121d76000830184611f63565b92915050565b60006020820190506121f26000830184611f72565b92915050565b600060808201905061220d6000830187611f72565b61221a6020830186611f54565b6122276040830185612152565b6122346060830184612152565b95945050505050565b60006080820190506122526000830187611f72565b61225f6020830186611f72565b61226c6040830185612152565b6122796060830184611f54565b95945050505050565b60006080820190506122976000830187611f72565b6122a46020830186612161565b6122b16040830185611f72565b6122be6060830184611f72565b95945050505050565b600060208201905081810360008301526122e18184611f98565b905092915050565b6000602082019050818103600083015261230281611fd1565b9050919050565b6000602082019050818103600083015261232281612017565b9050919050565b600060208201905081810360008301526123428161203a565b9050919050565b600060208201905081810360008301526123628161205d565b9050919050565b6000602082019050818103600083015261238281612080565b9050919050565b600060208201905081810360008301526123a2816120a3565b9050919050565b600060208201905081810360008301526123c2816120c6565b9050919050565b600060208201905081810360008301526123e2816120e9565b9050919050565b600060208201905081810360008301526124028161210c565b9050919050565b600060208201905081810360008301526124228161212f565b9050919050565b600060208201905061243e6000830184612152565b92915050565b60006040820190506124596000830185612152565b6124666020830184612152565b9392505050565b60006020820190506124826000830184612161565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006124ba826125b2565b91506124c5836125b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124fa576124f961264f565b5b828201905092915050565b6000612510826125b2565b915061251b836125b2565b92508261252b5761252a61267e565b5b828204905092915050565b6000612541826125b2565b915061254c836125b2565b92508282101561255f5761255e61264f565b5b828203905092915050565b600061257582612592565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156125e75780820151818401526020810190506125cc565b838111156125f6576000848401525b50505050565b6000612607826125b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561263a5761263961264f565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f414d50543a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a64656c656761746542795369673a207369676e6174757265206560008201527f7870697265640000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a7472616e7366657246726f6d3a207472616e7366657220616d6f60008201527f756e742065786365656473207370656e64657220616c6c6f77616e6365000000602082015250565b7f414d50543a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008201527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015250565b7f414d50543a3a64656c656761746542795369673a20696e76616c69642073696760008201527f6e61747572650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008201527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612a068161256a565b8114612a1157600080fd5b50565b612a1d81612588565b8114612a2857600080fd5b50565b612a34816125b2565b8114612a3f57600080fd5b50565b612a4b816125bc565b8114612a5657600080fd5b5056fe414d50543a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773414d50543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220a2f4cd8d51610dc1c6773f0693b3f8d9c435344f26fb6408e35089dde035f3a064736f6c63430008040033000000000000000000000000fcca073be04a6621f0095665c16a0429b9967e6f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80636fcfff45116100c3578063a457c2d71161007c578063a457c2d7146103f1578063a9059cbb14610421578063b4b5ea5714610451578063c3cda52014610481578063dd62ed3e1461049d578063e7a324dc146104cd5761014d565b80636fcfff45146102f557806370a0823114610325578063782d6fe114610355578063796b89b9146103855780637ecebe00146103a357806395d89b41146103d35761014d565b806323b872dd1161011557806323b872dd1461020d578063313ce5671461023d578063395093511461025b57806342cbb15c1461028b578063587cde1e146102a95780635c19a95c146102d95761014d565b806306fdde0314610152578063095ea7b3146101705780630cdfebfa146101a057806318160ddd146101d157806320606b70146101ef575b600080fd5b61015a6104eb565b60405161016791906122c7565b60405180910390f35b61018a60048036038101906101859190611e8f565b610524565b60405161019791906121c2565b60405180910390f35b6101ba60048036038101906101b59190611e8f565b61053b565b6040516101c8929190612444565b60405180910390f35b6101d961056c565b6040516101e69190612429565b60405180910390f35b6101f761057b565b60405161020491906121dd565b60405180910390f35b61022760048036038101906102229190611e40565b61059f565b60405161023491906121c2565b60405180910390f35b6102456107d8565b604051610252919061246d565b60405180910390f35b61027560048036038101906102709190611e8f565b6107dd565b60405161028291906121c2565b60405180910390f35b61029361087a565b6040516102a09190612429565b60405180910390f35b6102c360048036038101906102be9190611ddb565b610882565b6040516102d091906121a7565b60405180910390f35b6102f360048036038101906102ee9190611ddb565b6108b5565b005b61030f600480360381019061030a9190611ddb565b6108c2565b60405161031c9190612429565b60405180910390f35b61033f600480360381019061033a9190611ddb565b6108da565b60405161034c9190612429565b60405180910390f35b61036f600480360381019061036a9190611e8f565b610923565b60405161037c9190612429565b60405180910390f35b61038d610c5e565b60405161039a9190612429565b60405180910390f35b6103bd60048036038101906103b89190611ddb565b610c66565b6040516103ca9190612429565b60405180910390f35b6103db610c7e565b6040516103e891906122c7565b60405180910390f35b61040b60048036038101906104069190611e8f565b610cb7565b60405161041891906121c2565b60405180910390f35b61043b60048036038101906104369190611e8f565b610d9c565b60405161044891906121c2565b60405180910390f35b61046b60048036038101906104669190611ddb565b610db3565b6040516104789190612429565b60405180910390f35b61049b60048036038101906104969190611ecb565b610e70565b005b6104b760048036038101906104b29190611e04565b61117b565b6040516104c49190612429565b60405180910390f35b6104d5611201565b6040516104e291906121dd565b60405180910390f35b6040518060400160405280600d81526020017f416d706c69667920546f6b656e0000000000000000000000000000000000000081525081565b6000610531338484611225565b6001905092915050565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b6a52b7d2dcc80cd2e400000081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60008033905060008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561068157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b156107c057838110156106c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c090612349565b60405180910390fd5b600084826106d79190612536565b9050806000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107b69190612429565b60405180910390a3505b6107cb8686866113ef565b6001925050509392505050565b601281565b60006108703384846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461086b91906124af565b611225565b6001905092915050565b600043905090565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108bf33826116fd565b50565b60046020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008061092e61087a565b9050828111610972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610969906123c9565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156109ca57600092505050610c58565b83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a199190612536565b81526020019081526020016000206000015411610a9957600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610a7e9190612536565b81526020019081526020016000206001015492505050610c58565b83600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808152602001908152602001600020600001541115610aff57600092505050610c58565b600080600183610b0f9190612536565b90505b81811115610bfd57600060028383610b2a9190612536565b610b349190612505565b82610b3f9190612536565b90506000600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206040518060400160405290816000820154815260200160018201548152505090508781600001511415610bd25780602001519650505050505050610c58565b8781600001511015610be657819350610bf6565b600182610bf39190612536565b92505b5050610b12565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101549450505050505b92915050565b600042905090565b60056020528060005260406000206000915090505481565b6040518060400160405280600481526020017f414d50540000000000000000000000000000000000000000000000000000000081525081565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290612409565b60405180910390fd5b610d9133858584610d8c9190612536565b611225565b600191505092915050565b6000610da93384846113ef565b6001905092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610e07576000610e68565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610e559190612536565b8152602001908152602001600020600101545b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600d81526020017f416d706c69667920546f6b656e0000000000000000000000000000000000000081525080519060200120610ed86118a5565b30604051602001610eec949392919061223d565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001610f3d94939291906121f8565b60405160208183030381529060405280519060200120905060008282604051602001610f6a929190612170565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fa79493929190612282565b6020604051602081039080840390855afa158015610fc9573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90612389565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612309565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611116906125fc565b919050555087611124610c5e565b1115611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90612329565b60405180910390fd5b61116f818b6116fd565b50505050505050505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906122e9565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e29190612429565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561145f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611456906123e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612369565b60405180910390fd5b611531600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482604051806060016040528060368152602001612a82603691396118b2565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115c391906124af565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116279190612429565b60405180910390a36116f8600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611907565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a461189f828483611907565b50505050565b6000804690508091505090565b60008383111582906118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f191906122c7565b60405180910390fd5b5082840390509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119435750600081115b15611b7657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a6a576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116119d0576000611a31565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611a1e9190612536565b8152602001908152602001600020600101545b90506000611a588285604051806060016040528060288152602001612a5a602891396118b2565b9050611a6686848484611b7b565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b75576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000808211611af2576000611b53565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611b409190612536565b8152602001908152602001600020600101545b905060008382611b6391906124af565b9050611b7185848484611b7b565b5050505b5b505050565b6000611b8561087a565b9050600084118015611bf5575080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611be19190612536565b815260200190815260200160002060000154145b15611c635781600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611c499190612536565b815260200190815260200160002060010181905550611d30565b604051806040016040528082815260200183815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000820151816000015560208201518160010155905050600184611cec91906124af565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051611d78929190612444565b60405180910390a25050505050565b600081359050611d96816129fd565b92915050565b600081359050611dab81612a14565b92915050565b600081359050611dc081612a2b565b92915050565b600081359050611dd581612a42565b92915050565b600060208284031215611ded57600080fd5b6000611dfb84828501611d87565b91505092915050565b60008060408385031215611e1757600080fd5b6000611e2585828601611d87565b9250506020611e3685828601611d87565b9150509250929050565b600080600060608486031215611e5557600080fd5b6000611e6386828701611d87565b9350506020611e7486828701611d87565b9250506040611e8586828701611db1565b9150509250925092565b60008060408385031215611ea257600080fd5b6000611eb085828601611d87565b9250506020611ec185828601611db1565b9150509250929050565b60008060008060008060c08789031215611ee457600080fd5b6000611ef289828a01611d87565b9650506020611f0389828a01611db1565b9550506040611f1489828a01611db1565b9450506060611f2589828a01611dc6565b9350506080611f3689828a01611d9c565b92505060a0611f4789828a01611d9c565b9150509295509295509295565b611f5d8161256a565b82525050565b611f6c8161257c565b82525050565b611f7b81612588565b82525050565b611f92611f8d82612588565b612645565b82525050565b6000611fa382612488565b611fad8185612493565b9350611fbd8185602086016125c9565b611fc6816126ad565b840191505092915050565b6000611fde602283612493565b9150611fe9826126be565b604082019050919050565b60006120016002836124a4565b915061200c8261270d565b600282019050919050565b6000612024602283612493565b915061202f82612736565b604082019050919050565b6000612047602683612493565b915061205282612785565b604082019050919050565b600061206a603d83612493565b9150612075826127d4565b604082019050919050565b600061208d603a83612493565b915061209882612823565b604082019050919050565b60006120b0602683612493565b91506120bb82612872565b604082019050919050565b60006120d3602483612493565b91506120de826128c1565b604082019050919050565b60006120f6602783612493565b915061210182612910565b604082019050919050565b6000612119603c83612493565b91506121248261295f565b604082019050919050565b600061213c602583612493565b9150612147826129ae565b604082019050919050565b61215b816125b2565b82525050565b61216a816125bc565b82525050565b600061217b82611ff4565b91506121878285611f81565b6020820191506121978284611f81565b6020820191508190509392505050565b60006020820190506121bc6000830184611f54565b92915050565b60006020820190506121d76000830184611f63565b92915050565b60006020820190506121f26000830184611f72565b92915050565b600060808201905061220d6000830187611f72565b61221a6020830186611f54565b6122276040830185612152565b6122346060830184612152565b95945050505050565b60006080820190506122526000830187611f72565b61225f6020830186611f72565b61226c6040830185612152565b6122796060830184611f54565b95945050505050565b60006080820190506122976000830187611f72565b6122a46020830186612161565b6122b16040830185611f72565b6122be6060830184611f72565b95945050505050565b600060208201905081810360008301526122e18184611f98565b905092915050565b6000602082019050818103600083015261230281611fd1565b9050919050565b6000602082019050818103600083015261232281612017565b9050919050565b600060208201905081810360008301526123428161203a565b9050919050565b600060208201905081810360008301526123628161205d565b9050919050565b6000602082019050818103600083015261238281612080565b9050919050565b600060208201905081810360008301526123a2816120a3565b9050919050565b600060208201905081810360008301526123c2816120c6565b9050919050565b600060208201905081810360008301526123e2816120e9565b9050919050565b600060208201905081810360008301526124028161210c565b9050919050565b600060208201905081810360008301526124228161212f565b9050919050565b600060208201905061243e6000830184612152565b92915050565b60006040820190506124596000830185612152565b6124666020830184612152565b9392505050565b60006020820190506124826000830184612161565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006124ba826125b2565b91506124c5836125b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124fa576124f961264f565b5b828201905092915050565b6000612510826125b2565b915061251b836125b2565b92508261252b5761252a61267e565b5b828204905092915050565b6000612541826125b2565b915061254c836125b2565b92508282101561255f5761255e61264f565b5b828203905092915050565b600061257582612592565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156125e75780820151818401526020810190506125cc565b838111156125f6576000848401525b50505050565b6000612607826125b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561263a5761263961264f565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f414d50543a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a64656c656761746542795369673a207369676e6174757265206560008201527f7870697265640000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a7472616e7366657246726f6d3a207472616e7366657220616d6f60008201527f756e742065786365656473207370656e64657220616c6c6f77616e6365000000602082015250565b7f414d50543a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008201527f616e7366657220746f20746865207a65726f2061646472657373000000000000602082015250565b7f414d50543a3a64656c656761746542795369673a20696e76616c69642073696760008201527f6e61747572650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b7f414d50543a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008201527f616e736665722066726f6d20746865207a65726f206164647265737300000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612a068161256a565b8114612a1157600080fd5b50565b612a1d81612588565b8114612a2857600080fd5b50565b612a34816125b2565b8114612a3f57600080fd5b50565b612a4b816125bc565b8114612a5657600080fd5b5056fe414d50543a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773414d50543a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220a2f4cd8d51610dc1c6773f0693b3f8d9c435344f26fb6408e35089dde035f3a064736f6c63430008040033

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

000000000000000000000000fcca073be04a6621f0095665c16a0429b9967e6f

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

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


Deployed Bytecode Sourcemap

59:13853:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;132:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3532:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1110:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;438:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1373:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:646;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;339:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4091:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13309:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;819:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7345:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1250:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5708:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9566:1290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13419:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1787:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;238:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4796:364;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6083:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7876:834;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3254:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1589:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;132:45;;;;;;;;;;;;;;;;;;;:::o;3532:150::-;3598:4;3615:37;3624:10;3636:7;3645:6;3615:8;:37::i;:::-;3670:4;3663:11;;3532:150;;;;:::o;1110:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;438:52::-;476:14;438:52;:::o;1373:122::-;1415:80;1373:122;:::o;6551:646::-;6636:4;6653:15;6671:10;6653:28;;6692:24;6719:10;:15;6730:3;6719:15;;;;;;;;;;;;;;;:24;6735:7;6719:24;;;;;;;;;;;;;;;;6692:51;;6771:3;6760:14;;:7;:14;;;;:49;;;;;2588:10;6778:16;:31;;6760:49;6756:363;;;6854:9;6834:16;:29;;6826:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;6944:20;6986:9;6967:16;:28;;;;:::i;:::-;6944:51;;7037:12;7010:10;:15;7021:3;7010:15;;;;;;;;;;;;;;;:24;7026:7;7010:24;;;;;;;;;;;;;;;:39;;;;7085:7;7071:36;;7080:3;7071:36;;;7094:12;7071:36;;;;;;:::i;:::-;;;;;;;;6756:363;;7131:36;7147:3;7152;7157:9;7131:15;:36::i;:::-;7185:4;7178:11;;;;6551:646;;;;;:::o;339:35::-;372:2;339:35;:::o;4091:210::-;4179:4;4196:75;4205:10;4217:7;4260:10;4226;:22;4237:10;4226:22;;;;;;;;;;;;;;;:31;4249:7;4226:31;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;4196:8;:75::i;:::-;4289:4;4282:11;;4091:210;;;;:::o;13309:102::-;13364:7;13391:12;13384:19;;13309:102;:::o;819:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7345:97::-;7402:32;7412:10;7424:9;7402;:32::i;:::-;7345:97;:::o;1250:50::-;;;;;;;;;;;;;;;;;:::o;5708:111::-;5767:7;5794:8;:17;5803:7;5794:17;;;;;;;;;;;;;;;;5787:24;;5708:111;;;:::o;9566:1290::-;9650:7;9670:26;9699:16;:14;:16::i;:::-;9670:45;;9755:11;9734:18;:32;9726:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;9823:20;9846:14;:23;9861:7;9846:23;;;;;;;;;;;;;;;;9823:46;;9900:1;9884:12;:17;9880:58;;;9925:1;9918:8;;;;;;9880:58;10050:11;9998;:20;10010:7;9998:20;;;;;;;;;;;;;;;:38;10034:1;10019:12;:16;;;;:::i;:::-;9998:38;;;;;;;;;;;:48;;;:63;9994:147;;10085:11;:20;10097:7;10085:20;;;;;;;;;;;;;;;:38;10121:1;10106:12;:16;;;;:::i;:::-;10085:38;;;;;;;;;;;:44;;;10078:51;;;;;;9994:147;10238:11;10202;:20;10214:7;10202:20;;;;;;;;;;;;;;;:23;10223:1;10202:23;;;;;;;;;;;:33;;;:47;10198:88;;;10273:1;10266:8;;;;;;10198:88;10298:13;10326;10357:1;10342:12;:16;;;;:::i;:::-;10326:32;;10369:429;10384:5;10376;:13;10369:429;;;10406:14;10449:1;10440:5;10432;:13;;;;:::i;:::-;10431:19;;;;:::i;:::-;10423:5;:27;;;;:::i;:::-;10406:44;;10492:20;10515:11;:20;10527:7;10515:20;;;;;;;;;;;;;;;:28;10536:6;10515:28;;;;;;;;;;;10492:51;;;;;;;;;;;;;;;;;;;;;;;;;;;10578:11;10562:2;:12;;;:27;10558:229;;;10617:2;:8;;;10610:15;;;;;;;;;;10558:229;10666:11;10651:2;:12;;;:26;10647:140;;;10706:6;10698:14;;10647:140;;;10770:1;10761:6;:10;;;;:::i;:::-;10753:18;;10647:140;10369:429;;;;;10815:11;:20;10827:7;10815:20;;;;;;;;;;;;;;;:27;10836:5;10815:27;;;;;;;;;;;:33;;;10808:40;;;;;;9566:1290;;;;;:::o;13419:108::-;13477:7;13504:15;13497:22;;13419:108;:::o;1787:42::-;;;;;;;;;;;;;;;;;:::o;238:38::-;;;;;;;;;;;;;;;;;;;:::o;4796:364::-;4881:4;4898:24;4925:10;:22;4936:10;4925:22;;;;;;;;;;;;;;;:31;4948:7;4925:31;;;;;;;;;;;;;;;;4898:58;;4995:15;4975:16;:35;;4967:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5063:65;5072:10;5084:7;5112:15;5093:16;:34;;;;:::i;:::-;5063:8;:65::i;:::-;5148:4;5141:11;;;4796:364;;;;:::o;6083:158::-;6151:4;6168:43;6184:10;6196:3;6201:9;6168:15;:43::i;:::-;6229:4;6222:11;;6083:158;;;;:::o;8911:224::-;8976:7;8996:20;9019:14;:23;9034:7;9019:23;;;;;;;;;;;;;;;;8996:46;;9075:1;9060:12;:16;:67;;9126:1;9060:67;;;9079:11;:20;9091:7;9079:20;;;;;;;;;;;;;;;:38;9115:1;9100:12;:16;;;;:::i;:::-;9079:38;;;;;;;;;;;:44;;;9060:67;9053:74;;;8911:224;;;:::o;7876:834::-;8000:23;1415:80;8080:4;;;;;;;;;;;;;;;;;8064:22;;;;;;8088:12;:10;:12::i;:::-;8110:4;8036:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8026:91;;;;;;8000:117;;8128:18;1635:71;8191:9;8202:5;8209:6;8159:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8149:68;;;;;;8128:89;;8228:14;8284:15;8301:10;8255:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8245:68;;;;;;8228:85;;8324:17;8344:26;8354:6;8362:1;8365;8368;8344:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8324:46;;8410:1;8389:23;;:9;:23;;;;8381:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8483:6;:17;8490:9;8483:17;;;;;;;;;;;;;;;;8474:5;:26;8466:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8550:6;:17;8557:9;8550:17;;;;;;;;;;;;;;;;:19;;;;;;;;;:::i;:::-;;;;;;8611:6;8588:19;:17;:19::i;:::-;:29;;8580:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:31;8681:9;8692;8671;:31::i;:::-;7876:834;;;;;;;;;;:::o;3254:139::-;3330:7;3357:10;:19;3368:7;3357:19;;;;;;;;;;;;;;;:28;3377:7;3357:28;;;;;;;;;;;;;;;;3350:35;;3254:139;;;;:::o;1589:117::-;1635:71;1589:117;:::o;5168:337::-;5279:1;5262:19;;:5;:19;;;;5254:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5360:1;5341:21;;:7;:21;;;;5333:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5443:6;5414:10;:17;5425:5;5414:17;;;;;;;;;;;;;;;:26;5432:7;5414:26;;;;;;;;;;;;;;;:35;;;;5481:7;5465:32;;5474:5;5465:32;;;5490:6;5465:32;;;;;;:::i;:::-;;;;;;;;5168:337;;;:::o;11248:544::-;11358:1;11343:17;;:3;:17;;;;11335:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;11459:1;11444:17;;:3;:17;;;;11436:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553;11561:8;:13;11570:3;11561:13;;;;;;;;;;;;;;;;11576:6;11553:88;;;;;;;;;;;;;;;;;:7;:88::i;:::-;11537:8;:13;11546:3;11537:13;;;;;;;;;;;;;;;:104;;;;11669:6;11652:8;:13;11661:3;11652:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11705:3;11691:26;;11700:3;11691:26;;;11710:6;11691:26;;;;;;:::i;:::-;;;;;;;;11730:54;11745:9;:14;11755:3;11745:14;;;;;;;;;;;;;;;;;;;;;;;;;11761:9;:14;11771:3;11761:14;;;;;;;;;;;;;;;;;;;;;;;;;11777:6;11730:14;:54::i;:::-;11248:544;;;:::o;10864:376::-;10941:23;10967:9;:20;10977:9;10967:20;;;;;;;;;;;;;;;;;;;;;;;;;10941:46;;10998:24;11025:8;:19;11034:9;11025:19;;;;;;;;;;;;;;;;10998:46;;11078:9;11055;:20;11065:9;11055:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11149:9;11105:54;;11132:15;11105:54;;11121:9;11105:54;;;;;;;;;;;;11172:60;11187:15;11204:9;11215:16;11172:14;:60::i;:::-;10864:376;;;;:::o;13753:156::-;13798:7;13818:15;13866:9;13855:20;;13894:7;13887:14;;;13753:156;:::o;13535:210::-;13625:7;13683:1;13678;:6;;13686:12;13670:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13725:1;13721;:5;13714:12;;13535:210;;;;;:::o;11800:899::-;11906:6;11896:16;;:6;:16;;;;:30;;;;;11925:1;11916:6;:10;11896:30;11892:800;;;11965:1;11947:20;;:6;:20;;;11943:387;;11988:17;12008:14;:22;12023:6;12008:22;;;;;;;;;;;;;;;;11988:42;;12049:17;12081:1;12069:9;:13;:60;;12128:1;12069:60;;;12085:11;:19;12097:6;12085:19;;;;;;;;;;;;;;;:34;12117:1;12105:9;:13;;;;:::i;:::-;12085:34;;;;;;;;;;;:40;;;12069:60;12049:80;;12148:17;12168:70;12176:9;12187:6;12168:70;;;;;;;;;;;;;;;;;:7;:70::i;:::-;12148:90;;12257:57;12274:6;12282:9;12293;12304;12257:16;:57::i;:::-;11943:387;;;;12368:1;12350:20;;:6;:20;;;12346:335;;12391:17;12411:14;:22;12426:6;12411:22;;;;;;;;;;;;;;;;12391:42;;12452:17;12484:1;12472:9;:13;:60;;12531:1;12472:60;;;12488:11;:19;12500:6;12488:19;;;;;;;;;;;;;;;:34;12520:1;12508:9;:13;;;;:::i;:::-;12488:34;;;;;;;;;;;:40;;;12472:60;12452:80;;12551:17;12583:6;12571:9;:18;;;;:::i;:::-;12551:38;;12608:57;12625:6;12633:9;12644;12655;12608:16;:57::i;:::-;12346:335;;;;11892:800;11800:899;;;:::o;12707:594::-;12828:26;12857:16;:14;:16::i;:::-;12828:45;;12903:1;12888:12;:16;:92;;;;;12962:18;12908:11;:22;12920:9;12908:22;;;;;;;;;;;;;;;:40;12946:1;12931:12;:16;;;;:::i;:::-;12908:40;;;;;;;;;;;:50;;;:72;12888:92;12884:343;;;13044:8;12995:11;:22;13007:9;12995:22;;;;;;;;;;;;;;;:40;13033:1;13018:12;:16;;;;:::i;:::-;12995:40;;;;;;;;;;;:46;;:57;;;;12884:343;;;13120:40;;;;;;;;13131:18;13120:40;;;;13151:8;13120:40;;;13081:11;:22;13093:9;13081:22;;;;;;;;;;;;;;;:36;13104:12;13081:36;;;;;;;;;;;:79;;;;;;;;;;;;;;;;;;;13216:1;13201:12;:16;;;;:::i;:::-;13173:14;:25;13188:9;13173:25;;;;;;;;;;;;;;;:44;;;;12884:343;13263:9;13242:51;;;13274:8;13284;13242:51;;;;;;;:::i;:::-;;;;;;;;12707:594;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:139::-;343:5;381:6;368:20;359:29;;397:33;424:5;397:33;:::i;:::-;349:87;;;;:::o;442:135::-;486:5;524:6;511:20;502:29;;540:31;565:5;540:31;:::i;:::-;492:85;;;;:::o;583:262::-;642:6;691:2;679:9;670:7;666:23;662:32;659:2;;;707:1;704;697:12;659:2;750:1;775:53;820:7;811:6;800:9;796:22;775:53;:::i;:::-;765:63;;721:117;649:196;;;;:::o;851:407::-;919:6;927;976:2;964:9;955:7;951:23;947:32;944:2;;;992:1;989;982:12;944:2;1035:1;1060:53;1105:7;1096:6;1085:9;1081:22;1060:53;:::i;:::-;1050:63;;1006:117;1162:2;1188:53;1233:7;1224:6;1213:9;1209:22;1188:53;:::i;:::-;1178:63;;1133:118;934:324;;;;;:::o;1264:552::-;1341:6;1349;1357;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1422:1;1419;1412:12;1374:2;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1364:452;;;;;:::o;1822:407::-;1890:6;1898;1947:2;1935:9;1926:7;1922:23;1918:32;1915:2;;;1963:1;1960;1953:12;1915:2;2006:1;2031:53;2076:7;2067:6;2056:9;2052:22;2031:53;:::i;:::-;2021:63;;1977:117;2133:2;2159:53;2204:7;2195:6;2184:9;2180:22;2159:53;:::i;:::-;2149:63;;2104:118;1905:324;;;;;:::o;2235:986::-;2337:6;2345;2353;2361;2369;2377;2426:3;2414:9;2405:7;2401:23;2397:33;2394:2;;;2443:1;2440;2433:12;2394:2;2486:1;2511:53;2556:7;2547:6;2536:9;2532:22;2511:53;:::i;:::-;2501:63;;2457:117;2613:2;2639:53;2684:7;2675:6;2664:9;2660:22;2639:53;:::i;:::-;2629:63;;2584:118;2741:2;2767:53;2812:7;2803:6;2792:9;2788:22;2767:53;:::i;:::-;2757:63;;2712:118;2869:2;2895:51;2938:7;2929:6;2918:9;2914:22;2895:51;:::i;:::-;2885:61;;2840:116;2995:3;3022:53;3067:7;3058:6;3047:9;3043:22;3022:53;:::i;:::-;3012:63;;2966:119;3124:3;3151:53;3196:7;3187:6;3176:9;3172:22;3151:53;:::i;:::-;3141:63;;3095:119;2384:837;;;;;;;;:::o;3227:118::-;3314:24;3332:5;3314:24;:::i;:::-;3309:3;3302:37;3292:53;;:::o;3351:109::-;3432:21;3447:5;3432:21;:::i;:::-;3427:3;3420:34;3410:50;;:::o;3466:118::-;3553:24;3571:5;3553:24;:::i;:::-;3548:3;3541:37;3531:53;;:::o;3590:157::-;3695:45;3715:24;3733:5;3715:24;:::i;:::-;3695:45;:::i;:::-;3690:3;3683:58;3673:74;;:::o;3753:364::-;3841:3;3869:39;3902:5;3869:39;:::i;:::-;3924:71;3988:6;3983:3;3924:71;:::i;:::-;3917:78;;4004:52;4049:6;4044:3;4037:4;4030:5;4026:16;4004:52;:::i;:::-;4081:29;4103:6;4081:29;:::i;:::-;4076:3;4072:39;4065:46;;3845:272;;;;;:::o;4123:366::-;4265:3;4286:67;4350:2;4345:3;4286:67;:::i;:::-;4279:74;;4362:93;4451:3;4362:93;:::i;:::-;4480:2;4475:3;4471:12;4464:19;;4269:220;;;:::o;4495:400::-;4655:3;4676:84;4758:1;4753:3;4676:84;:::i;:::-;4669:91;;4769:93;4858:3;4769:93;:::i;:::-;4887:1;4882:3;4878:11;4871:18;;4659:236;;;:::o;4901:366::-;5043:3;5064:67;5128:2;5123:3;5064:67;:::i;:::-;5057:74;;5140:93;5229:3;5140:93;:::i;:::-;5258:2;5253:3;5249:12;5242:19;;5047:220;;;:::o;5273:366::-;5415:3;5436:67;5500:2;5495:3;5436:67;:::i;:::-;5429:74;;5512:93;5601:3;5512:93;:::i;:::-;5630:2;5625:3;5621:12;5614:19;;5419:220;;;:::o;5645:366::-;5787:3;5808:67;5872:2;5867:3;5808:67;:::i;:::-;5801:74;;5884:93;5973:3;5884:93;:::i;:::-;6002:2;5997:3;5993:12;5986:19;;5791:220;;;:::o;6017:366::-;6159:3;6180:67;6244:2;6239:3;6180:67;:::i;:::-;6173:74;;6256:93;6345:3;6256:93;:::i;:::-;6374:2;6369:3;6365:12;6358:19;;6163:220;;;:::o;6389:366::-;6531:3;6552:67;6616:2;6611:3;6552:67;:::i;:::-;6545:74;;6628:93;6717:3;6628:93;:::i;:::-;6746:2;6741:3;6737:12;6730:19;;6535:220;;;:::o;6761:366::-;6903:3;6924:67;6988:2;6983:3;6924:67;:::i;:::-;6917:74;;7000:93;7089:3;7000:93;:::i;:::-;7118:2;7113:3;7109:12;7102:19;;6907:220;;;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7279:220;;;:::o;7505:366::-;7647:3;7668:67;7732:2;7727:3;7668:67;:::i;:::-;7661:74;;7744:93;7833:3;7744:93;:::i;:::-;7862:2;7857:3;7853:12;7846:19;;7651:220;;;:::o;7877:366::-;8019:3;8040:67;8104:2;8099:3;8040:67;:::i;:::-;8033:74;;8116:93;8205:3;8116:93;:::i;:::-;8234:2;8229:3;8225:12;8218:19;;8023:220;;;:::o;8249:118::-;8336:24;8354:5;8336:24;:::i;:::-;8331:3;8324:37;8314:53;;:::o;8373:112::-;8456:22;8472:5;8456:22;:::i;:::-;8451:3;8444:35;8434:51;;:::o;8491:663::-;8732:3;8754:148;8898:3;8754:148;:::i;:::-;8747:155;;8912:75;8983:3;8974:6;8912:75;:::i;:::-;9012:2;9007:3;9003:12;8996:19;;9025:75;9096:3;9087:6;9025:75;:::i;:::-;9125:2;9120:3;9116:12;9109:19;;9145:3;9138:10;;8736:418;;;;;:::o;9160:222::-;9253:4;9291:2;9280:9;9276:18;9268:26;;9304:71;9372:1;9361:9;9357:17;9348:6;9304:71;:::i;:::-;9258:124;;;;:::o;9388:210::-;9475:4;9513:2;9502:9;9498:18;9490:26;;9526:65;9588:1;9577:9;9573:17;9564:6;9526:65;:::i;:::-;9480:118;;;;:::o;9604:222::-;9697:4;9735:2;9724:9;9720:18;9712:26;;9748:71;9816:1;9805:9;9801:17;9792:6;9748:71;:::i;:::-;9702:124;;;;:::o;9832:553::-;10009:4;10047:3;10036:9;10032:19;10024:27;;10061:71;10129:1;10118:9;10114:17;10105:6;10061:71;:::i;:::-;10142:72;10210:2;10199:9;10195:18;10186:6;10142:72;:::i;:::-;10224;10292:2;10281:9;10277:18;10268:6;10224:72;:::i;:::-;10306;10374:2;10363:9;10359:18;10350:6;10306:72;:::i;:::-;10014:371;;;;;;;:::o;10391:553::-;10568:4;10606:3;10595:9;10591:19;10583:27;;10620:71;10688:1;10677:9;10673:17;10664:6;10620:71;:::i;:::-;10701:72;10769:2;10758:9;10754:18;10745:6;10701:72;:::i;:::-;10783;10851:2;10840:9;10836:18;10827:6;10783:72;:::i;:::-;10865;10933:2;10922:9;10918:18;10909:6;10865:72;:::i;:::-;10573:371;;;;;;;:::o;10950:545::-;11123:4;11161:3;11150:9;11146:19;11138:27;;11175:71;11243:1;11232:9;11228:17;11219:6;11175:71;:::i;:::-;11256:68;11320:2;11309:9;11305:18;11296:6;11256:68;:::i;:::-;11334:72;11402:2;11391:9;11387:18;11378:6;11334:72;:::i;:::-;11416;11484:2;11473:9;11469:18;11460:6;11416:72;:::i;:::-;11128:367;;;;;;;:::o;11501:313::-;11614:4;11652:2;11641:9;11637:18;11629:26;;11701:9;11695:4;11691:20;11687:1;11676:9;11672:17;11665:47;11729:78;11802:4;11793:6;11729:78;:::i;:::-;11721:86;;11619:195;;;;:::o;11820:419::-;11986:4;12024:2;12013:9;12009:18;12001:26;;12073:9;12067:4;12063:20;12059:1;12048:9;12044:17;12037:47;12101:131;12227:4;12101:131;:::i;:::-;12093:139;;11991:248;;;:::o;12245:419::-;12411:4;12449:2;12438:9;12434:18;12426:26;;12498:9;12492:4;12488:20;12484:1;12473:9;12469:17;12462:47;12526:131;12652:4;12526:131;:::i;:::-;12518:139;;12416:248;;;:::o;12670:419::-;12836:4;12874:2;12863:9;12859:18;12851:26;;12923:9;12917:4;12913:20;12909:1;12898:9;12894:17;12887:47;12951:131;13077:4;12951:131;:::i;:::-;12943:139;;12841:248;;;:::o;13095:419::-;13261:4;13299:2;13288:9;13284:18;13276:26;;13348:9;13342:4;13338:20;13334:1;13323:9;13319:17;13312:47;13376:131;13502:4;13376:131;:::i;:::-;13368:139;;13266:248;;;:::o;13520:419::-;13686:4;13724:2;13713:9;13709:18;13701:26;;13773:9;13767:4;13763:20;13759:1;13748:9;13744:17;13737:47;13801:131;13927:4;13801:131;:::i;:::-;13793:139;;13691:248;;;:::o;13945:419::-;14111:4;14149:2;14138:9;14134:18;14126:26;;14198:9;14192:4;14188:20;14184:1;14173:9;14169:17;14162:47;14226:131;14352:4;14226:131;:::i;:::-;14218:139;;14116:248;;;:::o;14370:419::-;14536:4;14574:2;14563:9;14559:18;14551:26;;14623:9;14617:4;14613:20;14609:1;14598:9;14594:17;14587:47;14651:131;14777:4;14651:131;:::i;:::-;14643:139;;14541:248;;;:::o;14795:419::-;14961:4;14999:2;14988:9;14984:18;14976:26;;15048:9;15042:4;15038:20;15034:1;15023:9;15019:17;15012:47;15076:131;15202:4;15076:131;:::i;:::-;15068:139;;14966:248;;;:::o;15220:419::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15473:9;15467:4;15463:20;15459:1;15448:9;15444:17;15437:47;15501:131;15627:4;15501:131;:::i;:::-;15493:139;;15391:248;;;:::o;15645:419::-;15811:4;15849:2;15838:9;15834:18;15826:26;;15898:9;15892:4;15888:20;15884:1;15873:9;15869:17;15862:47;15926:131;16052:4;15926:131;:::i;:::-;15918:139;;15816:248;;;:::o;16070:222::-;16163:4;16201:2;16190:9;16186:18;16178:26;;16214:71;16282:1;16271:9;16267:17;16258:6;16214:71;:::i;:::-;16168:124;;;;:::o;16298:332::-;16419:4;16457:2;16446:9;16442:18;16434:26;;16470:71;16538:1;16527:9;16523:17;16514:6;16470:71;:::i;:::-;16551:72;16619:2;16608:9;16604:18;16595:6;16551:72;:::i;:::-;16424:206;;;;;:::o;16636:214::-;16725:4;16763:2;16752:9;16748:18;16740:26;;16776:67;16840:1;16829:9;16825:17;16816:6;16776:67;:::i;:::-;16730:120;;;;:::o;16856:99::-;16908:6;16942:5;16936:12;16926:22;;16915:40;;;:::o;16961:169::-;17045:11;17079:6;17074:3;17067:19;17119:4;17114:3;17110:14;17095:29;;17057:73;;;;:::o;17136:148::-;17238:11;17275:3;17260:18;;17250:34;;;;:::o;17290:305::-;17330:3;17349:20;17367:1;17349:20;:::i;:::-;17344:25;;17383:20;17401:1;17383:20;:::i;:::-;17378:25;;17537:1;17469:66;17465:74;17462:1;17459:81;17456:2;;;17543:18;;:::i;:::-;17456:2;17587:1;17584;17580:9;17573:16;;17334:261;;;;:::o;17601:185::-;17641:1;17658:20;17676:1;17658:20;:::i;:::-;17653:25;;17692:20;17710:1;17692:20;:::i;:::-;17687:25;;17731:1;17721:2;;17736:18;;:::i;:::-;17721:2;17778:1;17775;17771:9;17766:14;;17643:143;;;;:::o;17792:191::-;17832:4;17852:20;17870:1;17852:20;:::i;:::-;17847:25;;17886:20;17904:1;17886:20;:::i;:::-;17881:25;;17925:1;17922;17919:8;17916:2;;;17930:18;;:::i;:::-;17916:2;17975:1;17972;17968:9;17960:17;;17837:146;;;;:::o;17989:96::-;18026:7;18055:24;18073:5;18055:24;:::i;:::-;18044:35;;18034:51;;;:::o;18091:90::-;18125:7;18168:5;18161:13;18154:21;18143:32;;18133:48;;;:::o;18187:77::-;18224:7;18253:5;18242:16;;18232:32;;;:::o;18270:126::-;18307:7;18347:42;18340:5;18336:54;18325:65;;18315:81;;;:::o;18402:77::-;18439:7;18468:5;18457:16;;18447:32;;;:::o;18485:86::-;18520:7;18560:4;18553:5;18549:16;18538:27;;18528:43;;;:::o;18577:307::-;18645:1;18655:113;18669:6;18666:1;18663:13;18655:113;;;18754:1;18749:3;18745:11;18739:18;18735:1;18730:3;18726:11;18719:39;18691:2;18688:1;18684:10;18679:15;;18655:113;;;18786:6;18783:1;18780:13;18777:2;;;18866:1;18857:6;18852:3;18848:16;18841:27;18777:2;18626:258;;;;:::o;18890:233::-;18929:3;18952:24;18970:5;18952:24;:::i;:::-;18943:33;;18998:66;18991:5;18988:77;18985:2;;;19068:18;;:::i;:::-;18985:2;19115:1;19108:5;19104:13;19097:20;;18933:190;;;:::o;19129:79::-;19168:7;19197:5;19186:16;;19176:32;;;:::o;19214:180::-;19262:77;19259:1;19252:88;19359:4;19356:1;19349:15;19383:4;19380:1;19373:15;19400:180;19448:77;19445:1;19438:88;19545:4;19542:1;19535:15;19569:4;19566:1;19559:15;19586:102;19627:6;19678:2;19674:7;19669:2;19662:5;19658:14;19654:28;19644:38;;19634:54;;;:::o;19694:221::-;19834:34;19830:1;19822:6;19818:14;19811:58;19903:4;19898:2;19890:6;19886:15;19879:29;19800:115;:::o;19921:214::-;20061:66;20057:1;20049:6;20045:14;20038:90;20027:108;:::o;20141:221::-;20281:34;20277:1;20269:6;20265:14;20258:58;20350:4;20345:2;20337:6;20333:15;20326:29;20247:115;:::o;20368:225::-;20508:34;20504:1;20496:6;20492:14;20485:58;20577:8;20572:2;20564:6;20560:15;20553:33;20474:119;:::o;20599:248::-;20739:34;20735:1;20727:6;20723:14;20716:58;20808:31;20803:2;20795:6;20791:15;20784:56;20705:142;:::o;20853:245::-;20993:34;20989:1;20981:6;20977:14;20970:58;21062:28;21057:2;21049:6;21045:15;21038:53;20959:139;:::o;21104:225::-;21244:34;21240:1;21232:6;21228:14;21221:58;21313:8;21308:2;21300:6;21296:15;21289:33;21210:119;:::o;21335:223::-;21475:34;21471:1;21463:6;21459:14;21452:58;21544:6;21539:2;21531:6;21527:15;21520:31;21441:117;:::o;21564:226::-;21704:34;21700:1;21692:6;21688:14;21681:58;21773:9;21768:2;21760:6;21756:15;21749:34;21670:120;:::o;21796:247::-;21936:34;21932:1;21924:6;21920:14;21913:58;22005:30;22000:2;21992:6;21988:15;21981:55;21902:141;:::o;22049:224::-;22189:34;22185:1;22177:6;22173:14;22166:58;22258:7;22253:2;22245:6;22241:15;22234:32;22155:118;:::o;22279:122::-;22352:24;22370:5;22352:24;:::i;:::-;22345:5;22342:35;22332:2;;22391:1;22388;22381:12;22332:2;22322:79;:::o;22407:122::-;22480:24;22498:5;22480:24;:::i;:::-;22473:5;22470:35;22460:2;;22519:1;22516;22509:12;22460:2;22450:79;:::o;22535:122::-;22608:24;22626:5;22608:24;:::i;:::-;22601:5;22598:35;22588:2;;22647:1;22644;22637:12;22588:2;22578:79;:::o;22663:118::-;22734:22;22750:5;22734:22;:::i;:::-;22727:5;22724:33;22714:2;;22771:1;22768;22761:12;22714:2;22704:77;:::o

Swarm Source

ipfs://a2f4cd8d51610dc1c6773f0693b3f8d9c435344f26fb6408e35089dde035f3a0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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