Token YetiSwap

Overview ERC20

Price
$0.00 @ 0.000039 AVAX (+3.84%)
Fully Diluted Market Cap
Total Supply:
556,000,000 YTS

Holders:
4,419 addresses

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

A decentralized exchange for Avalanche assets with fast settlement, low transaction fees. YetiSwap brings you the best trading opportunities to find and maximize your yield.

Market

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


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YTS

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-02
*/

// Sources flattened with hardhat v2.0.9 https://hardhat.org

// File contracts/SafeMath.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.16;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction underflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts with custom message on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


// File contracts/YTS.sol



pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

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

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

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

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

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

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

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

60806040526b01cbe99465251419ac0000006000553480156200002157600080fd5b50604051620037133803806200371383398181016040526200004791908101906200013f565b600054600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200011991906200017c565b60405180910390a350620001f1565b6000815190506200013981620001d7565b92915050565b6000602082840312156200015257600080fd5b6000620001628482850162000128565b91505092915050565b6200017681620001cd565b82525050565b60006020820190506200019360008301846200016b565b92915050565b6000620001a682620001ad565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620001e28162000199565b8114620001ee57600080fd5b50565b61351280620002016000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063b4b5ea571161007c578063b4b5ea571461038c578063c3cda520146103bc578063d505accf146103d8578063dd62ed3e146103f4578063e7a324dc14610424578063f1127ed81461044257610137565b806370a08231146102ae578063782d6fe1146102de5780637ecebe001461030e57806395d89b411461033e578063a9059cbb1461035c57610137565b806330adf81f116100ff57806330adf81f146101f6578063313ce56714610214578063587cde1e146102325780635c19a95c146102625780636fcfff451461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806320606b70146101a857806323b872dd146101c6575b600080fd5b610144610473565b6040516101519190612f7a565b60405180910390f35b610174600480360361016f919081019061269f565b6104ac565b6040516101819190612e14565b60405180910390f35b61019261063f565b60405161019f91906130de565b60405180910390f35b6101b0610645565b6040516101bd9190612e2f565b60405180910390f35b6101e060048036036101db91908101906125b2565b61065c565b6040516101ed9190612e14565b60405180910390f35b6101fe6108f0565b60405161020b9190612e2f565b60405180910390f35b61021c610907565b604051610229919061313d565b60405180910390f35b61024c6004803603610247919081019061254d565b61090c565b6040516102599190612df9565b60405180910390f35b61027c6004803603610277919081019061254d565b61093f565b005b6102986004803603610293919081019061254d565b61094c565b6040516102a591906130f9565b60405180910390f35b6102c860048036036102c3919081019061254d565b61096f565b6040516102d591906130de565b60405180910390f35b6102f860048036036102f3919081019061269f565b6109de565b6040516103059190613173565b60405180910390f35b6103286004803603610323919081019061254d565b610df1565b60405161033591906130de565b60405180910390f35b610346610e09565b6040516103539190612f7a565b60405180910390f35b6103766004803603610371919081019061269f565b610e42565b6040516103839190612e14565b60405180910390f35b6103a660048036036103a1919081019061254d565b610e7f565b6040516103b39190613173565b60405180910390f35b6103d660048036036103d191908101906126db565b610f6d565b005b6103f260048036036103ed9190810190612601565b611210565b005b61040e60048036036104099190810190612576565b611662565b60405161041b91906130de565b60405180910390f35b61042c61170f565b6040516104399190612e2f565b60405180910390f35b61045c60048036036104579190810190612764565b611726565b60405161046a929190613114565b60405180910390f35b6040518060400160405280600881526020017f596574695377617000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156104ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610524565b610521836040518060600160405280602481526020016133e66024913961177f565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161062c9190613158565b60405180910390a3600191505092915050565b60005481565b60405161065190612dcf565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff169050600061071f856040518060600160405280602481526020016133e66024913961177f565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561079957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b156108d75760006107c383836040518060600160405280603c815260200161340a603c91396117dd565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108cd9190613158565b60405180910390a3505b6108e287878361184e565b600193505050509392505050565b6040516108fc90612dba565b604051809103902081565b601281565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109493382611c2f565b50565b60056020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1990612fde565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610a8f576000915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610b9157600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610deb565b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610c12576000915050610deb565b600080905060006001830390505b8163ffffffff168163ffffffff161115610d6d576000600283830363ffffffff1681610c4857fe5b0482039050610c556124b6565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610d4557806020015195505050505050610deb565b86816000015163ffffffff161015610d5f57819350610d66565b6001820392505b5050610c20565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60066020528060005260406000206000915090505481565b6040518060400160405280600381526020017f595453000000000000000000000000000000000000000000000000000000000081525081565b600080610e678360405180606001604052806025815260200161338e6025913961177f565b9050610e7433858361184e565b600191505092915050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610ee9576000610f65565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000604051610f7b90612dcf565b60405180910390206040518060400160405280600881526020017f596574695377617000000000000000000000000000000000000000000000000081525080519060200120610fc8611def565b30604051602001610fdc9493929190612ef0565b604051602081830303815290604052805190602001209050600060405161100290612de4565b60405180910390208888886040516020016110209493929190612eab565b6040516020818303038152906040528051906020012090506000828260405160200161104d929190612d83565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161108a9493929190612f35565b6020604051602081039080840390855afa1580156110ac573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061307e565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90612ffe565b60405180910390fd5b874211156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f1906130be565b60405180910390fd5b611204818b611c2f565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861415611262577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050611287565b6112848660405180606001604052806023815260200161336b6023913961177f565b90505b600060405161129590612dcf565b60405180910390206040518060400160405280600881526020017f5965746953776170000000000000000000000000000000000000000000000000815250805190602001206112e2611def565b306040516020016112f69493929190612ef0565b604051602081830303815290604052805190602001209050600060405161131c90612dba565b60405180910390208a8a8a600660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161138b96959493929190612e4a565b604051602081830303815290604052805190602001209050600082826040516020016113b8929190612d83565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113f59493929190612f35565b6020604051602081039080840390855afa158015611417573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a9061303e565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f89061301e565b60405180910390fd5b88421115611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061305e565b60405180910390fd5b84600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161164c9190613158565b60405180910390a3505050505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405161171b90612de4565b604051809103902081565b6004602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca9190612f9c565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611841576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118389190612f9c565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590612fbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561192e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119259061309e565b60405180910390fd5b6119a8600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806035815260200161346c603591396117dd565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a8f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280602f81526020016134a1602f9139611dfc565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b599190613158565b60405180910390a3611c2a600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e72565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611de9828483611e72565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d9190612f9c565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ebc57506000816bffffffffffffffffffffffff16115b1561216857600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612014576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f5f576000611fdb565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006120028285604051806060016040528060278152602001613344602791396117dd565b90506120108684848461216d565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612167576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120b257600061212e565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612155828560405180606001604052806026815260200161344660269139611dfc565b90506121638584848461216d565b5050505b5b505050565b6000612191436040518060600160405280603381526020016133b360339139612460565b905060008463ffffffff1611801561222657508063ffffffff16600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122c15781600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612409565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161245192919061318e565b60405180910390a25050505050565b6000640100000000831082906124ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a39190612f9c565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124f3816132d0565b92915050565b600081359050612508816132e7565b92915050565b60008135905061251d816132fe565b92915050565b60008135905061253281613315565b92915050565b6000813590506125478161332c565b92915050565b60006020828403121561255f57600080fd5b600061256d848285016124e4565b91505092915050565b6000806040838503121561258957600080fd5b6000612597858286016124e4565b92505060206125a8858286016124e4565b9150509250929050565b6000806000606084860312156125c757600080fd5b60006125d5868287016124e4565b93505060206125e6868287016124e4565b92505060406125f78682870161250e565b9150509250925092565b600080600080600080600060e0888a03121561261c57600080fd5b600061262a8a828b016124e4565b975050602061263b8a828b016124e4565b965050604061264c8a828b0161250e565b955050606061265d8a828b0161250e565b945050608061266e8a828b01612538565b93505060a061267f8a828b016124f9565b92505060c06126908a828b016124f9565b91505092959891949750929550565b600080604083850312156126b257600080fd5b60006126c0858286016124e4565b92505060206126d18582860161250e565b9150509250929050565b60008060008060008060c087890312156126f457600080fd5b600061270289828a016124e4565b965050602061271389828a0161250e565b955050604061272489828a0161250e565b945050606061273589828a01612538565b935050608061274689828a016124f9565b92505060a061275789828a016124f9565b9150509295509295509295565b6000806040838503121561277757600080fd5b6000612785858286016124e4565b925050602061279685828601612523565b9150509250929050565b6127a9816131e9565b82525050565b6127b8816131fb565b82525050565b6127c781613207565b82525050565b6127de6127d982613207565b6132b5565b82525050565b60006127ef826131c2565b6127f981856131cd565b9350612809818560208601613282565b612812816132bf565b840191505092915050565b6000612828826131b7565b61283281856131cd565b9350612842818560208601613282565b61284b816132bf565b840191505092915050565b6000612863603b836131cd565b91507f5954533a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e736665722066726f6d20746865207a65726f206164647265737300000000006020830152604082019050919050565b60006128c96026836131cd565b91507f5954533a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061292f6021836131cd565b91507f5954533a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006129956002836131de565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006129d56052836131de565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b6000612a616019836131cd565b91507f5954533a3a7065726d69743a20756e617574686f72697a6564000000000000006000830152602082019050919050565b6000612aa16043836131de565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b6000612b2d601e836131cd565b91507f5954533a3a7065726d69743a20696e76616c6964207369676e617475726500006000830152602082019050919050565b6000612b6d601e836131cd565b91507f5954533a3a7065726d69743a207369676e6174757265206578706972656400006000830152602082019050919050565b6000612bad6025836131cd565b91507f5954533a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c13603a836131de565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000612c796039836131cd565b91507f5954533a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e7366657220746f20746865207a65726f2061646472657373000000000000006020830152604082019050919050565b6000612cdf6025836131cd565b91507f5954533a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612d4181613231565b82525050565b612d508161323b565b82525050565b612d5f8161324b565b82525050565b612d6e81613270565b82525050565b612d7d81613258565b82525050565b6000612d8e82612988565b9150612d9a82856127cd565b602082019150612daa82846127cd565b6020820191508190509392505050565b6000612dc5826129c8565b9150819050919050565b6000612dda82612a94565b9150819050919050565b6000612def82612c06565b9150819050919050565b6000602082019050612e0e60008301846127a0565b92915050565b6000602082019050612e2960008301846127af565b92915050565b6000602082019050612e4460008301846127be565b92915050565b600060c082019050612e5f60008301896127be565b612e6c60208301886127a0565b612e7960408301876127a0565b612e866060830186612d38565b612e936080830185612d38565b612ea060a0830184612d38565b979650505050505050565b6000608082019050612ec060008301876127be565b612ecd60208301866127a0565b612eda6040830185612d38565b612ee76060830184612d38565b95945050505050565b6000608082019050612f0560008301876127be565b612f1260208301866127be565b612f1f6040830185612d38565b612f2c60608301846127a0565b95945050505050565b6000608082019050612f4a60008301876127be565b612f576020830186612d56565b612f6460408301856127be565b612f7160608301846127be565b95945050505050565b60006020820190508181036000830152612f94818461281d565b905092915050565b60006020820190508181036000830152612fb681846127e4565b905092915050565b60006020820190508181036000830152612fd781612856565b9050919050565b60006020820190508181036000830152612ff7816128bc565b9050919050565b6000602082019050818103600083015261301781612922565b9050919050565b6000602082019050818103600083015261303781612a54565b9050919050565b6000602082019050818103600083015261305781612b20565b9050919050565b6000602082019050818103600083015261307781612b60565b9050919050565b6000602082019050818103600083015261309781612ba0565b9050919050565b600060208201905081810360008301526130b781612c6c565b9050919050565b600060208201905081810360008301526130d781612cd2565b9050919050565b60006020820190506130f36000830184612d38565b92915050565b600060208201905061310e6000830184612d47565b92915050565b60006040820190506131296000830185612d47565b6131366020830184612d74565b9392505050565b60006020820190506131526000830184612d56565b92915050565b600060208201905061316d6000830184612d65565b92915050565b60006020820190506131886000830184612d74565b92915050565b60006040820190506131a36000830185612d65565b6131b06020830184612d65565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006131f482613211565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061327b82613258565b9050919050565b60005b838110156132a0578082015181840152602081019050613285565b838111156132af576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6132d9816131e9565b81146132e457600080fd5b50565b6132f081613207565b81146132fb57600080fd5b50565b61330781613231565b811461331257600080fd5b50565b61331e8161323b565b811461332957600080fd5b50565b6133358161324b565b811461334057600080fd5b5056fe5954533a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77735954533a3a7065726d69743a20616d6f756e74206578636565647320393620626974735954533a3a7472616e736665723a20616d6f756e74206578636565647320393620626974735954533a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974735954533a3a617070726f76653a20616d6f756e74206578636565647320393620626974735954533a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63655954533a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735954533a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63655954533a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773a365627a7a72315820182815db043d4b6e145e5d6f1e0c4189ecb0e49f5e0ffec051f4e916cb370d1b6c6578706572696d656e74616cf564736f6c6343000510004000000000000000000000000090a42628289896041c2ba358463259b4b7ea242c

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

00000000000000000000000090a42628289896041c2ba358463259b4b7ea242c

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000090a42628289896041c2ba358463259b4b7ea242c


Deployed ByteCode Sourcemap

6831:14575:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6831:14575:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6901:40;;;:::i;:::-;;;;;;;;;;;;;;;;10662:418;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7201:40;;;:::i;:::-;;;;;;;;;;;;;;;;8125:122;;;:::i;:::-;;;;;;;;;;;;;;;;13742:670;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8548:137;;;:::i;:::-;;;;;;;;;;;;;;;;7102:35;;;:::i;:::-;;;;;;;;;;;;;;;;7575:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14560:102;;;;;;;;;;;;;;;;:::i;:::-;;8003:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12823:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16736:1217;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8766:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7002:37;;;:::i;:::-;;;;;;;;;;;;;;;;13195:237;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16083:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15096:786;;;;;;;;;;;;;;;;:::i;:::-;;11570:1050;;;;;;;;;;;;;;;;:::i;:::-;;10048:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8341:117;;;:::i;:::-;;;;;;;;;;;;;;;;7864:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6901:40;;;;;;;;;;;;;;;;;;;:::o;10662:418::-;10730:4;10747:13;10793:2;10775:9;:21;10771:172;;;10829:2;10813:19;;10771:172;;;10874:57;10881:9;10874:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;10865:66;;10771:172;10989:6;10955:10;:22;10966:10;10955:22;;;;;;;;;;;;;;;:31;10978:7;10955:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11034:7;11013:37;;11022:10;11013:37;;;11043:6;11013:37;;;;;;;;;;;;;;;11068:4;11061:11;;;10662:418;;;;:::o;7201:40::-;;;;:::o;8125:122::-;8167:80;;;;;;;;;;;;;;8125:122;:::o;13742:670::-;13824:4;13841:15;13859:10;13841:28;;13880:23;13906:10;:15;13917:3;13906:15;;;;;;;;;;;;;;;:24;13922:7;13906:24;;;;;;;;;;;;;;;;;;;;;;;;;13880:50;;13941:13;13957:57;13964:9;13957:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;13941:73;;14042:3;14031:14;;:7;:14;;;;:48;;;;;14076:2;14049:30;;:16;:30;;;;14031:48;14027:310;;;14096:19;14118:95;14124:16;14142:6;14118:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;14096:117;;14255:12;14228:10;:15;14239:3;14228:15;;;;;;;;;;;;;;;:24;14244:7;14228:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14303:7;14289:36;;14298:3;14289:36;;;14312:12;14289:36;;;;;;;;;;;;;;;14027:310;;14349:33;14365:3;14370;14375:6;14349:15;:33::i;:::-;14400:4;14393:11;;;;;13742:670;;;;;:::o;8548:137::-;8590:95;;;;;;;;;;;;;;8548:137;:::o;7102:35::-;7135:2;7102:35;:::o;7575:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14560:102::-;14622:32;14632:10;14644:9;14622;:32::i;:::-;14560:102;:::o;8003:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12823:108::-;12882:4;12906:8;:17;12915:7;12906:17;;;;;;;;;;;;;;;;;;;;;;;;;12899:24;;;;12823:108;;;:::o;16736:1217::-;16815:6;16856:12;16842:11;:26;16834:77;;;;;;;;;;;;;;;;;;;;;;16924:19;16946:14;:23;16961:7;16946:23;;;;;;;;;;;;;;;;;;;;;;;;;16924:45;;17000:1;16984:12;:17;;;16980:58;;;17025:1;17018:8;;;;;16980:58;17150:11;17098;:20;17110:7;17098:20;;;;;;;;;;;;;;;:38;17134:1;17119:12;:16;17098:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;17094:147;;17185:11;:20;17197:7;17185:20;;;;;;;;;;;;;;;:38;17221:1;17206:12;:16;17185:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;17178:51;;;;;17094:147;17338:11;17302;:20;17314:7;17302:20;;;;;;;;;;;;;;;:23;17323:1;17302:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;17298:88;;;17373:1;17366:8;;;;;17298:88;17398:12;17413:1;17398:16;;17425:12;17455:1;17440:12;:16;17425:31;;17467:428;17482:5;17474:13;;:5;:13;;;17467:428;;;17504:13;17546:1;17537:5;17529;:13;17528:19;;;;;;;;17520:5;:27;17504:43;;17589:20;;:::i;:::-;17612:11;:20;17624:7;17612:20;;;;;;;;;;;;;;;:28;17633:6;17612:28;;;;;;;;;;;;;;;17589:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17675:11;17659:2;:12;;;:27;;;17655:229;;;17714:2;:8;;;17707:15;;;;;;;;;17655:229;17763:11;17748:2;:12;;;:26;;;17744:140;;;17803:6;17795:14;;17744:140;;;17867:1;17858:6;:10;17850:18;;17744:140;17467:428;;;;;17912:11;:20;17924:7;17912:20;;;;;;;;;;;;;;;:27;17933:5;17912:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;17905:40;;;;;16736:1217;;;;;:::o;8766:39::-;;;;;;;;;;;;;;;;;:::o;7002:37::-;;;;;;;;;;;;;;;;;;;:::o;13195:237::-;13260:4;13277:13;13293:58;13300:9;13293:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;13277:74;;13362:40;13378:10;13390:3;13395:6;13362:15;:40::i;:::-;13420:4;13413:11;;;13195:237;;;;:::o;16083:222::-;16148:6;16167:19;16189:14;:23;16204:7;16189:23;;;;;;;;;;;;;;;;;;;;;;;;;16167:45;;16245:1;16230:12;:16;;;:67;;16296:1;16230:67;;;16249:11;:20;16261:7;16249:20;;;;;;;;;;;;;;;:38;16285:1;16270:12;:16;16249:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;16230:67;16223:74;;;16083:222;;;:::o;15096:786::-;15212:23;8167:80;;;;;;;;;;;;;;15292:4;;;;;;;;;;;;;;;;;15276:22;;;;;;15300:12;:10;:12::i;:::-;15322:4;15248:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15248:80:0;;;15238:91;;;;;;15212:117;;15340:18;8387:71;;;;;;;;;;;;;;15403:9;15414:5;15421:6;15371:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15371:57:0;;;15361:68;;;;;;15340:89;;15440:14;15496:15;15513:10;15467:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15467:57:0;;;15457:68;;;;;;15440:85;;15536:17;15556:26;15566:6;15574:1;15577;15580;15556:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15556:26:0;;;;;;;;15536:46;;15622:1;15601:23;;:9;:23;;;;15593:73;;;;;;;;;;;;;;;;;;;;;;15694:6;:17;15701:9;15694:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;15685:5;:28;15677:74;;;;;;;;;;;;;;;;;;;;;;15777:6;15770:3;:13;;15762:63;;;;;;;;;;;;;;;;;;;;;;15843:31;15853:9;15864;15843;:31::i;:::-;15836:38;;;;15096:786;;;;;;:::o;11570:1050::-;11700:13;11746:2;11728:9;:21;11724:171;;;11782:2;11766:19;;11724:171;;;11827:56;11834:9;11827:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;11818:65;;11724:171;11907:23;8167:80;;;;;;;;;;;;;;11987:4;;;;;;;;;;;;;;;;;11971:22;;;;;;11995:12;:10;:12::i;:::-;12017:4;11943:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11943:80:0;;;11933:91;;;;;;11907:117;;12035:18;8590:95;;;;;;;;;;;;;;12094:5;12101:7;12110:9;12121:6;:13;12128:5;12121:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;12138:8;12066:81;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12066:81:0;;;12056:92;;;;;;12035:113;;12159:14;12215:15;12232:10;12186:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12186:57:0;;;12176:68;;;;;;12159:85;;12255:17;12275:26;12285:6;12293:1;12296;12299;12275:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12275:26:0;;;;;;;;12255:46;;12341:1;12320:23;;:9;:23;;;;12312:66;;;;;;;;;;;;;;;;;;;;;;12410:5;12397:18;;:9;:18;;;12389:56;;;;;;;;;;;;;;;;;;;;;;12471:8;12464:3;:15;;12456:58;;;;;;;;;;;;;;;;;;;;;;12556:6;12527:10;:17;12538:5;12527:17;;;;;;;;;;;;;;;:26;12545:7;12527:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12596:7;12580:32;;12589:5;12580:32;;;12605:6;12580:32;;;;;;;;;;;;;;;11570:1050;;;;;;;;;;;;:::o;10048:136::-;10124:4;10148:10;:19;10159:7;10148:19;;;;;;;;;;;;;;;:28;10168:7;10148:28;;;;;;;;;;;;;;;;;;;;;;;;;10141:35;;;;10048:136;;;;:::o;8341:117::-;8387:71;;;;;;;;;;;;;;8341:117;:::o;7864:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20712:161::-;20787:6;20818:5;20814:1;:9;20825:12;20806:32;;;;;;;;;;;;;;;;;;;;;;;;;20863:1;20849:16;;20712:161;;;;:::o;21077:165::-;21163:6;21195:1;21190:6;;:1;:6;;;;21198:12;21182:29;;;;;;;;;;;;;;;;;;;;;;;;;21233:1;21229;:5;21222:12;;21077:165;;;;;:::o;18344:610::-;18453:1;18438:17;;:3;:17;;;;18430:89;;;;;;;;;;;;;;;;;;;;;;18553:1;18538:17;;:3;:17;;;;18530:87;;;;;;;;;;;;;;;;;;;;;;18646:85;18652:8;:13;18661:3;18652:13;;;;;;;;;;;;;;;;;;;;;;;;;18667:6;18646:85;;;;;;;;;;;;;;;;;:5;:85::i;:::-;18630:8;:13;18639:3;18630:13;;;;;;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;18758:79;18764:8;:13;18773:3;18764:13;;;;;;;;;;;;;;;;;;;;;;;;;18779:6;18758:79;;;;;;;;;;;;;;;;;:5;:79::i;:::-;18742:8;:13;18751:3;18742:13;;;;;;;;;;;;;;;;:95;;;;;;;;;;;;;;;;;;18867:3;18853:26;;18862:3;18853:26;;;18872:6;18853:26;;;;;;;;;;;;;;;18892:54;18907:9;:14;18917:3;18907:14;;;;;;;;;;;;;;;;;;;;;;;;;18923:9;:14;18933:3;18923:14;;;;;;;;;;;;;;;;;;;;;;;;;18939:6;18892:14;:54::i;:::-;18344:610;;;:::o;17961:375::-;18038:23;18064:9;:20;18074:9;18064:20;;;;;;;;;;;;;;;;;;;;;;;;;18038:46;;18095:23;18121:8;:19;18130:9;18121:19;;;;;;;;;;;;;;;;;;;;;;;;;18095:45;;18174:9;18151;:20;18161:9;18151:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18245:9;18201:54;;18228:15;18201:54;;18217:9;18201:54;;;;;;;;;;;;18268:60;18283:15;18300:9;18311:16;18268:14;:60::i;:::-;17961:375;;;;:::o;21250:153::-;21295:4;21312:15;21360:9;21349:20;;21388:7;21381:14;;;21250:153;:::o;20881:188::-;20967:6;20986:8;21001:1;20997;:5;20986:16;;21026:1;21021:6;;:1;:6;;;;21029:12;21013:29;;;;;;;;;;;;;;;;;;;;;;;;;21060:1;21053:8;;;20881:188;;;;;:::o;18962:937::-;19067:6;19057:16;;:6;:16;;;;:30;;;;;19086:1;19077:6;:10;;;19057:30;19053:839;;;19126:1;19108:20;;:6;:20;;;19104:381;;19149:16;19168:14;:22;19183:6;19168:22;;;;;;;;;;;;;;;;;;;;;;;;;19149:41;;19209:16;19240:1;19228:9;:13;;;:60;;19287:1;19228:60;;;19244:11;:19;19256:6;19244:19;;;;;;;;;;;;;;;:34;19276:1;19264:9;:13;19244:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;19228:60;19209:79;;19307:16;19326:67;19332:9;19343:6;19326:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;19307:86;;19412:57;19429:6;19437:9;19448;19459;19412:16;:57::i;:::-;19104:381;;;;19523:1;19505:20;;:6;:20;;;19501:380;;19546:16;19565:14;:22;19580:6;19565:22;;;;;;;;;;;;;;;;;;;;;;;;;19546:41;;19606:16;19637:1;19625:9;:13;;;:60;;19684:1;19625:60;;;19641:11;:19;19653:6;19641:19;;;;;;;;;;;;;;;:34;19673:1;19661:9;:13;19641:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;19625:60;19606:79;;19704:16;19723:66;19729:9;19740:6;19723:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;19704:85;;19808:57;19825:6;19833:9;19844;19855;19808:16;:57::i;:::-;19501:380;;;;19053:839;18962:937;;;:::o;19907:628::-;20025:18;20046:75;20053:12;20046:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;20025:96;;20151:1;20136:12;:16;;;:85;;;;;20210:11;20156:65;;:11;:22;20168:9;20156:22;;;;;;;;;;;;;;;:40;20194:1;20179:12;:16;20156:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;20136:85;20132:329;;;20285:8;20236:11;:22;20248:9;20236:22;;;;;;;;;;;;;;;:40;20274:1;20259:12;:16;20236:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;20132:329;;;20361:33;;;;;;;;20372:11;20361:33;;;;;;20385:8;20361:33;;;;;20322:11;:22;20334:9;20322:22;;;;;;;;;;;;;;;:36;20345:12;20322:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20450:1;20435:12;:16;20407:14;:25;20422:9;20407:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;20132:329;20497:9;20476:51;;;20508:8;20518;20476:51;;;;;;;;;;;;;;;;19907:628;;;;;:::o;20543:161::-;20618:6;20649:5;20645:1;:9;20656:12;20637:32;;;;;;;;;;;;;;;;;;;;;;;;;20694:1;20680:16;;20543:161;;;;:::o;6831:14575::-;;;;;;;;;;;;;;;;;;;;;;;:::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:396;;5788:67;5852:2;5847:3;5788:67;;;5781:74;;5888:34;5884:1;5879:3;5875:11;5868:55;5957:29;5952:2;5947:3;5943:12;5936:51;6015:2;6010:3;6006:12;5999:19;;5774:250;;;;6033:375;;6193:67;6257:2;6252:3;6193:67;;;6186:74;;6293:34;6289:1;6284:3;6280:11;6273:55;6362:8;6357:2;6352:3;6348:12;6341:30;6399:2;6394:3;6390:12;6383:19;;6179:229;;;;6417:370;;6577:67;6641:2;6636:3;6577:67;;;6570:74;;6677:34;6673:1;6668:3;6664:11;6657:55;6746:3;6741:2;6736:3;6732:12;6725:25;6778:2;6773:3;6769:12;6762:19;;6563:224;;;;6796:398;;6974:84;7056:1;7051:3;6974:84;;;6967:91;;7091:66;7087:1;7082:3;7078:11;7071:87;7186:1;7181:3;7177:11;7170:18;;6960:234;;;;7203:492;;7381:85;7463:2;7458:3;7381:85;;;7374:92;;7499:34;7495:1;7490:3;7486:11;7479:55;7568:34;7563:2;7558:3;7554:12;7547:56;7637:20;7632:2;7627:3;7623:12;7616:42;7686:2;7681:3;7677:12;7670:19;;7367:328;;;;7704:325;;7864:67;7928:2;7923:3;7864:67;;;7857:74;;7964:27;7960:1;7955:3;7951:11;7944:48;8020:2;8015:3;8011:12;8004:19;;7850:179;;;;8038:477;;8216:85;8298:2;8293:3;8216:85;;;8209:92;;8334:34;8330:1;8325:3;8321:11;8314:55;8403:34;8398:2;8393:3;8389:12;8382:56;8472:5;8467:2;8462:3;8458:12;8451:27;8506:2;8501:3;8497:12;8490:19;;8202:313;;;;8524:330;;8684:67;8748:2;8743:3;8684:67;;;8677:74;;8784:32;8780:1;8775:3;8771:11;8764:53;8845:2;8840:3;8836:12;8829:19;;8670:184;;;;8863:330;;9023:67;9087:2;9082:3;9023:67;;;9016:74;;9123:32;9119:1;9114:3;9110:11;9103:53;9184:2;9179:3;9175:12;9168:19;;9009:184;;;;9202:374;;9362:67;9426:2;9421:3;9362:67;;;9355:74;;9462:34;9458:1;9453:3;9449:11;9442:55;9531:7;9526:2;9521:3;9517:12;9510:29;9567:2;9562:3;9558:12;9551:19;;9348:228;;;;9585:431;;9763:85;9845:2;9840:3;9763:85;;;9756:92;;9881:34;9877:1;9872:3;9868:11;9861:55;9950:28;9945:2;9940:3;9936:12;9929:50;10007:2;10002:3;9998:12;9991:19;;9749:267;;;;10025:394;;10185:67;10249:2;10244:3;10185:67;;;10178:74;;10285:34;10281:1;10276:3;10272:11;10265:55;10354:27;10349:2;10344:3;10340:12;10333:49;10410:2;10405:3;10401:12;10394:19;;10171:248;;;;10428:374;;10588:67;10652:2;10647:3;10588:67;;;10581:74;;10688:34;10684:1;10679:3;10675:11;10668:55;10757:7;10752:2;10747:3;10743:12;10736:29;10793:2;10788:3;10784:12;10777:19;;10574:228;;;;10810:113;10893:24;10911:5;10893:24;;;10888:3;10881:37;10875:48;;;10930:110;11011:23;11028:5;11011:23;;;11006:3;10999:36;10993:47;;;11047:107;11126:22;11142:5;11126:22;;;11121:3;11114:35;11108:46;;;11161:124;11243:36;11273:5;11243:36;;;11238:3;11231:49;11225:60;;;11292:110;11373:23;11390:5;11373:23;;;11368:3;11361:36;11355:47;;;11409:650;;11664:148;11808:3;11664:148;;;11657:155;;11823:75;11894:3;11885:6;11823:75;;;11920:2;11915:3;11911:12;11904:19;;11934:75;12005:3;11996:6;11934:75;;;12031:2;12026:3;12022:12;12015:19;;12051:3;12044:10;;11645:414;;;;;;12066:372;;12265:148;12409:3;12265:148;;;12258:155;;12430:3;12423:10;;12246:192;;;;12445:372;;12644:148;12788:3;12644:148;;;12637:155;;12809:3;12802:10;;12625:192;;;;12824:372;;13023:148;13167:3;13023:148;;;13016:155;;13188:3;13181:10;;13004:192;;;;13203:213;;13321:2;13310:9;13306:18;13298:26;;13335:71;13403:1;13392:9;13388:17;13379:6;13335:71;;;13292:124;;;;;13423:201;;13535:2;13524:9;13520:18;13512:26;;13549:65;13611:1;13600:9;13596:17;13587:6;13549:65;;;13506:118;;;;;13631:213;;13749:2;13738:9;13734:18;13726:26;;13763:71;13831:1;13820:9;13816:17;13807:6;13763:71;;;13720:124;;;;;13851:771;;14109:3;14098:9;14094:19;14086:27;;14124:71;14192:1;14181:9;14177:17;14168:6;14124:71;;;14206:72;14274:2;14263:9;14259:18;14250:6;14206:72;;;14289;14357:2;14346:9;14342:18;14333:6;14289:72;;;14372;14440:2;14429:9;14425:18;14416:6;14372:72;;;14455:73;14523:3;14512:9;14508:19;14499:6;14455:73;;;14539;14607:3;14596:9;14592:19;14583:6;14539:73;;;14080:542;;;;;;;;;;14629:547;;14831:3;14820:9;14816:19;14808:27;;14846:71;14914:1;14903:9;14899:17;14890:6;14846:71;;;14928:72;14996:2;14985:9;14981:18;14972:6;14928:72;;;15011;15079:2;15068:9;15064:18;15055:6;15011:72;;;15094;15162:2;15151:9;15147:18;15138:6;15094:72;;;14802:374;;;;;;;;15183:547;;15385:3;15374:9;15370:19;15362:27;;15400:71;15468:1;15457:9;15453:17;15444:6;15400:71;;;15482:72;15550:2;15539:9;15535:18;15526:6;15482:72;;;15565;15633:2;15622:9;15618:18;15609:6;15565:72;;;15648;15716:2;15705:9;15701:18;15692:6;15648:72;;;15356:374;;;;;;;;15737:539;;15935:3;15924:9;15920:19;15912:27;;15950:71;16018:1;16007:9;16003:17;15994:6;15950:71;;;16032:68;16096:2;16085:9;16081:18;16072:6;16032:68;;;16111:72;16179:2;16168:9;16164:18;16155:6;16111:72;;;16194;16262:2;16251:9;16247:18;16238:6;16194:72;;;15906:370;;;;;;;;16283:293;;16417:2;16406:9;16402:18;16394:26;;16467:9;16461:4;16457:20;16453:1;16442:9;16438:17;16431:47;16492:74;16561:4;16552:6;16492:74;;;16484:82;;16388:188;;;;;16583:301;;16721:2;16710:9;16706:18;16698:26;;16771:9;16765:4;16761:20;16757:1;16746:9;16742:17;16735:47;16796:78;16869:4;16860:6;16796:78;;;16788:86;;16692:192;;;;;16891:407;;17082:2;17071:9;17067:18;17059:26;;17132:9;17126:4;17122:20;17118:1;17107:9;17103:17;17096:47;17157:131;17283:4;17157:131;;;17149:139;;17053:245;;;;17305:407;;17496:2;17485:9;17481:18;17473:26;;17546:9;17540:4;17536:20;17532:1;17521:9;17517:17;17510:47;17571:131;17697:4;17571:131;;;17563:139;;17467:245;;;;17719:407;;17910:2;17899:9;17895:18;17887:26;;17960:9;17954:4;17950:20;17946:1;17935:9;17931:17;17924:47;17985:131;18111:4;17985:131;;;17977:139;;17881:245;;;;18133:407;;18324:2;18313:9;18309:18;18301:26;;18374:9;18368:4;18364:20;18360:1;18349:9;18345:17;18338:47;18399:131;18525:4;18399:131;;;18391:139;;18295:245;;;;18547:407;;18738:2;18727:9;18723:18;18715:26;;18788:9;18782:4;18778:20;18774:1;18763:9;18759:17;18752:47;18813:131;18939:4;18813:131;;;18805:139;;18709:245;;;;18961:407;;19152:2;19141:9;19137:18;19129:26;;19202:9;19196:4;19192:20;19188:1;19177:9;19173:17;19166:47;19227:131;19353:4;19227:131;;;19219:139;;19123:245;;;;19375:407;;19566:2;19555:9;19551:18;19543:26;;19616:9;19610:4;19606:20;19602:1;19591:9;19587:17;19580:47;19641:131;19767:4;19641:131;;;19633:139;;19537:245;;;;19789:407;;19980:2;19969:9;19965:18;19957:26;;20030:9;20024:4;20020:20;20016:1;20005:9;20001:17;19994:47;20055:131;20181:4;20055:131;;;20047:139;;19951:245;;;;20203:407;;20394:2;20383:9;20379:18;20371:26;;20444:9;20438:4;20434:20;20430:1;20419:9;20415:17;20408:47;20469:131;20595:4;20469:131;;;20461:139;;20365:245;;;;20617:213;;20735:2;20724:9;20720:18;20712:26;;20749:71;20817:1;20806:9;20802:17;20793:6;20749:71;;;20706:124;;;;;20837:209;;20953:2;20942:9;20938:18;20930:26;;20967:69;21033:1;21022:9;21018:17;21009:6;20967:69;;;20924:122;;;;;21053:316;;21195:2;21184:9;21180:18;21172:26;;21209:69;21275:1;21264:9;21260:17;21251:6;21209:69;;;21289:70;21355:2;21344:9;21340:18;21331:6;21289:70;;;21166:203;;;;;;21376:205;;21490:2;21479:9;21475:18;21467:26;;21504:67;21568:1;21557:9;21553:17;21544:6;21504:67;;;21461:120;;;;;21588:211;;21705:2;21694:9;21690:18;21682:26;;21719:70;21786:1;21775:9;21771:17;21762:6;21719:70;;;21676:123;;;;;21806:209;;21922:2;21911:9;21907:18;21899:26;;21936:69;22002:1;21991:9;21987:17;21978:6;21936:69;;;21893:122;;;;;22022:320;;22166:2;22155:9;22151:18;22143:26;;22180:70;22247:1;22236:9;22232:17;22223:6;22180:70;;;22261:71;22328:2;22317:9;22313:18;22304:6;22261:71;;;22137:205;;;;;;22349:118;;22439:5;22433:12;22423:22;;22404:63;;;;22474:122;;22568:5;22562:12;22552:22;;22533:63;;;;22604:163;;22719:6;22714:3;22707:19;22756:4;22751:3;22747:14;22732:29;;22700:67;;;;;22776:145;;22912:3;22897:18;;22890:31;;;;;22929:91;;22991:24;23009:5;22991:24;;;22980:35;;22974:46;;;;23027:85;;23100:5;23093:13;23086:21;23075:32;;23069:43;;;;23119:72;;23181:5;23170:16;;23164:27;;;;23198:121;;23271:42;23264:5;23260:54;23249:65;;23243:76;;;;23326:72;;23388:5;23377:16;;23371:27;;;;23405:88;;23477:10;23470:5;23466:22;23455:33;;23449:44;;;;23500:81;;23571:4;23564:5;23560:16;23549:27;;23543:38;;;;23588:104;;23660:26;23653:5;23649:38;23638:49;;23632:60;;;;23699:106;;23777:23;23794:5;23777:23;;;23764:36;;23758:47;;;;23813:268;23878:1;23885:101;23899:6;23896:1;23893:13;23885:101;;;23975:1;23970:3;23966:11;23960:18;23956:1;23951:3;23947:11;23940:39;23921:2;23918:1;23914:10;23909:15;;23885:101;;;24001:6;23998:1;23995:13;23992:2;;;24066:1;24057:6;24052:3;24048:16;24041:27;23992:2;23862:219;;;;;24089:74;;24153:5;24142:16;;24136:27;;;;24170:97;;24258:2;24254:7;24249:2;24242:5;24238:14;24234:28;24224:38;;24218:49;;;;24275:117;24344:24;24362:5;24344:24;;;24337:5;24334:35;24324:2;;24383:1;24380;24373:12;24324:2;24318:74;;24399:117;24468:24;24486:5;24468:24;;;24461:5;24458:35;24448:2;;24507:1;24504;24497:12;24448:2;24442:74;;24523:117;24592:24;24610:5;24592:24;;;24585:5;24582:35;24572:2;;24631:1;24628;24621:12;24572:2;24566:74;;24647:115;24715:23;24732:5;24715:23;;;24708:5;24705:34;24695:2;;24753:1;24750;24743:12;24695:2;24689:73;;24769:113;24836:22;24852:5;24836:22;;;24829:5;24826:33;24816:2;;24873:1;24870;24863:12;24816:2;24810:72;

Swarm Source

bzzr://182815db043d4b6e145e5d6f1e0c4189ecb0e49f5e0ffec051f4e916cb370d1b
Loading