ETH Price: $3,351.17 (-1.09%)
Gas: 10 Gwei

Token

MEMRSATS (MEMRSATS)
 

Overview

Max Total Supply

210,000,000,000 MEMRSATS

Holders

818

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,210.526315 MEMRSATS

Value
$0.00
0x5921dd673d155d9fe23cefc93c087a4b3ebc9ca3
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MEMRSATS

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-13
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                0,
                "Address: low-level call failed"
            );
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data
    ) internal view returns (bytes memory) {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(
        bytes memory returndata,
        string memory errorMessage
    ) private pure {
        if (returndata.length > 0) {
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

interface IERC20Permit {
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function nonces(address owner) external view returns (uint256);

    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transfer.selector, to, value)
        );
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.approve.selector, spender, value)
        );
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 oldAllowance = token.allowance(address(this), spender);
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(
                token.approve.selector,
                spender,
                oldAllowance + value
            )
        );
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(
                oldAllowance >= value,
                "SafeERC20: decreased allowance below zero"
            );
            _callOptionalReturn(
                token,
                abi.encodeWithSelector(
                    token.approve.selector,
                    spender,
                    oldAllowance - value
                )
            );
        }
    }

    function forceApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        bytes memory approvalCall = abi.encodeWithSelector(
            token.approve.selector,
            spender,
            value
        );

        if (!_callOptionalReturnBool(token, approvalCall)) {
            _callOptionalReturn(
                token,
                abi.encodeWithSelector(token.approve.selector, spender, 0)
            );
            _callOptionalReturn(token, approvalCall);
        }
    }

    function safePermit(
        IERC20Permit token,
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal {
        uint256 nonceBefore = token.nonces(owner);
        token.permit(owner, spender, value, deadline, v, r, s);
        uint256 nonceAfter = token.nonces(owner);
        require(
            nonceAfter == nonceBefore + 1,
            "SafeERC20: permit did not succeed"
        );
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(
            data,
            "SafeERC20: low-level call failed"
        );
        require(
            returndata.length == 0 || abi.decode(returndata, (bool)),
            "SafeERC20: ERC20 operation did not succeed"
        );
    }

    function _callOptionalReturnBool(
        IERC20 token,
        bytes memory data
    ) private returns (bool) {
        (bool success, bytes memory returndata) = address(token).call(data);
        return
            success &&
            (returndata.length == 0 || abi.decode(returndata, (bool))) &&
            Address.isContract(address(token));
    }
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;

            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;

            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract MEMRSATS is Ownable, ERC20 {
    using SafeERC20 for IERC20;
    mapping (address => bool) public _feeWhiteList;
    mapping(address => bool) public _blackList;
    bool public isLaunch = false;

    constructor() ERC20("MEMRSATS", "MEMRSATS") {
        address onwer = 0x0F4b03a7d57C78BACE2DCD1bEeeef82c03049A03;
        _transferOwnership(onwer);
        _mint(onwer, 210000000000 * (10 ** 18));

        _feeWhiteList[onwer] = true;
        _feeWhiteList[address(this)] = true;
    }

    receive() external payable {}

    fallback() external payable {}

    function burn(uint256 amount) external {
        super._burn(_msgSender(), amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_blackList[sender], "black address");

        if (!_feeWhiteList[sender] && !_feeWhiteList[recipient]) {
            require(isLaunch, "Swap not open");
        }

        super._transfer(sender, recipient, amount);
    }

    function claimStuckTokens(address token) external onlyOwner {
        if (token == address(0x0)) {
            payable(_msgSender()).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.safeTransfer(_msgSender(), balance);
    }

    function Launch() public onlyOwner {
        isLaunch = true;
    }

    function setWList(address[] calldata addrs, bool status) external onlyOwner {
        for (uint256 i; i < addrs.length; ++i) {
            _feeWhiteList[addrs[i]] = status;
        }
    }

    function setBList(address[] calldata addrs, bool status) external onlyOwner {
        for (uint256 i; i < addrs.length; ++i) {
            _blackList[addrs[i]] = status;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWList","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600860006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600881526020017f4d454d52534154530000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4d454d5253415453000000000000000000000000000000000000000000000000815250620000b9620000ad620001df60201b60201c565b620001e760201b60201c565b8160049081620000ca91906200069d565b508060059081620000dc91906200069d565b5050506000730f4b03a7d57c78bace2dcd1beeeef82c03049a0390506200010981620001e760201b60201c565b62000128816c02a68bedbb190931f650000000620002ab60201b60201c565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506200089f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200031d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200031490620007e5565b60405180910390fd5b62000331600083836200041960201b60201c565b806003600082825462000345919062000836565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003f9919062000882565b60405180910390a362000415600083836200041e60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004a557607f821691505b602082108103620004bb57620004ba6200045d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004e6565b620005318683620004e6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200057e62000578620005728462000549565b62000553565b62000549565b9050919050565b6000819050919050565b6200059a836200055d565b620005b2620005a98262000585565b848454620004f3565b825550505050565b600090565b620005c9620005ba565b620005d68184846200058f565b505050565b5b81811015620005fe57620005f2600082620005bf565b600181019050620005dc565b5050565b601f8211156200064d576200061781620004c1565b6200062284620004d6565b8101602085101562000632578190505b6200064a6200064185620004d6565b830182620005db565b50505b505050565b600082821c905092915050565b6000620006726000198460080262000652565b1980831691505092915050565b60006200068d83836200065f565b9150826002028217905092915050565b620006a88262000423565b67ffffffffffffffff811115620006c457620006c36200042e565b5b620006d082546200048c565b620006dd82828562000602565b600060209050601f83116001811462000715576000841562000700578287015190505b6200070c85826200067f565b8655506200077c565b601f1984166200072586620004c1565b60005b828110156200074f5784890151825560018201915060208501945060208101905062000728565b868310156200076f57848901516200076b601f8916826200065f565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620007cd601f8362000784565b9150620007da8262000795565b602082019050919050565b600060208201905081810360008301526200080081620007be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008438262000549565b9150620008508362000549565b92508282019050808211156200086b576200086a62000807565b5b92915050565b6200087c8162000549565b82525050565b600060208201905062000899600083018462000871565b92915050565b6128fd80620008af6000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610444578063d5e9452414610481578063dd62ed3e146104aa578063f2fde38b146104e7578063f5d588f514610510578063f9d0831a1461053b57610140565b8063715018a61461037157806375674291146103885780638da5cb5b146103b157806395d89b41146103dc578063a457c2d71461040757610140565b806323b872dd116100fd57806323b872dd14610229578063313ce56714610266578063395093511461029157806342966c68146102ce578063595dec3c146102f757806370a082311461033457610140565b806301986fad1461014257806302ac81681461017f57806306fdde0314610196578063095ea7b3146101c157806318160ddd146101fe57610140565b3661014057005b005b34801561014e57600080fd5b50610169600480360381019061016491906119c7565b610564565b6040516101769190611a0f565b60405180910390f35b34801561018b57600080fd5b50610194610584565b005b3480156101a257600080fd5b506101ab6105a9565b6040516101b89190611aba565b60405180910390f35b3480156101cd57600080fd5b506101e860048036038101906101e39190611b12565b61063b565b6040516101f59190611a0f565b60405180910390f35b34801561020a57600080fd5b5061021361065e565b6040516102209190611b61565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190611b7c565b610668565b60405161025d9190611a0f565b60405180910390f35b34801561027257600080fd5b5061027b610697565b6040516102889190611beb565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190611b12565b6106a0565b6040516102c59190611a0f565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190611c06565b6106d7565b005b34801561030357600080fd5b5061031e600480360381019061031991906119c7565b6106eb565b60405161032b9190611a0f565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906119c7565b61070b565b6040516103689190611b61565b60405180910390f35b34801561037d57600080fd5b50610386610754565b005b34801561039457600080fd5b506103af60048036038101906103aa9190611cc4565b610768565b005b3480156103bd57600080fd5b506103c6610813565b6040516103d39190611d33565b60405180910390f35b3480156103e857600080fd5b506103f161083c565b6040516103fe9190611aba565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190611b12565b6108ce565b60405161043b9190611a0f565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190611b12565b610945565b6040516104789190611a0f565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190611cc4565b610968565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190611d4e565b610a13565b6040516104de9190611b61565b60405180910390f35b3480156104f357600080fd5b5061050e600480360381019061050991906119c7565b610a9a565b005b34801561051c57600080fd5b50610525610b1d565b6040516105329190611a0f565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d91906119c7565b610b30565b005b60066020528060005260406000206000915054906101000a900460ff1681565b61058c610c7a565b6001600860006101000a81548160ff021916908315150217905550565b6060600480546105b890611dbd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e490611dbd565b80156106315780601f1061060657610100808354040283529160200191610631565b820191906000526020600020905b81548152906001019060200180831161061457829003601f168201915b5050505050905090565b600080610646610cf8565b9050610653818585610d00565b600191505092915050565b6000600354905090565b600080610673610cf8565b9050610680858285610ec9565b61068b858585610f55565b60019150509392505050565b60006012905090565b6000806106ab610cf8565b90506106cc8185856106bd8589610a13565b6106c79190611e1d565b610d00565b600191505092915050565b6106e86106e2610cf8565b8261112e565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075c610c7a565b61076660006112fd565b565b610770610c7a565b60005b8383905081101561080d57816007600086868581811061079657610795611e51565b5b90506020020160208101906107ab91906119c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061080690611e80565b9050610773565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461084b90611dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461087790611dbd565b80156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905090565b6000806108d9610cf8565b905060006108e78286610a13565b90508381101561092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092390611f3a565b60405180910390fd5b6109398286868403610d00565b60019250505092915050565b600080610950610cf8565b905061095d818585610f55565b600191505092915050565b610970610c7a565b60005b83839050811015610a0d57816006600086868581811061099657610995611e51565b5b90506020020160208101906109ab91906119c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a0690611e80565b9050610973565b50505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610aa2610c7a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890611fcc565b60405180910390fd5b610b1a816112fd565b50565b600860009054906101000a900460ff1681565b610b38610c7a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bbf57610b74610cf8565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bb9573d6000803e3d6000fd5b50610c77565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bff9190611d33565b602060405180830381865afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190612001565b9050610c74610c4d610cf8565b828473ffffffffffffffffffffffffffffffffffffffff166113c19092919063ffffffff16565b50505b50565b610c82610cf8565b73ffffffffffffffffffffffffffffffffffffffff16610ca0610813565b73ffffffffffffffffffffffffffffffffffffffff1614610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced9061207a565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d669061210c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd59061219e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ebc9190611b61565b60405180910390a3505050565b6000610ed58484610a13565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f4f5781811015610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f389061220a565b60405180910390fd5b610f4e8484848403610d00565b5b50505050565b60008111610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f9061229c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90612308565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561111e57600860009054906101000a900460ff1661111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612374565b60405180910390fd5b5b611129838383611447565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612406565b60405180910390fd5b6111a9826000836116c0565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122790612498565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e49190611b61565b60405180910390a36112f8836000846116c5565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6114428363a9059cbb60e01b84846040516024016113e09291906124b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506116ca565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612553565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906125e5565b60405180910390fd5b6115308383836116c0565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612677565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116a79190611b61565b60405180910390a36116ba8484846116c5565b50505050565b505050565b505050565b600061172c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117929092919063ffffffff16565b905060008151148061174e57508080602001905181019061174d91906126ac565b5b61178d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117849061274b565b60405180910390fd5b505050565b60606117a184846000856117aa565b90509392505050565b6060824710156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906127dd565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516118189190612844565b60006040518083038185875af1925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915061186b87838387611877565b92505050949350505050565b606083156118d95760008351036118d157611891856118ec565b6118d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c7906128a7565b60405180910390fd5b5b8290506118e4565b6118e3838361190f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156119225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119569190611aba565b60405180910390fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061199482611969565b9050919050565b6119a481611989565b81146119af57600080fd5b50565b6000813590506119c18161199b565b92915050565b6000602082840312156119dd576119dc61195f565b5b60006119eb848285016119b2565b91505092915050565b60008115159050919050565b611a09816119f4565b82525050565b6000602082019050611a246000830184611a00565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a64578082015181840152602081019050611a49565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a8c82611a2a565b611a968185611a35565b9350611aa6818560208601611a46565b611aaf81611a70565b840191505092915050565b60006020820190508181036000830152611ad48184611a81565b905092915050565b6000819050919050565b611aef81611adc565b8114611afa57600080fd5b50565b600081359050611b0c81611ae6565b92915050565b60008060408385031215611b2957611b2861195f565b5b6000611b37858286016119b2565b9250506020611b4885828601611afd565b9150509250929050565b611b5b81611adc565b82525050565b6000602082019050611b766000830184611b52565b92915050565b600080600060608486031215611b9557611b9461195f565b5b6000611ba3868287016119b2565b9350506020611bb4868287016119b2565b9250506040611bc586828701611afd565b9150509250925092565b600060ff82169050919050565b611be581611bcf565b82525050565b6000602082019050611c006000830184611bdc565b92915050565b600060208284031215611c1c57611c1b61195f565b5b6000611c2a84828501611afd565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611c5857611c57611c33565b5b8235905067ffffffffffffffff811115611c7557611c74611c38565b5b602083019150836020820283011115611c9157611c90611c3d565b5b9250929050565b611ca1816119f4565b8114611cac57600080fd5b50565b600081359050611cbe81611c98565b92915050565b600080600060408486031215611cdd57611cdc61195f565b5b600084013567ffffffffffffffff811115611cfb57611cfa611964565b5b611d0786828701611c42565b93509350506020611d1a86828701611caf565b9150509250925092565b611d2d81611989565b82525050565b6000602082019050611d486000830184611d24565b92915050565b60008060408385031215611d6557611d6461195f565b5b6000611d73858286016119b2565b9250506020611d84858286016119b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611dd557607f821691505b602082108103611de857611de7611d8e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e2882611adc565b9150611e3383611adc565b9250828201905080821115611e4b57611e4a611dee565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611e8b82611adc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ebd57611ebc611dee565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611f24602583611a35565b9150611f2f82611ec8565b604082019050919050565b60006020820190508181036000830152611f5381611f17565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611fb6602683611a35565b9150611fc182611f5a565b604082019050919050565b60006020820190508181036000830152611fe581611fa9565b9050919050565b600081519050611ffb81611ae6565b92915050565b6000602082840312156120175761201661195f565b5b600061202584828501611fec565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612064602083611a35565b915061206f8261202e565b602082019050919050565b6000602082019050818103600083015261209381612057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120f6602483611a35565b91506121018261209a565b604082019050919050565b60006020820190508181036000830152612125816120e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612188602283611a35565b91506121938261212c565b604082019050919050565b600060208201905081810360008301526121b78161217b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006121f4601d83611a35565b91506121ff826121be565b602082019050919050565b60006020820190508181036000830152612223816121e7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612286602983611a35565b91506122918261222a565b604082019050919050565b600060208201905081810360008301526122b581612279565b9050919050565b7f626c61636b206164647265737300000000000000000000000000000000000000600082015250565b60006122f2600d83611a35565b91506122fd826122bc565b602082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f53776170206e6f74206f70656e00000000000000000000000000000000000000600082015250565b600061235e600d83611a35565b915061236982612328565b602082019050919050565b6000602082019050818103600083015261238d81612351565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123f0602183611a35565b91506123fb82612394565b604082019050919050565b6000602082019050818103600083015261241f816123e3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612482602283611a35565b915061248d82612426565b604082019050919050565b600060208201905081810360008301526124b181612475565b9050919050565b60006040820190506124cd6000830185611d24565b6124da6020830184611b52565b9392505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061253d602583611a35565b9150612548826124e1565b604082019050919050565b6000602082019050818103600083015261256c81612530565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125cf602383611a35565b91506125da82612573565b604082019050919050565b600060208201905081810360008301526125fe816125c2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612661602683611a35565b915061266c82612605565b604082019050919050565b6000602082019050818103600083015261269081612654565b9050919050565b6000815190506126a681611c98565b92915050565b6000602082840312156126c2576126c161195f565b5b60006126d084828501612697565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612735602a83611a35565b9150612740826126d9565b604082019050919050565b6000602082019050818103600083015261276481612728565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006127c7602683611a35565b91506127d28261276b565b604082019050919050565b600060208201905081810360008301526127f6816127ba565b9050919050565b600081519050919050565b600081905092915050565b600061281e826127fd565b6128288185612808565b9350612838818560208601611a46565b80840191505092915050565b60006128508284612813565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000612891601d83611a35565b915061289c8261285b565b602082019050919050565b600060208201905081810360008301526128c081612884565b905091905056fea2646970667358221220afcc1f09e35b476da88041e3720f93e050464975d2701cfcd1cde1b71d5f3c1364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610444578063d5e9452414610481578063dd62ed3e146104aa578063f2fde38b146104e7578063f5d588f514610510578063f9d0831a1461053b57610140565b8063715018a61461037157806375674291146103885780638da5cb5b146103b157806395d89b41146103dc578063a457c2d71461040757610140565b806323b872dd116100fd57806323b872dd14610229578063313ce56714610266578063395093511461029157806342966c68146102ce578063595dec3c146102f757806370a082311461033457610140565b806301986fad1461014257806302ac81681461017f57806306fdde0314610196578063095ea7b3146101c157806318160ddd146101fe57610140565b3661014057005b005b34801561014e57600080fd5b50610169600480360381019061016491906119c7565b610564565b6040516101769190611a0f565b60405180910390f35b34801561018b57600080fd5b50610194610584565b005b3480156101a257600080fd5b506101ab6105a9565b6040516101b89190611aba565b60405180910390f35b3480156101cd57600080fd5b506101e860048036038101906101e39190611b12565b61063b565b6040516101f59190611a0f565b60405180910390f35b34801561020a57600080fd5b5061021361065e565b6040516102209190611b61565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b9190611b7c565b610668565b60405161025d9190611a0f565b60405180910390f35b34801561027257600080fd5b5061027b610697565b6040516102889190611beb565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190611b12565b6106a0565b6040516102c59190611a0f565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190611c06565b6106d7565b005b34801561030357600080fd5b5061031e600480360381019061031991906119c7565b6106eb565b60405161032b9190611a0f565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906119c7565b61070b565b6040516103689190611b61565b60405180910390f35b34801561037d57600080fd5b50610386610754565b005b34801561039457600080fd5b506103af60048036038101906103aa9190611cc4565b610768565b005b3480156103bd57600080fd5b506103c6610813565b6040516103d39190611d33565b60405180910390f35b3480156103e857600080fd5b506103f161083c565b6040516103fe9190611aba565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190611b12565b6108ce565b60405161043b9190611a0f565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190611b12565b610945565b6040516104789190611a0f565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190611cc4565b610968565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190611d4e565b610a13565b6040516104de9190611b61565b60405180910390f35b3480156104f357600080fd5b5061050e600480360381019061050991906119c7565b610a9a565b005b34801561051c57600080fd5b50610525610b1d565b6040516105329190611a0f565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d91906119c7565b610b30565b005b60066020528060005260406000206000915054906101000a900460ff1681565b61058c610c7a565b6001600860006101000a81548160ff021916908315150217905550565b6060600480546105b890611dbd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e490611dbd565b80156106315780601f1061060657610100808354040283529160200191610631565b820191906000526020600020905b81548152906001019060200180831161061457829003601f168201915b5050505050905090565b600080610646610cf8565b9050610653818585610d00565b600191505092915050565b6000600354905090565b600080610673610cf8565b9050610680858285610ec9565b61068b858585610f55565b60019150509392505050565b60006012905090565b6000806106ab610cf8565b90506106cc8185856106bd8589610a13565b6106c79190611e1d565b610d00565b600191505092915050565b6106e86106e2610cf8565b8261112e565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075c610c7a565b61076660006112fd565b565b610770610c7a565b60005b8383905081101561080d57816007600086868581811061079657610795611e51565b5b90506020020160208101906107ab91906119c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061080690611e80565b9050610773565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461084b90611dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461087790611dbd565b80156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905090565b6000806108d9610cf8565b905060006108e78286610a13565b90508381101561092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092390611f3a565b60405180910390fd5b6109398286868403610d00565b60019250505092915050565b600080610950610cf8565b905061095d818585610f55565b600191505092915050565b610970610c7a565b60005b83839050811015610a0d57816006600086868581811061099657610995611e51565b5b90506020020160208101906109ab91906119c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610a0690611e80565b9050610973565b50505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610aa2610c7a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890611fcc565b60405180910390fd5b610b1a816112fd565b50565b600860009054906101000a900460ff1681565b610b38610c7a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bbf57610b74610cf8565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bb9573d6000803e3d6000fd5b50610c77565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bff9190611d33565b602060405180830381865afa158015610c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c409190612001565b9050610c74610c4d610cf8565b828473ffffffffffffffffffffffffffffffffffffffff166113c19092919063ffffffff16565b50505b50565b610c82610cf8565b73ffffffffffffffffffffffffffffffffffffffff16610ca0610813565b73ffffffffffffffffffffffffffffffffffffffff1614610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced9061207a565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d669061210c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd59061219e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ebc9190611b61565b60405180910390a3505050565b6000610ed58484610a13565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f4f5781811015610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f389061220a565b60405180910390fd5b610f4e8484848403610d00565b5b50505050565b60008111610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f9061229c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90612308565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561111e57600860009054906101000a900460ff1661111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612374565b60405180910390fd5b5b611129838383611447565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612406565b60405180910390fd5b6111a9826000836116c0565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122790612498565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e49190611b61565b60405180910390a36112f8836000846116c5565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6114428363a9059cbb60e01b84846040516024016113e09291906124b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506116ca565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612553565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906125e5565b60405180910390fd5b6115308383836116c0565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90612677565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116a79190611b61565b60405180910390a36116ba8484846116c5565b50505050565b505050565b505050565b600061172c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117929092919063ffffffff16565b905060008151148061174e57508080602001905181019061174d91906126ac565b5b61178d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117849061274b565b60405180910390fd5b505050565b60606117a184846000856117aa565b90509392505050565b6060824710156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906127dd565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516118189190612844565b60006040518083038185875af1925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915061186b87838387611877565b92505050949350505050565b606083156118d95760008351036118d157611891856118ec565b6118d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c7906128a7565b60405180910390fd5b5b8290506118e4565b6118e3838361190f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156119225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119569190611aba565b60405180910390fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061199482611969565b9050919050565b6119a481611989565b81146119af57600080fd5b50565b6000813590506119c18161199b565b92915050565b6000602082840312156119dd576119dc61195f565b5b60006119eb848285016119b2565b91505092915050565b60008115159050919050565b611a09816119f4565b82525050565b6000602082019050611a246000830184611a00565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a64578082015181840152602081019050611a49565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a8c82611a2a565b611a968185611a35565b9350611aa6818560208601611a46565b611aaf81611a70565b840191505092915050565b60006020820190508181036000830152611ad48184611a81565b905092915050565b6000819050919050565b611aef81611adc565b8114611afa57600080fd5b50565b600081359050611b0c81611ae6565b92915050565b60008060408385031215611b2957611b2861195f565b5b6000611b37858286016119b2565b9250506020611b4885828601611afd565b9150509250929050565b611b5b81611adc565b82525050565b6000602082019050611b766000830184611b52565b92915050565b600080600060608486031215611b9557611b9461195f565b5b6000611ba3868287016119b2565b9350506020611bb4868287016119b2565b9250506040611bc586828701611afd565b9150509250925092565b600060ff82169050919050565b611be581611bcf565b82525050565b6000602082019050611c006000830184611bdc565b92915050565b600060208284031215611c1c57611c1b61195f565b5b6000611c2a84828501611afd565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611c5857611c57611c33565b5b8235905067ffffffffffffffff811115611c7557611c74611c38565b5b602083019150836020820283011115611c9157611c90611c3d565b5b9250929050565b611ca1816119f4565b8114611cac57600080fd5b50565b600081359050611cbe81611c98565b92915050565b600080600060408486031215611cdd57611cdc61195f565b5b600084013567ffffffffffffffff811115611cfb57611cfa611964565b5b611d0786828701611c42565b93509350506020611d1a86828701611caf565b9150509250925092565b611d2d81611989565b82525050565b6000602082019050611d486000830184611d24565b92915050565b60008060408385031215611d6557611d6461195f565b5b6000611d73858286016119b2565b9250506020611d84858286016119b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611dd557607f821691505b602082108103611de857611de7611d8e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e2882611adc565b9150611e3383611adc565b9250828201905080821115611e4b57611e4a611dee565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611e8b82611adc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ebd57611ebc611dee565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611f24602583611a35565b9150611f2f82611ec8565b604082019050919050565b60006020820190508181036000830152611f5381611f17565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611fb6602683611a35565b9150611fc182611f5a565b604082019050919050565b60006020820190508181036000830152611fe581611fa9565b9050919050565b600081519050611ffb81611ae6565b92915050565b6000602082840312156120175761201661195f565b5b600061202584828501611fec565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612064602083611a35565b915061206f8261202e565b602082019050919050565b6000602082019050818103600083015261209381612057565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120f6602483611a35565b91506121018261209a565b604082019050919050565b60006020820190508181036000830152612125816120e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612188602283611a35565b91506121938261212c565b604082019050919050565b600060208201905081810360008301526121b78161217b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006121f4601d83611a35565b91506121ff826121be565b602082019050919050565b60006020820190508181036000830152612223816121e7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612286602983611a35565b91506122918261222a565b604082019050919050565b600060208201905081810360008301526122b581612279565b9050919050565b7f626c61636b206164647265737300000000000000000000000000000000000000600082015250565b60006122f2600d83611a35565b91506122fd826122bc565b602082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f53776170206e6f74206f70656e00000000000000000000000000000000000000600082015250565b600061235e600d83611a35565b915061236982612328565b602082019050919050565b6000602082019050818103600083015261238d81612351565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123f0602183611a35565b91506123fb82612394565b604082019050919050565b6000602082019050818103600083015261241f816123e3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612482602283611a35565b915061248d82612426565b604082019050919050565b600060208201905081810360008301526124b181612475565b9050919050565b60006040820190506124cd6000830185611d24565b6124da6020830184611b52565b9392505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061253d602583611a35565b9150612548826124e1565b604082019050919050565b6000602082019050818103600083015261256c81612530565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125cf602383611a35565b91506125da82612573565b604082019050919050565b600060208201905081810360008301526125fe816125c2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612661602683611a35565b915061266c82612605565b604082019050919050565b6000602082019050818103600083015261269081612654565b9050919050565b6000815190506126a681611c98565b92915050565b6000602082840312156126c2576126c161195f565b5b60006126d084828501612697565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612735602a83611a35565b9150612740826126d9565b604082019050919050565b6000602082019050818103600083015261276481612728565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006127c7602683611a35565b91506127d28261276b565b604082019050919050565b600060208201905081810360008301526127f6816127ba565b9050919050565b600081519050919050565b600081905092915050565b600061281e826127fd565b6128288185612808565b9350612838818560208601611a46565b80840191505092915050565b60006128508284612813565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000612891601d83611a35565b915061289c8261285b565b602082019050919050565b600060208201905081810360008301526128c081612884565b905091905056fea2646970667358221220afcc1f09e35b476da88041e3720f93e050464975d2701cfcd1cde1b71d5f3c1364736f6c63430008130033

Deployed Bytecode Sourcemap

17235:1958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17311:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18724:69;;;;;;;;;;;;;:::i;:::-;;10863:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11861:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11184:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12095:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11083:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12398:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17826:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17364:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11300:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16680:103;;;;;;;;;;;;;:::i;:::-;;19001:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16445:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10971:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12669:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11451:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18801:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11677:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16791:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17413:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18345:371;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17311:46;;;;;;;;;;;;;;;;;;;;;;:::o;18724:69::-;16404:13;:11;:13::i;:::-;18781:4:::1;18770:8;;:15;;;;;;;;;;;;;;;;;;18724:69::o:0;10863:100::-;10917:13;10950:5;10943:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10863:100;:::o;11861:226::-;11969:4;11986:13;12002:12;:10;:12::i;:::-;11986:28;;12025:32;12034:5;12041:7;12050:6;12025:8;:32::i;:::-;12075:4;12068:11;;;11861:226;;;;:::o;11184:108::-;11245:7;11272:12;;11265:19;;11184:108;:::o;12095:295::-;12226:4;12243:15;12261:12;:10;:12::i;:::-;12243:30;;12284:38;12300:4;12306:7;12315:6;12284:15;:38::i;:::-;12333:27;12343:4;12349:2;12353:6;12333:9;:27::i;:::-;12378:4;12371:11;;;12095:295;;;;;:::o;11083:93::-;11141:5;11166:2;11159:9;;11083:93;:::o;12398:263::-;12511:4;12528:13;12544:12;:10;:12::i;:::-;12528:28;;12567:64;12576:5;12583:7;12620:10;12592:25;12602:5;12609:7;12592:9;:25::i;:::-;:38;;;;:::i;:::-;12567:8;:64::i;:::-;12649:4;12642:11;;;12398:263;;;;:::o;17826:91::-;17876:33;17888:12;:10;:12::i;:::-;17902:6;17876:11;:33::i;:::-;17826:91;:::o;17364:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;11300:143::-;11390:7;11417:9;:18;11427:7;11417:18;;;;;;;;;;;;;;;;11410:25;;11300:143;;;:::o;16680:103::-;16404:13;:11;:13::i;:::-;16745:30:::1;16772:1;16745:18;:30::i;:::-;16680:103::o:0;19001:189::-;16404:13;:11;:13::i;:::-;19093:9:::1;19088:95;19108:5;;:12;;19104:1;:16;19088:95;;;19165:6;19142:10;:20;19153:5;;19159:1;19153:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19142:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19122:3;;;;:::i;:::-;;;19088:95;;;;19001:189:::0;;;:::o;16445:87::-;16491:7;16518:6;;;;;;;;;;;16511:13;;16445:87;:::o;10971:104::-;11027:13;11060:7;11053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10971:104;:::o;12669:498::-;12787:4;12804:13;12820:12;:10;:12::i;:::-;12804:28;;12843:24;12870:25;12880:5;12887:7;12870:9;:25::i;:::-;12843:52;;12948:15;12928:16;:35;;12906:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;13064:60;13073:5;13080:7;13108:15;13089:16;:34;13064:8;:60::i;:::-;13155:4;13148:11;;;;12669:498;;;;:::o;11451:218::-;11555:4;11572:13;11588:12;:10;:12::i;:::-;11572:28;;11611;11621:5;11628:2;11632:6;11611:9;:28::i;:::-;11657:4;11650:11;;;11451:218;;;;:::o;18801:192::-;16404:13;:11;:13::i;:::-;18893:9:::1;18888:98;18908:5;;:12;;18904:1;:16;18888:98;;;18968:6;18942:13;:23;18956:5;;18962:1;18956:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18942:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18922:3;;;;:::i;:::-;;;18888:98;;;;18801:192:::0;;;:::o;11677:176::-;11791:7;11818:11;:18;11830:5;11818:18;;;;;;;;;;;;;;;:27;11837:7;11818:27;;;;;;;;;;;;;;;;11811:34;;11677:176;;;;:::o;16791:238::-;16404:13;:11;:13::i;:::-;16914:1:::1;16894:22;;:8;:22;;::::0;16872:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16993:28;17012:8;16993:18;:28::i;:::-;16791:238:::0;:::o;17413:28::-;;;;;;;;;;;;;:::o;18345:371::-;16404:13;:11;:13::i;:::-;18437:3:::1;18420:21;;:5;:21;;::::0;18416:128:::1;;18466:12;:10;:12::i;:::-;18458:30;;:53;18489:21;18458:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18526:7;;18416:128;18554:17;18581:5;18554:33;;18598:15;18616:10;:20;;;18645:4;18616:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18598:53;;18662:46;18686:12;:10;:12::i;:::-;18700:7;18662:10;:23;;;;:46;;;;;:::i;:::-;18405:311;;16428:1;18345:371:::0;:::o;16540:132::-;16615:12;:10;:12::i;:::-;16604:23;;:7;:5;:7::i;:::-;:23;;;16596:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16540:132::o;10243:98::-;10296:7;10323:10;10316:17;;10243:98;:::o;14945:380::-;15098:1;15081:19;;:5;:19;;;15073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15179:1;15160:21;;:7;:21;;;15152:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15263:6;15233:11;:18;15245:5;15233:18;;;;;;;;;;;;;;;:27;15252:7;15233:27;;;;;;;;;;;;;;;:36;;;;15301:7;15285:32;;15294:5;15285:32;;;15310:6;15285:32;;;;;;:::i;:::-;;;;;;;;14945:380;;;:::o;15333:502::-;15468:24;15495:25;15505:5;15512:7;15495:9;:25::i;:::-;15468:52;;15555:17;15535:16;:37;15531:297;;15635:6;15615:16;:26;;15589:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15750:51;15759:5;15766:7;15794:6;15775:16;:25;15750:8;:51::i;:::-;15531:297;15457:378;15333:502;;;:::o;17925:412::-;18041:1;18032:6;:10;18024:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18108:10;:18;18119:6;18108:18;;;;;;;;;;;;;;;;;;;;;;;;;18107:19;18099:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;18162:13;:21;18176:6;18162:21;;;;;;;;;;;;;;;;;;;;;;;;;18161:22;:51;;;;;18188:13;:24;18202:9;18188:24;;;;;;;;;;;;;;;;;;;;;;;;;18187:25;18161:51;18157:118;;;18237:8;;;;;;;;;;;18229:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18157:118;18287:42;18303:6;18311:9;18322:6;18287:15;:42::i;:::-;17925:412;;;:::o;14340:597::-;14443:1;14424:21;;:7;:21;;;14416:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14496:49;14517:7;14534:1;14538:6;14496:20;:49::i;:::-;14558:22;14583:9;:18;14593:7;14583:18;;;;;;;;;;;;;;;;14558:43;;14638:6;14620:14;:24;;14612:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14757:6;14740:14;:23;14719:9;:18;14729:7;14719:18;;;;;;;;;;;;;;;:44;;;;14796:6;14780:12;;:22;;;;;;;;;;;14857:1;14831:37;;14840:7;14831:37;;;14861:6;14831:37;;;;;;:::i;:::-;;;;;;;;14881:48;14901:7;14918:1;14922:6;14881:19;:48::i;:::-;14405:532;14340:597;;:::o;17037:191::-;17111:16;17130:6;;;;;;;;;;;17111:25;;17156:8;17147:6;;:17;;;;;;;;;;;;;;;;;;17211:8;17180:40;;17201:8;17180:40;;;;;;;;;;;;17100:128;17037:191;:::o;6118:214::-;6201:123;6235:5;6278:23;;;6303:2;6307:5;6255:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6201:19;:123::i;:::-;6118:214;;;:::o;13175:714::-;13322:1;13306:18;;:4;:18;;;13298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13399:1;13385:16;;:2;:16;;;13377:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13454:38;13475:4;13481:2;13485:6;13454:20;:38::i;:::-;13505:19;13527:9;:15;13537:4;13527:15;;;;;;;;;;;;;;;;13505:37;;13590:6;13575:11;:21;;13553:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;13730:6;13716:11;:20;13698:9;:15;13708:4;13698:15;;;;;;;;;;;;;;;:38;;;;13770:6;13753:9;:13;13763:2;13753:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13820:2;13805:26;;13814:4;13805:26;;;13824:6;13805:26;;;;;;:::i;:::-;;;;;;;;13844:37;13864:4;13870:2;13874:6;13844:19;:37::i;:::-;13287:602;13175:714;;;:::o;15843:125::-;;;;:::o;15976:124::-;;;;:::o;9226:380::-;9307:23;9333:106;9375:4;9333:106;;;;;;;;;;;;;;;;;9341:5;9333:27;;;;:106;;;;;:::i;:::-;9307:132;;9493:1;9472:10;:17;:22;:56;;;;9509:10;9498:30;;;;;;;;;;;;:::i;:::-;9472:56;9450:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;9296:310;9226:380;;:::o;923:229::-;1060:12;1092:52;1114:6;1122:4;1128:1;1131:12;1092:21;:52::i;:::-;1085:59;;923:229;;;;;:::o;1524:612::-;1694:12;1766:5;1741:21;:30;;1719:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;1849:12;1863:23;1890:6;:11;;1909:5;1930:4;1890:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1848:97;;;;1976:152;2021:6;2046:7;2072:10;2101:12;1976:26;:152::i;:::-;1956:172;;;;1524:612;;;;;;:::o;3640:477::-;3825:12;3854:7;3850:260;;;3903:1;3882:10;:17;:22;3878:123;;3933:18;3944:6;3933:10;:18::i;:::-;3925:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3878:123;4022:10;4015:17;;;;3850:260;4065:33;4073:10;4085:12;4065:7;:33::i;:::-;3640:477;;;;;;;:::o;85:115::-;145:4;191:1;169:7;:19;;;:23;162:30;;85:115;;;:::o;4438:425::-;4581:1;4561:10;:17;:21;4557:299;;;4704:10;4698:17;4761:15;4748:10;4744:2;4740:19;4733:44;4557:299;4831:12;4824:20;;;;;;;;;;;:::i;:::-;;;;;;;;88:117:1;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:99::-;1655:6;1689:5;1683:12;1673:22;;1603:99;;;:::o;1708:169::-;1792:11;1826:6;1821:3;1814:19;1866:4;1861:3;1857:14;1842:29;;1708:169;;;;:::o;1883:246::-;1964:1;1974:113;1988:6;1985:1;1982:13;1974:113;;;2073:1;2068:3;2064:11;2058:18;2054:1;2049:3;2045:11;2038:39;2010:2;2007:1;2003:10;1998:15;;1974:113;;;2121:1;2112:6;2107:3;2103:16;2096:27;1945:184;1883:246;;;:::o;2135:102::-;2176:6;2227:2;2223:7;2218:2;2211:5;2207:14;2203:28;2193:38;;2135:102;;;:::o;2243:377::-;2331:3;2359:39;2392:5;2359:39;:::i;:::-;2414:71;2478:6;2473:3;2414:71;:::i;:::-;2407:78;;2494:65;2552:6;2547:3;2540:4;2533:5;2529:16;2494:65;:::i;:::-;2584:29;2606:6;2584:29;:::i;:::-;2579:3;2575:39;2568:46;;2335:285;2243:377;;;;:::o;2626:313::-;2739:4;2777:2;2766:9;2762:18;2754:26;;2826:9;2820:4;2816:20;2812:1;2801:9;2797:17;2790:47;2854:78;2927:4;2918:6;2854:78;:::i;:::-;2846:86;;2626:313;;;;:::o;2945:77::-;2982:7;3011:5;3000:16;;2945:77;;;:::o;3028:122::-;3101:24;3119:5;3101:24;:::i;:::-;3094:5;3091:35;3081:63;;3140:1;3137;3130:12;3081:63;3028:122;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3156:139;;;;:::o;3301:474::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:119;;;3432:79;;:::i;:::-;3394:119;3552:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;:::i;:::-;3567:63;;3523:117;3679:2;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3650:118;3301:474;;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:117::-;5632:1;5629;5622:12;5646:117;5755:1;5752;5745:12;5769:117;5878:1;5875;5868:12;5909:568;5982:8;5992:6;6042:3;6035:4;6027:6;6023:17;6019:27;6009:122;;6050:79;;:::i;:::-;6009:122;6163:6;6150:20;6140:30;;6193:18;6185:6;6182:30;6179:117;;;6215:79;;:::i;:::-;6179:117;6329:4;6321:6;6317:17;6305:29;;6383:3;6375:4;6367:6;6363:17;6353:8;6349:32;6346:41;6343:128;;;6390:79;;:::i;:::-;6343:128;5909:568;;;;;:::o;6483:116::-;6553:21;6568:5;6553:21;:::i;:::-;6546:5;6543:32;6533:60;;6589:1;6586;6579:12;6533:60;6483:116;:::o;6605:133::-;6648:5;6686:6;6673:20;6664:29;;6702:30;6726:5;6702:30;:::i;:::-;6605:133;;;;:::o;6744:698::-;6836:6;6844;6852;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7055:1;7044:9;7040:17;7027:31;7085:18;7077:6;7074:30;7071:117;;;7107:79;;:::i;:::-;7071:117;7220:80;7292:7;7283:6;7272:9;7268:22;7220:80;:::i;:::-;7202:98;;;;6998:312;7349:2;7375:50;7417:7;7408:6;7397:9;7393:22;7375:50;:::i;:::-;7365:60;;7320:115;6744:698;;;;;:::o;7448:118::-;7535:24;7553:5;7535:24;:::i;:::-;7530:3;7523:37;7448:118;;:::o;7572:222::-;7665:4;7703:2;7692:9;7688:18;7680:26;;7716:71;7784:1;7773:9;7769:17;7760:6;7716:71;:::i;:::-;7572:222;;;;:::o;7800:474::-;7868:6;7876;7925:2;7913:9;7904:7;7900:23;7896:32;7893:119;;;7931:79;;:::i;:::-;7893:119;8051:1;8076:53;8121:7;8112:6;8101:9;8097:22;8076:53;:::i;:::-;8066:63;;8022:117;8178:2;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8149:118;7800:474;;;;;:::o;8280:180::-;8328:77;8325:1;8318:88;8425:4;8422:1;8415:15;8449:4;8446:1;8439:15;8466:320;8510:6;8547:1;8541:4;8537:12;8527:22;;8594:1;8588:4;8584:12;8615:18;8605:81;;8671:4;8663:6;8659:17;8649:27;;8605:81;8733:2;8725:6;8722:14;8702:18;8699:38;8696:84;;8752:18;;:::i;:::-;8696:84;8517:269;8466:320;;;:::o;8792:180::-;8840:77;8837:1;8830:88;8937:4;8934:1;8927:15;8961:4;8958:1;8951:15;8978:191;9018:3;9037:20;9055:1;9037:20;:::i;:::-;9032:25;;9071:20;9089:1;9071:20;:::i;:::-;9066:25;;9114:1;9111;9107:9;9100:16;;9135:3;9132:1;9129:10;9126:36;;;9142:18;;:::i;:::-;9126:36;8978:191;;;;:::o;9175:180::-;9223:77;9220:1;9213:88;9320:4;9317:1;9310:15;9344:4;9341:1;9334:15;9361:233;9400:3;9423:24;9441:5;9423:24;:::i;:::-;9414:33;;9469:66;9462:5;9459:77;9456:103;;9539:18;;:::i;:::-;9456:103;9586:1;9579:5;9575:13;9568:20;;9361:233;;;:::o;9600:224::-;9740:34;9736:1;9728:6;9724:14;9717:58;9809:7;9804:2;9796:6;9792:15;9785:32;9600:224;:::o;9830:366::-;9972:3;9993:67;10057:2;10052:3;9993:67;:::i;:::-;9986:74;;10069:93;10158:3;10069:93;:::i;:::-;10187:2;10182:3;10178:12;10171:19;;9830:366;;;:::o;10202:419::-;10368:4;10406:2;10395:9;10391:18;10383:26;;10455:9;10449:4;10445:20;10441:1;10430:9;10426:17;10419:47;10483:131;10609:4;10483:131;:::i;:::-;10475:139;;10202:419;;;:::o;10627:225::-;10767:34;10763:1;10755:6;10751:14;10744:58;10836:8;10831:2;10823:6;10819:15;10812:33;10627:225;:::o;10858:366::-;11000:3;11021:67;11085:2;11080:3;11021:67;:::i;:::-;11014:74;;11097:93;11186:3;11097:93;:::i;:::-;11215:2;11210:3;11206:12;11199:19;;10858:366;;;:::o;11230:419::-;11396:4;11434:2;11423:9;11419:18;11411:26;;11483:9;11477:4;11473:20;11469:1;11458:9;11454:17;11447:47;11511:131;11637:4;11511:131;:::i;:::-;11503:139;;11230:419;;;:::o;11655:143::-;11712:5;11743:6;11737:13;11728:22;;11759:33;11786:5;11759:33;:::i;:::-;11655:143;;;;:::o;11804:351::-;11874:6;11923:2;11911:9;11902:7;11898:23;11894:32;11891:119;;;11929:79;;:::i;:::-;11891:119;12049:1;12074:64;12130:7;12121:6;12110:9;12106:22;12074:64;:::i;:::-;12064:74;;12020:128;11804:351;;;;:::o;12161:182::-;12301:34;12297:1;12289:6;12285:14;12278:58;12161:182;:::o;12349:366::-;12491:3;12512:67;12576:2;12571:3;12512:67;:::i;:::-;12505:74;;12588:93;12677:3;12588:93;:::i;:::-;12706:2;12701:3;12697:12;12690:19;;12349:366;;;:::o;12721:419::-;12887:4;12925:2;12914:9;12910:18;12902:26;;12974:9;12968:4;12964:20;12960:1;12949:9;12945:17;12938:47;13002:131;13128:4;13002:131;:::i;:::-;12994:139;;12721:419;;;:::o;13146:223::-;13286:34;13282:1;13274:6;13270:14;13263:58;13355:6;13350:2;13342:6;13338:15;13331:31;13146:223;:::o;13375:366::-;13517:3;13538:67;13602:2;13597:3;13538:67;:::i;:::-;13531:74;;13614:93;13703:3;13614:93;:::i;:::-;13732:2;13727:3;13723:12;13716:19;;13375:366;;;:::o;13747:419::-;13913:4;13951:2;13940:9;13936:18;13928:26;;14000:9;13994:4;13990:20;13986:1;13975:9;13971:17;13964:47;14028:131;14154:4;14028:131;:::i;:::-;14020:139;;13747:419;;;:::o;14172:221::-;14312:34;14308:1;14300:6;14296:14;14289:58;14381:4;14376:2;14368:6;14364:15;14357:29;14172:221;:::o;14399:366::-;14541:3;14562:67;14626:2;14621:3;14562:67;:::i;:::-;14555:74;;14638:93;14727:3;14638:93;:::i;:::-;14756:2;14751:3;14747:12;14740:19;;14399:366;;;:::o;14771:419::-;14937:4;14975:2;14964:9;14960:18;14952:26;;15024:9;15018:4;15014:20;15010:1;14999:9;14995:17;14988:47;15052:131;15178:4;15052:131;:::i;:::-;15044:139;;14771:419;;;:::o;15196:179::-;15336:31;15332:1;15324:6;15320:14;15313:55;15196:179;:::o;15381:366::-;15523:3;15544:67;15608:2;15603:3;15544:67;:::i;:::-;15537:74;;15620:93;15709:3;15620:93;:::i;:::-;15738:2;15733:3;15729:12;15722:19;;15381:366;;;:::o;15753:419::-;15919:4;15957:2;15946:9;15942:18;15934:26;;16006:9;16000:4;15996:20;15992:1;15981:9;15977:17;15970:47;16034:131;16160:4;16034:131;:::i;:::-;16026:139;;15753:419;;;:::o;16178:228::-;16318:34;16314:1;16306:6;16302:14;16295:58;16387:11;16382:2;16374:6;16370:15;16363:36;16178:228;:::o;16412:366::-;16554:3;16575:67;16639:2;16634:3;16575:67;:::i;:::-;16568:74;;16651:93;16740:3;16651:93;:::i;:::-;16769:2;16764:3;16760:12;16753:19;;16412:366;;;:::o;16784:419::-;16950:4;16988:2;16977:9;16973:18;16965:26;;17037:9;17031:4;17027:20;17023:1;17012:9;17008:17;17001:47;17065:131;17191:4;17065:131;:::i;:::-;17057:139;;16784:419;;;:::o;17209:163::-;17349:15;17345:1;17337:6;17333:14;17326:39;17209:163;:::o;17378:366::-;17520:3;17541:67;17605:2;17600:3;17541:67;:::i;:::-;17534:74;;17617:93;17706:3;17617:93;:::i;:::-;17735:2;17730:3;17726:12;17719:19;;17378:366;;;:::o;17750:419::-;17916:4;17954:2;17943:9;17939:18;17931:26;;18003:9;17997:4;17993:20;17989:1;17978:9;17974:17;17967:47;18031:131;18157:4;18031:131;:::i;:::-;18023:139;;17750:419;;;:::o;18175:163::-;18315:15;18311:1;18303:6;18299:14;18292:39;18175:163;:::o;18344:366::-;18486:3;18507:67;18571:2;18566:3;18507:67;:::i;:::-;18500:74;;18583:93;18672:3;18583:93;:::i;:::-;18701:2;18696:3;18692:12;18685:19;;18344:366;;;:::o;18716:419::-;18882:4;18920:2;18909:9;18905:18;18897:26;;18969:9;18963:4;18959:20;18955:1;18944:9;18940:17;18933:47;18997:131;19123:4;18997:131;:::i;:::-;18989:139;;18716:419;;;:::o;19141:220::-;19281:34;19277:1;19269:6;19265:14;19258:58;19350:3;19345:2;19337:6;19333:15;19326:28;19141:220;:::o;19367:366::-;19509:3;19530:67;19594:2;19589:3;19530:67;:::i;:::-;19523:74;;19606:93;19695:3;19606:93;:::i;:::-;19724:2;19719:3;19715:12;19708:19;;19367:366;;;:::o;19739:419::-;19905:4;19943:2;19932:9;19928:18;19920:26;;19992:9;19986:4;19982:20;19978:1;19967:9;19963:17;19956:47;20020:131;20146:4;20020:131;:::i;:::-;20012:139;;19739:419;;;:::o;20164:221::-;20304:34;20300:1;20292:6;20288:14;20281:58;20373:4;20368:2;20360:6;20356:15;20349:29;20164:221;:::o;20391:366::-;20533:3;20554:67;20618:2;20613:3;20554:67;:::i;:::-;20547:74;;20630:93;20719:3;20630:93;:::i;:::-;20748:2;20743:3;20739:12;20732:19;;20391:366;;;:::o;20763:419::-;20929:4;20967:2;20956:9;20952:18;20944:26;;21016:9;21010:4;21006:20;21002:1;20991:9;20987:17;20980:47;21044:131;21170:4;21044:131;:::i;:::-;21036:139;;20763:419;;;:::o;21188:332::-;21309:4;21347:2;21336:9;21332:18;21324:26;;21360:71;21428:1;21417:9;21413:17;21404:6;21360:71;:::i;:::-;21441:72;21509:2;21498:9;21494:18;21485:6;21441:72;:::i;:::-;21188:332;;;;;:::o;21526:224::-;21666:34;21662:1;21654:6;21650:14;21643:58;21735:7;21730:2;21722:6;21718:15;21711:32;21526:224;:::o;21756:366::-;21898:3;21919:67;21983:2;21978:3;21919:67;:::i;:::-;21912:74;;21995:93;22084:3;21995:93;:::i;:::-;22113:2;22108:3;22104:12;22097:19;;21756:366;;;:::o;22128:419::-;22294:4;22332:2;22321:9;22317:18;22309:26;;22381:9;22375:4;22371:20;22367:1;22356:9;22352:17;22345:47;22409:131;22535:4;22409:131;:::i;:::-;22401:139;;22128:419;;;:::o;22553:222::-;22693:34;22689:1;22681:6;22677:14;22670:58;22762:5;22757:2;22749:6;22745:15;22738:30;22553:222;:::o;22781:366::-;22923:3;22944:67;23008:2;23003:3;22944:67;:::i;:::-;22937:74;;23020:93;23109:3;23020:93;:::i;:::-;23138:2;23133:3;23129:12;23122:19;;22781:366;;;:::o;23153:419::-;23319:4;23357:2;23346:9;23342:18;23334:26;;23406:9;23400:4;23396:20;23392:1;23381:9;23377:17;23370:47;23434:131;23560:4;23434:131;:::i;:::-;23426:139;;23153:419;;;:::o;23578:225::-;23718:34;23714:1;23706:6;23702:14;23695:58;23787:8;23782:2;23774:6;23770:15;23763:33;23578:225;:::o;23809:366::-;23951:3;23972:67;24036:2;24031:3;23972:67;:::i;:::-;23965:74;;24048:93;24137:3;24048:93;:::i;:::-;24166:2;24161:3;24157:12;24150:19;;23809:366;;;:::o;24181:419::-;24347:4;24385:2;24374:9;24370:18;24362:26;;24434:9;24428:4;24424:20;24420:1;24409:9;24405:17;24398:47;24462:131;24588:4;24462:131;:::i;:::-;24454:139;;24181:419;;;:::o;24606:137::-;24660:5;24691:6;24685:13;24676:22;;24707:30;24731:5;24707:30;:::i;:::-;24606:137;;;;:::o;24749:345::-;24816:6;24865:2;24853:9;24844:7;24840:23;24836:32;24833:119;;;24871:79;;:::i;:::-;24833:119;24991:1;25016:61;25069:7;25060:6;25049:9;25045:22;25016:61;:::i;:::-;25006:71;;24962:125;24749:345;;;;:::o;25100:229::-;25240:34;25236:1;25228:6;25224:14;25217:58;25309:12;25304:2;25296:6;25292:15;25285:37;25100:229;:::o;25335:366::-;25477:3;25498:67;25562:2;25557:3;25498:67;:::i;:::-;25491:74;;25574:93;25663:3;25574:93;:::i;:::-;25692:2;25687:3;25683:12;25676:19;;25335:366;;;:::o;25707:419::-;25873:4;25911:2;25900:9;25896:18;25888:26;;25960:9;25954:4;25950:20;25946:1;25935:9;25931:17;25924:47;25988:131;26114:4;25988:131;:::i;:::-;25980:139;;25707:419;;;:::o;26132:225::-;26272:34;26268:1;26260:6;26256:14;26249:58;26341:8;26336:2;26328:6;26324:15;26317:33;26132:225;:::o;26363:366::-;26505:3;26526:67;26590:2;26585:3;26526:67;:::i;:::-;26519:74;;26602:93;26691:3;26602:93;:::i;:::-;26720:2;26715:3;26711:12;26704:19;;26363:366;;;:::o;26735:419::-;26901:4;26939:2;26928:9;26924:18;26916:26;;26988:9;26982:4;26978:20;26974:1;26963:9;26959:17;26952:47;27016:131;27142:4;27016:131;:::i;:::-;27008:139;;26735:419;;;:::o;27160:98::-;27211:6;27245:5;27239:12;27229:22;;27160:98;;;:::o;27264:147::-;27365:11;27402:3;27387:18;;27264:147;;;;:::o;27417:386::-;27521:3;27549:38;27581:5;27549:38;:::i;:::-;27603:88;27684:6;27679:3;27603:88;:::i;:::-;27596:95;;27700:65;27758:6;27753:3;27746:4;27739:5;27735:16;27700:65;:::i;:::-;27790:6;27785:3;27781:16;27774:23;;27525:278;27417:386;;;;:::o;27809:271::-;27939:3;27961:93;28050:3;28041:6;27961:93;:::i;:::-;27954:100;;28071:3;28064:10;;27809:271;;;;:::o;28086:179::-;28226:31;28222:1;28214:6;28210:14;28203:55;28086:179;:::o;28271:366::-;28413:3;28434:67;28498:2;28493:3;28434:67;:::i;:::-;28427:74;;28510:93;28599:3;28510:93;:::i;:::-;28628:2;28623:3;28619:12;28612:19;;28271:366;;;:::o;28643:419::-;28809:4;28847:2;28836:9;28832:18;28824:26;;28896:9;28890:4;28886:20;28882:1;28871:9;28867:17;28860:47;28924:131;29050:4;28924:131;:::i;:::-;28916:139;;28643:419;;;:::o

Swarm Source

ipfs://afcc1f09e35b476da88041e3720f93e050464975d2701cfcd1cde1b71d5f3c13
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.