ETH Price: $3,900.28 (+6.28%)

Token

Reflextorz (RP)
 

Overview

Max Total Supply

130 RP

Holders

116

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 RP
0xbcad92dd52cf0e27498314c61d2d7140aee6f994
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:
Reflextorz

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-28
*/

// File: @openzeppelin/contracts/utils/Context.sol

pragma solidity ^0.8.0;


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

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

// File: @openzeppelin/contracts/utils/Address.sol



pragma solidity ^0.8.0;


library Address {
    
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 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 functionCall(target, data, "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");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(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) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(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) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol



pragma solidity ^0.8.0;


interface IERC20 {
    
    function totalSupply() external view returns (uint256);

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

    
    function transfer(address recipient, 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

// File: @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)

pragma solidity ^0.8.0;




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 {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        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 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    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");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: @openzeppelin/contracts/finance/PaymentSplitter.sol


// OpenZeppelin Contracts v4.4.1 (finance/PaymentSplitter.sol)

pragma solidity ^0.8.0;





contract PaymentSplitter is Context {
    event PayeeAdded(address account, uint256 shares);
    event PaymentReleased(address to, uint256 amount);
    event ERC20PaymentReleased(IERC20 indexed token, address to, uint256 amount);
    event PaymentReceived(address from, uint256 amount);

    uint256 private _totalShares;
    uint256 private _totalReleased;

    mapping(address => uint256) private _shares;
    mapping(address => uint256) private _released;
    address[] private _payees;

    mapping(IERC20 => uint256) private _erc20TotalReleased;
    mapping(IERC20 => mapping(address => uint256)) private _erc20Released;

    
    constructor(address[] memory payees, uint256[] memory shares_) payable {
        require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
        require(payees.length > 0, "PaymentSplitter: no payees");

        for (uint256 i = 0; i < payees.length; i++) {
            _addPayee(payees[i], shares_[i]);
        }
    }

    
    receive() external payable virtual {
        emit PaymentReceived(_msgSender(), msg.value);
    }

    
    function totalShares() public view returns (uint256) {
        return _totalShares;
    }

    
    function totalReleased() public view returns (uint256) {
        return _totalReleased;
    }

    
    function totalReleased(IERC20 token) public view returns (uint256) {
        return _erc20TotalReleased[token];
    }

    
    function shares(address account) public view returns (uint256) {
        return _shares[account];
    }

    
    function released(address account) public view returns (uint256) {
        return _released[account];
    }

    
    function released(IERC20 token, address account) public view returns (uint256) {
        return _erc20Released[token][account];
    }

    
    function payee(uint256 index) public view returns (address) {
        return _payees[index];
    }

    
    function release(address payable account) public virtual {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = address(this).balance + totalReleased();
        uint256 payment = _pendingPayment(account, totalReceived, released(account));

        require(payment != 0, "PaymentSplitter: account is not due payment");

        _released[account] += payment;
        _totalReleased += payment;

        Address.sendValue(account, payment);
        emit PaymentReleased(account, payment);
    }

    
    function release(IERC20 token, address account) public virtual {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = token.balanceOf(address(this)) + totalReleased(token);
        uint256 payment = _pendingPayment(account, totalReceived, released(token, account));

        require(payment != 0, "PaymentSplitter: account is not due payment");

        _erc20Released[token][account] += payment;
        _erc20TotalReleased[token] += payment;

        SafeERC20.safeTransfer(token, account, payment);
        emit ERC20PaymentReleased(token, account, payment);
    }

    
    function _pendingPayment(
        address account,
        uint256 totalReceived,
        uint256 alreadyReleased
    ) private view returns (uint256) {
        return (totalReceived * _shares[account]) / _totalShares - alreadyReleased;
    }

    
    function _addPayee(address account, uint256 shares_) private {
        require(account != address(0), "PaymentSplitter: account is the zero address");
        require(shares_ > 0, "PaymentSplitter: shares are 0");
        require(_shares[account] == 0, "PaymentSplitter: account already has shares");

        _payees.push(account);
        _shares[account] = shares_;
        _totalShares = _totalShares + shares_;
        emit PayeeAdded(account, shares_);
    }
}

// File: @openzeppelin/contracts/utils/cryptography/MerkleProof.sol


// OpenZeppelin Contracts v4.4.1 (utils/cryptography/MerkleProof.sol)

pragma solidity ^0.8.0;


library MerkleProof {
    
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    
    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }
        return computedHash;
    }
}

// File: @openzeppelin/contracts/utils/Strings.sol



pragma solidity ^0.8.0;


library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// File: contracts/ERC721.sol


pragma solidity >=0.8.0;

abstract contract ERC721 {
    

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

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

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    

    mapping(address => uint256) public balanceOf;

    mapping(uint256 => address) public ownerOf;

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    

    function approve(address spender, uint256 id) public virtual {
        address owner = ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            balanceOf[from]--;

            balanceOf[to]++;
        }

        ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes memory data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    

    function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            balanceOf[to]++;
        }

        ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = ownerOf[id];

        require(ownerOf[id] != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            balanceOf[owner]--;
        }

        delete ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
	interface ERC721TokenReceiver {
		function onERC721Received(
			address operator,
			address from,
			uint256 id,
			bytes calldata data
		) external returns (bytes4);
	}
// File: contracts/dsadsaa.sol

pragma solidity >=0.8.4;





contract Reflextorz is ERC721, PaymentSplitter {
    uint256 public totalSupply;
    uint256 private cost = 0.007 ether;
    uint256 private whitelistCost = 0.005 ether;
    address public owner = msg.sender;
    bytes32 private merkleRoot;
    bool public whitelistActive = true;
    string baseURI;

    mapping(address => bool) internal whitelistClaimed;

    error WhitelistActive();
    error SoldOut();
    error InsufficientFunds();
    error AlreadyClaimed();
    error InvalidProof();
    error NotOwner();
    error MintNotEnabled();
    error URIAlreadySet();
    error WhitelistDisabled();

    event Minted(
        address indexed owner,
        string tokenURI,
        uint256 indexed mintTime
    );

    constructor(address[] memory _payees, uint256[] memory _shares)
        ERC721("Reflextorz", "RP")
        PaymentSplitter(_payees, _shares)
    {}

    function setWhitelist(bytes32 _merkleRoot) external {
		if (msg.sender != owner) revert NotOwner();
        merkleRoot = _merkleRoot;
    }

    function removeWhitelist() external {
        if (msg.sender != owner) revert NotOwner();
        if (!whitelistActive) revert WhitelistDisabled();
        whitelistActive = false;
    }

    function mint() external payable {
        if (bytes(baseURI).length == 0) revert MintNotEnabled();
        if (whitelistActive) revert WhitelistActive();
        if (totalSupply + 1 > 3333) revert SoldOut();
        if (msg.value < cost) revert InsufficientFunds();
        totalSupply++;
        _safeMint(msg.sender, totalSupply);
        emit Minted(msg.sender, tokenURI(totalSupply), block.timestamp);
    }

    function whitelistedMint(bytes32[] calldata _merkleProof) external payable {
        if (bytes(baseURI).length == 0) revert MintNotEnabled();
        if (whitelistClaimed[msg.sender]) revert AlreadyClaimed();
        if (totalSupply + 1 > 3333) revert SoldOut();
        if (msg.value < whitelistCost) revert InsufficientFunds();

        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));

        if (!MerkleProof.verify(_merkleProof, merkleRoot, leaf))
            revert InvalidProof();

        whitelistClaimed[msg.sender] = true;
        totalSupply++;
        _safeMint(msg.sender, totalSupply);
        emit Minted(msg.sender, tokenURI(totalSupply), block.timestamp);
    }

    function setBaseURI(string memory _uri) external {
        if (bytes(baseURI).length > 0) revert URIAlreadySet();
        if (msg.sender != owner) revert NotOwner();
        baseURI = _uri;
    }

    function tokenURI(uint256 tokenId)
        public
        view
        override(ERC721)
        returns (string memory)
    {
        return
            string(
                abi.encodePacked(baseURI, Strings.toString(tokenId), ".json")
            );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_payees","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyClaimed","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[],"name":"MintNotEnabled","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SoldOut","type":"error"},{"inputs":[],"name":"URIAlreadySet","type":"error"},{"inputs":[],"name":"WhitelistActive","type":"error"},{"inputs":[],"name":"WhitelistDisabled","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"string","name":"tokenURI","type":"string"},{"indexed":true,"internalType":"uint256","name":"mintTime","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"whitelistedMint","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526618de76816d8000600e556611c37937e08000600f55601080546001600160a01b031916331790556012805460ff191660011790553480156200004657600080fd5b5060405162002930380380620029308339810160408190526200006991620004d8565b81816040518060400160405280600a8152602001692932b33632bc3a37b93d60b11b81525060405180604001604052806002815260200161052560f41b8152508160009081620000ba919062000645565b506001620000c9828262000645565b50505080518251146200013e5760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620001915760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f20706179656573000000000000604482015260640162000135565b60005b8251811015620001fd57620001e8838281518110620001b757620001b762000711565b6020026020010151838381518110620001d457620001d462000711565b60200260200101516200020860201b60201c565b80620001f4816200073d565b91505062000194565b505050505062000774565b6001600160a01b038216620002755760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b606482015260840162000135565b60008111620002c75760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a20736861726573206172652030000000604482015260640162000135565b6001600160a01b03821660009081526008602052604090205415620003435760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b606482015260840162000135565b600a8054600181019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020819055600654620003ad90829062000759565b600655604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620004375762000437620003f6565b604052919050565b60006001600160401b038211156200045b576200045b620003f6565b5060051b60200190565b600082601f8301126200047757600080fd5b81516020620004906200048a836200043f565b6200040c565b82815260059290921b84018101918181019086841115620004b057600080fd5b8286015b84811015620004cd5780518352918301918301620004b4565b509695505050505050565b60008060408385031215620004ec57600080fd5b82516001600160401b03808211156200050457600080fd5b818501915085601f8301126200051957600080fd5b815160206200052c6200048a836200043f565b82815260059290921b840181019181810190898411156200054c57600080fd5b948201945b83861015620005835785516001600160a01b0381168114620005735760008081fd5b8252948201949082019062000551565b918801519196509093505050808211156200059d57600080fd5b50620005ac8582860162000465565b9150509250929050565b600181811c90821680620005cb57607f821691505b602082108103620005ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200064057600081815260208120601f850160051c810160208610156200061b5750805b601f850160051c820191505b818110156200063c5782815560010162000627565b5050505b505050565b81516001600160401b03811115620006615762000661620003f6565b6200067981620006728454620005b6565b84620005f2565b602080601f831160018114620006b15760008415620006985750858301515b600019600386901b1c1916600185901b1785556200063c565b600085815260208120601f198616915b82811015620006e257888601518255948401946001909101908401620006c1565b5085821015620007015787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000752576200075262000727565b5060010190565b600082198211156200076f576200076f62000727565b500190565b6121ac80620007846000396000f3fe6080604052600436106101615760003560e01c806301ffc9a7146101a657806302ce5813146101db57806306fdde03146101f5578063081812fc14610217578063095ea7b31461025a5780631249c58b1461027c57806317f708fb1461028457806318160ddd1461029957806319165587146102bd57806323b872dd146102dd5780633a98ef39146102fd578063406072a91461031257806342842e0e14610332578063440bc7f31461035257806348b750441461037257806355f804b3146103925780636352211e146103b257806370a08231146103e857806375a6f85a146104155780638b83209b146104285780638da5cb5b1461044857806395d89b41146104685780639852595c1461047d578063a22cb4651461049d578063b88d4fde146104bd578063c87b56dd146104dd578063ce7c2ac2146104fd578063d79779b214610533578063e33b7de314610553578063e985e9c51461056857600080fd5b366101a1577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516101979291906118d9565b60405180910390a1005b600080fd5b3480156101b257600080fd5b506101c66101c136600461190b565b6105a3565b60405190151581526020015b60405180910390f35b3480156101e757600080fd5b506012546101c69060ff1681565b34801561020157600080fd5b5061020a6105f5565b6040516101d29190611980565b34801561022357600080fd5b5061024d610232366004611993565b6004602052600090815260409020546001600160a01b031681565b6040516101d291906119ac565b34801561026657600080fd5b5061027a6102753660046119d5565b610683565b005b61027a61074d565b34801561029057600080fd5b5061027a610851565b3480156102a557600080fd5b506102af600d5481565b6040519081526020016101d2565b3480156102c957600080fd5b5061027a6102d8366004611a01565b6108ab565b3480156102e957600080fd5b5061027a6102f8366004611a1e565b6109bd565b34801561030957600080fd5b506006546102af565b34801561031e57600080fd5b506102af61032d366004611a5f565b610b2d565b34801561033e57600080fd5b5061027a61034d366004611a1e565b610b58565b34801561035e57600080fd5b5061027a61036d366004611993565b610c17565b34801561037e57600080fd5b5061027a61038d366004611a5f565b610c47565b34801561039e57600080fd5b5061027a6103ad366004611b23565b610df1565b3480156103be57600080fd5b5061024d6103cd366004611993565b6003602052600090815260409020546001600160a01b031681565b3480156103f457600080fd5b506102af610403366004611a01565b60026020526000908152604090205481565b61027a610423366004611b6b565b610e5c565b34801561043457600080fd5b5061024d610443366004611993565b61101a565b34801561045457600080fd5b5060105461024d906001600160a01b031681565b34801561047457600080fd5b5061020a61104a565b34801561048957600080fd5b506102af610498366004611a01565b611057565b3480156104a957600080fd5b5061027a6104b8366004611bed565b611072565b3480156104c957600080fd5b5061027a6104d8366004611c1b565b6110de565b3480156104e957600080fd5b5061020a6104f8366004611993565b6111a0565b34801561050957600080fd5b506102af610518366004611a01565b6001600160a01b031660009081526008602052604090205490565b34801561053f57600080fd5b506102af61054e366004611a01565b6111d4565b34801561055f57600080fd5b506007546102af565b34801561057457600080fd5b506101c6610583366004611a5f565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105d457506380ac58cd60e01b6001600160e01b03198316145b806105ef5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461060290611c9a565b80601f016020809104026020016040519081016040528092919081815260200182805461062e90611c9a565b801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b0316338114806106cc57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106f15760405162461bcd60e51b81526004016106e890611cd4565b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6013805461075a90611c9a565b905060000361077c5760405163447691f760e01b815260040160405180910390fd5b60125460ff16156107a0576040516316e5d37d60e11b815260040160405180910390fd5b610d05600d5460016107b29190611d12565b11156107d1576040516352df9fe560e01b815260040160405180910390fd5b600e543410156107f45760405163356680b760e01b815260040160405180910390fd5b600d805490600061080483611d2a565b919050555061081533600d546111ef565b42336001600160a01b031660008051602061215783398151915261083a600d546111a0565b6040516108479190611980565b60405180910390a3565b6010546001600160a01b0316331461087c576040516330cd747160e01b815260040160405180910390fd5b60125460ff1661089f5760405163212c6e1d60e01b815260040160405180910390fd5b6012805460ff19169055565b6001600160a01b0381166000908152600860205260409020546108e05760405162461bcd60e51b81526004016106e890611d43565b60006108eb60075490565b6108f59047611d12565b9050600061090c838361090786611057565b6112a9565b90508060000361092e5760405162461bcd60e51b81526004016106e890611d89565b6001600160a01b03831660009081526009602052604081208054839290610956908490611d12565b92505081905550806007600082825461096f9190611d12565b9091555061097f905083826112f1565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05683826040516109b09291906118d9565b60405180910390a1505050565b6000818152600360205260409020546001600160a01b03848116911614610a135760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106e8565b6001600160a01b038216610a395760405162461bcd60e51b81526004016106e890611dd4565b336001600160a01b0384161480610a6657506000818152600460205260409020546001600160a01b031633145b80610a9457506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610ab05760405162461bcd60e51b81526004016106e890611cd4565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b031990811683179091556004909252848320805490921690915592518493929160008051602061213783398151915291a4505050565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b610b638383836109bd565b6001600160a01b0382163b1580610bf65750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a0290610ba790339088908790600401611dff565b6020604051808303816000875af1158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bea9190611e32565b6001600160e01b031916145b610c125760405162461bcd60e51b81526004016106e890611e4f565b505050565b6010546001600160a01b03163314610c42576040516330cd747160e01b815260040160405180910390fd5b601155565b6001600160a01b038116600090815260086020526040902054610c7c5760405162461bcd60e51b81526004016106e890611d43565b6000610c87836111d4565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610cb39030906004016119ac565b602060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf49190611e79565b610cfe9190611d12565b90506000610d1183836109078787610b2d565b905080600003610d335760405162461bcd60e51b81526004016106e890611d89565b6001600160a01b038085166000908152600c6020908152604080832093871683529290529081208054839290610d6a908490611d12565b90915550506001600160a01b0384166000908152600b602052604081208054839290610d97908490611d12565b90915550610da89050848483611407565b836001600160a01b03167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8483604051610de39291906118d9565b60405180910390a250505050565b600060138054610e0090611c9a565b90501115610e21576040516341666d6560e11b815260040160405180910390fd5b6010546001600160a01b03163314610e4c576040516330cd747160e01b815260040160405180910390fd5b6013610e588282611ee0565b5050565b60138054610e6990611c9a565b9050600003610e8b5760405163447691f760e01b815260040160405180910390fd5b3360009081526014602052604090205460ff1615610ebc57604051630c8d9eab60e31b815260040160405180910390fd5b610d05600d546001610ece9190611d12565b1115610eed576040516352df9fe560e01b815260040160405180910390fd5b600f54341015610f105760405163356680b760e01b815260040160405180910390fd5b6040516001600160601b03193360601b166020820152600090603401604051602081830303815290604052805190602001209050610f8583838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601154915084905061145d565b610fa2576040516309bde33960e01b815260040160405180910390fd5b336000908152601460205260408120805460ff19166001179055600d805491610fca83611d2a565b9190505550610fdb33600d546111ef565b42336001600160a01b0316600080516020612157833981519152611000600d546111a0565b60405161100d9190611980565b60405180910390a3505050565b6000600a828154811061102f5761102f611f9f565b6000918252602090912001546001600160a01b031692915050565b6001805461060290611c9a565b6001600160a01b031660009081526009602052604090205490565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6110e98484846109bd565b6001600160a01b0383163b158061117e5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a029061112f903390899088908890600401611fb5565b6020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111729190611e32565b6001600160e01b031916145b61119a5760405162461bcd60e51b81526004016106e890611e4f565b50505050565b606060136111ad83611473565b6040516020016111be929190611ff2565b6040516020818303038152906040529050919050565b6001600160a01b03166000908152600b602052604090205490565b6111f9828261157b565b6001600160a01b0382163b158061128d5750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a029061123e9033906000908790600401611dff565b6020604051808303816000875af115801561125d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112819190611e32565b6001600160e01b031916145b610e585760405162461bcd60e51b81526004016106e890611e4f565b6006546001600160a01b038416600090815260086020526040812054909183916112d39086612089565b6112dd91906120be565b6112e791906120d2565b90505b9392505050565b804710156113415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461138e576040519150601f19603f3d011682016040523d82523d6000602084013e611393565b606091505b5050905080610c125760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016106e8565b610c128363a9059cbb60e01b84846040516024016114269291906118d9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611650565b60008261146a8584611722565b14949350505050565b60608160000361149a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156114c457806114ae81611d2a565b91506114bd9050600a836120be565b915061149e565b6000816001600160401b038111156114de576114de611a98565b6040519080825280601f01601f191660200182016040528015611508576020820181803683370190505b5090505b84156115735761151d6001836120d2565b915061152a600a866120e9565b611535906030611d12565b60f81b81838151811061154a5761154a611f9f565b60200101906001600160f81b031916908160001a90535061156c600a866120be565b945061150c565b949350505050565b6001600160a01b0382166115a15760405162461bcd60e51b81526004016106e890611dd4565b6000818152600360205260409020546001600160a01b0316156115f75760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106e8565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b031916841790555183929190600080516020612137833981519152908290a45050565b60006116a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117ce9092919063ffffffff16565b805190915015610c1257808060200190518101906116c391906120fd565b610c125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e8565b600081815b84518110156117c657600085828151811061174457611744611f9f565b602002602001015190508083116117865760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506117b3565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806117be81611d2a565b915050611727565b509392505050565b60606112e7848460008585843b6118275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e8565b600080866001600160a01b03168587604051611843919061211a565b60006040518083038185875af1925050503d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b50915091506118958282866118a0565b979650505050505050565b606083156118af5750816112ea565b8251156118bf5782518084602001fd5b8160405162461bcd60e51b81526004016106e89190611980565b6001600160a01b03929092168252602082015260400190565b6001600160e01b03198116811461190857600080fd5b50565b60006020828403121561191d57600080fd5b81356112ea816118f2565b60005b8381101561194357818101518382015260200161192b565b8381111561119a5750506000910152565b6000815180845261196c816020860160208601611928565b601f01601f19169290920160200192915050565b6020815260006112ea6020830184611954565b6000602082840312156119a557600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461190857600080fd5b600080604083850312156119e857600080fd5b82356119f3816119c0565b946020939093013593505050565b600060208284031215611a1357600080fd5b81356112ea816119c0565b600080600060608486031215611a3357600080fd5b8335611a3e816119c0565b92506020840135611a4e816119c0565b929592945050506040919091013590565b60008060408385031215611a7257600080fd5b8235611a7d816119c0565b91506020830135611a8d816119c0565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611ac857611ac8611a98565b604051601f8501601f19908116603f01168101908282118183101715611af057611af0611a98565b81604052809350858152868686011115611b0957600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b3557600080fd5b81356001600160401b03811115611b4b57600080fd5b8201601f81018413611b5c57600080fd5b61157384823560208401611aae565b60008060208385031215611b7e57600080fd5b82356001600160401b0380821115611b9557600080fd5b818501915085601f830112611ba957600080fd5b813581811115611bb857600080fd5b8660208260051b8501011115611bcd57600080fd5b60209290920196919550909350505050565b801515811461190857600080fd5b60008060408385031215611c0057600080fd5b8235611c0b816119c0565b91506020830135611a8d81611bdf565b60008060008060808587031215611c3157600080fd5b8435611c3c816119c0565b93506020850135611c4c816119c0565b92506040850135915060608501356001600160401b03811115611c6e57600080fd5b8501601f81018713611c7f57600080fd5b611c8e87823560208401611aae565b91505092959194509250565b600181811c90821680611cae57607f821691505b602082108103611cce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611d2557611d25611cfc565b500190565b600060018201611d3c57611d3c611cfc565b5060010190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b600060208284031215611e4457600080fd5b81516112ea816118f2565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b600060208284031215611e8b57600080fd5b5051919050565b601f821115610c1257600081815260208120601f850160051c81016020861015611eb95750805b601f850160051c820191505b81811015611ed857828155600101611ec5565b505050505050565b81516001600160401b03811115611ef957611ef9611a98565b611f0d81611f078454611c9a565b84611e92565b602080601f831160018114611f425760008415611f2a5750858301515b600019600386901b1c1916600185901b178555611ed8565b600085815260208120601f198616915b82811015611f7157888601518255948401946001909101908401611f52565b5085821015611f8f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611fe890830184611954565b9695505050505050565b600080845461200081611c9a565b60018281168015612018576001811461202d5761205c565b60ff198416875282151583028701945061205c565b8860005260208060002060005b858110156120535781548a82015290840190820161203a565b50505082870194505b505050508351612070818360208801611928565b64173539b7b760d91b9101908152600501949350505050565b60008160001904831182151516156120a3576120a3611cfc565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826120cd576120cd6120a8565b500490565b6000828210156120e4576120e4611cfc565b500390565b6000826120f8576120f86120a8565b500690565b60006020828403121561210f57600080fd5b81516112ea81611bdf565b6000825161212c818460208701611928565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a92776a2646970667358221220ee41d8f91ff0dd06e8e5b50685fe4f9963dfd87a92bfa3bb3f1dc41ecd260de864736f6c634300080f0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000952583d81c68958e067ee2beab606e9c2707a49000000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee3470000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000261600000000000000000000000000000000000000000000000000000000000000fa

Deployed Bytecode

0x6080604052600436106101615760003560e01c806301ffc9a7146101a657806302ce5813146101db57806306fdde03146101f5578063081812fc14610217578063095ea7b31461025a5780631249c58b1461027c57806317f708fb1461028457806318160ddd1461029957806319165587146102bd57806323b872dd146102dd5780633a98ef39146102fd578063406072a91461031257806342842e0e14610332578063440bc7f31461035257806348b750441461037257806355f804b3146103925780636352211e146103b257806370a08231146103e857806375a6f85a146104155780638b83209b146104285780638da5cb5b1461044857806395d89b41146104685780639852595c1461047d578063a22cb4651461049d578063b88d4fde146104bd578063c87b56dd146104dd578063ce7c2ac2146104fd578063d79779b214610533578063e33b7de314610553578063e985e9c51461056857600080fd5b366101a1577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516101979291906118d9565b60405180910390a1005b600080fd5b3480156101b257600080fd5b506101c66101c136600461190b565b6105a3565b60405190151581526020015b60405180910390f35b3480156101e757600080fd5b506012546101c69060ff1681565b34801561020157600080fd5b5061020a6105f5565b6040516101d29190611980565b34801561022357600080fd5b5061024d610232366004611993565b6004602052600090815260409020546001600160a01b031681565b6040516101d291906119ac565b34801561026657600080fd5b5061027a6102753660046119d5565b610683565b005b61027a61074d565b34801561029057600080fd5b5061027a610851565b3480156102a557600080fd5b506102af600d5481565b6040519081526020016101d2565b3480156102c957600080fd5b5061027a6102d8366004611a01565b6108ab565b3480156102e957600080fd5b5061027a6102f8366004611a1e565b6109bd565b34801561030957600080fd5b506006546102af565b34801561031e57600080fd5b506102af61032d366004611a5f565b610b2d565b34801561033e57600080fd5b5061027a61034d366004611a1e565b610b58565b34801561035e57600080fd5b5061027a61036d366004611993565b610c17565b34801561037e57600080fd5b5061027a61038d366004611a5f565b610c47565b34801561039e57600080fd5b5061027a6103ad366004611b23565b610df1565b3480156103be57600080fd5b5061024d6103cd366004611993565b6003602052600090815260409020546001600160a01b031681565b3480156103f457600080fd5b506102af610403366004611a01565b60026020526000908152604090205481565b61027a610423366004611b6b565b610e5c565b34801561043457600080fd5b5061024d610443366004611993565b61101a565b34801561045457600080fd5b5060105461024d906001600160a01b031681565b34801561047457600080fd5b5061020a61104a565b34801561048957600080fd5b506102af610498366004611a01565b611057565b3480156104a957600080fd5b5061027a6104b8366004611bed565b611072565b3480156104c957600080fd5b5061027a6104d8366004611c1b565b6110de565b3480156104e957600080fd5b5061020a6104f8366004611993565b6111a0565b34801561050957600080fd5b506102af610518366004611a01565b6001600160a01b031660009081526008602052604090205490565b34801561053f57600080fd5b506102af61054e366004611a01565b6111d4565b34801561055f57600080fd5b506007546102af565b34801561057457600080fd5b506101c6610583366004611a5f565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105d457506380ac58cd60e01b6001600160e01b03198316145b806105ef5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461060290611c9a565b80601f016020809104026020016040519081016040528092919081815260200182805461062e90611c9a565b801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b0316338114806106cc57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106f15760405162461bcd60e51b81526004016106e890611cd4565b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6013805461075a90611c9a565b905060000361077c5760405163447691f760e01b815260040160405180910390fd5b60125460ff16156107a0576040516316e5d37d60e11b815260040160405180910390fd5b610d05600d5460016107b29190611d12565b11156107d1576040516352df9fe560e01b815260040160405180910390fd5b600e543410156107f45760405163356680b760e01b815260040160405180910390fd5b600d805490600061080483611d2a565b919050555061081533600d546111ef565b42336001600160a01b031660008051602061215783398151915261083a600d546111a0565b6040516108479190611980565b60405180910390a3565b6010546001600160a01b0316331461087c576040516330cd747160e01b815260040160405180910390fd5b60125460ff1661089f5760405163212c6e1d60e01b815260040160405180910390fd5b6012805460ff19169055565b6001600160a01b0381166000908152600860205260409020546108e05760405162461bcd60e51b81526004016106e890611d43565b60006108eb60075490565b6108f59047611d12565b9050600061090c838361090786611057565b6112a9565b90508060000361092e5760405162461bcd60e51b81526004016106e890611d89565b6001600160a01b03831660009081526009602052604081208054839290610956908490611d12565b92505081905550806007600082825461096f9190611d12565b9091555061097f905083826112f1565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05683826040516109b09291906118d9565b60405180910390a1505050565b6000818152600360205260409020546001600160a01b03848116911614610a135760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106e8565b6001600160a01b038216610a395760405162461bcd60e51b81526004016106e890611dd4565b336001600160a01b0384161480610a6657506000818152600460205260409020546001600160a01b031633145b80610a9457506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610ab05760405162461bcd60e51b81526004016106e890611cd4565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b031990811683179091556004909252848320805490921690915592518493929160008051602061213783398151915291a4505050565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b610b638383836109bd565b6001600160a01b0382163b1580610bf65750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a0290610ba790339088908790600401611dff565b6020604051808303816000875af1158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bea9190611e32565b6001600160e01b031916145b610c125760405162461bcd60e51b81526004016106e890611e4f565b505050565b6010546001600160a01b03163314610c42576040516330cd747160e01b815260040160405180910390fd5b601155565b6001600160a01b038116600090815260086020526040902054610c7c5760405162461bcd60e51b81526004016106e890611d43565b6000610c87836111d4565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610cb39030906004016119ac565b602060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf49190611e79565b610cfe9190611d12565b90506000610d1183836109078787610b2d565b905080600003610d335760405162461bcd60e51b81526004016106e890611d89565b6001600160a01b038085166000908152600c6020908152604080832093871683529290529081208054839290610d6a908490611d12565b90915550506001600160a01b0384166000908152600b602052604081208054839290610d97908490611d12565b90915550610da89050848483611407565b836001600160a01b03167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8483604051610de39291906118d9565b60405180910390a250505050565b600060138054610e0090611c9a565b90501115610e21576040516341666d6560e11b815260040160405180910390fd5b6010546001600160a01b03163314610e4c576040516330cd747160e01b815260040160405180910390fd5b6013610e588282611ee0565b5050565b60138054610e6990611c9a565b9050600003610e8b5760405163447691f760e01b815260040160405180910390fd5b3360009081526014602052604090205460ff1615610ebc57604051630c8d9eab60e31b815260040160405180910390fd5b610d05600d546001610ece9190611d12565b1115610eed576040516352df9fe560e01b815260040160405180910390fd5b600f54341015610f105760405163356680b760e01b815260040160405180910390fd5b6040516001600160601b03193360601b166020820152600090603401604051602081830303815290604052805190602001209050610f8583838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601154915084905061145d565b610fa2576040516309bde33960e01b815260040160405180910390fd5b336000908152601460205260408120805460ff19166001179055600d805491610fca83611d2a565b9190505550610fdb33600d546111ef565b42336001600160a01b0316600080516020612157833981519152611000600d546111a0565b60405161100d9190611980565b60405180910390a3505050565b6000600a828154811061102f5761102f611f9f565b6000918252602090912001546001600160a01b031692915050565b6001805461060290611c9a565b6001600160a01b031660009081526009602052604090205490565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6110e98484846109bd565b6001600160a01b0383163b158061117e5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a029061112f903390899088908890600401611fb5565b6020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111729190611e32565b6001600160e01b031916145b61119a5760405162461bcd60e51b81526004016106e890611e4f565b50505050565b606060136111ad83611473565b6040516020016111be929190611ff2565b6040516020818303038152906040529050919050565b6001600160a01b03166000908152600b602052604090205490565b6111f9828261157b565b6001600160a01b0382163b158061128d5750604051630a85bd0160e11b808252906001600160a01b0384169063150b7a029061123e9033906000908790600401611dff565b6020604051808303816000875af115801561125d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112819190611e32565b6001600160e01b031916145b610e585760405162461bcd60e51b81526004016106e890611e4f565b6006546001600160a01b038416600090815260086020526040812054909183916112d39086612089565b6112dd91906120be565b6112e791906120d2565b90505b9392505050565b804710156113415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106e8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461138e576040519150601f19603f3d011682016040523d82523d6000602084013e611393565b606091505b5050905080610c125760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016106e8565b610c128363a9059cbb60e01b84846040516024016114269291906118d9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611650565b60008261146a8584611722565b14949350505050565b60608160000361149a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156114c457806114ae81611d2a565b91506114bd9050600a836120be565b915061149e565b6000816001600160401b038111156114de576114de611a98565b6040519080825280601f01601f191660200182016040528015611508576020820181803683370190505b5090505b84156115735761151d6001836120d2565b915061152a600a866120e9565b611535906030611d12565b60f81b81838151811061154a5761154a611f9f565b60200101906001600160f81b031916908160001a90535061156c600a866120be565b945061150c565b949350505050565b6001600160a01b0382166115a15760405162461bcd60e51b81526004016106e890611dd4565b6000818152600360205260409020546001600160a01b0316156115f75760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106e8565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b031916841790555183929190600080516020612137833981519152908290a45050565b60006116a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117ce9092919063ffffffff16565b805190915015610c1257808060200190518101906116c391906120fd565b610c125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e8565b600081815b84518110156117c657600085828151811061174457611744611f9f565b602002602001015190508083116117865760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506117b3565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806117be81611d2a565b915050611727565b509392505050565b60606112e7848460008585843b6118275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e8565b600080866001600160a01b03168587604051611843919061211a565b60006040518083038185875af1925050503d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b50915091506118958282866118a0565b979650505050505050565b606083156118af5750816112ea565b8251156118bf5782518084602001fd5b8160405162461bcd60e51b81526004016106e89190611980565b6001600160a01b03929092168252602082015260400190565b6001600160e01b03198116811461190857600080fd5b50565b60006020828403121561191d57600080fd5b81356112ea816118f2565b60005b8381101561194357818101518382015260200161192b565b8381111561119a5750506000910152565b6000815180845261196c816020860160208601611928565b601f01601f19169290920160200192915050565b6020815260006112ea6020830184611954565b6000602082840312156119a557600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461190857600080fd5b600080604083850312156119e857600080fd5b82356119f3816119c0565b946020939093013593505050565b600060208284031215611a1357600080fd5b81356112ea816119c0565b600080600060608486031215611a3357600080fd5b8335611a3e816119c0565b92506020840135611a4e816119c0565b929592945050506040919091013590565b60008060408385031215611a7257600080fd5b8235611a7d816119c0565b91506020830135611a8d816119c0565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611ac857611ac8611a98565b604051601f8501601f19908116603f01168101908282118183101715611af057611af0611a98565b81604052809350858152868686011115611b0957600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b3557600080fd5b81356001600160401b03811115611b4b57600080fd5b8201601f81018413611b5c57600080fd5b61157384823560208401611aae565b60008060208385031215611b7e57600080fd5b82356001600160401b0380821115611b9557600080fd5b818501915085601f830112611ba957600080fd5b813581811115611bb857600080fd5b8660208260051b8501011115611bcd57600080fd5b60209290920196919550909350505050565b801515811461190857600080fd5b60008060408385031215611c0057600080fd5b8235611c0b816119c0565b91506020830135611a8d81611bdf565b60008060008060808587031215611c3157600080fd5b8435611c3c816119c0565b93506020850135611c4c816119c0565b92506040850135915060608501356001600160401b03811115611c6e57600080fd5b8501601f81018713611c7f57600080fd5b611c8e87823560208401611aae565b91505092959194509250565b600181811c90821680611cae57607f821691505b602082108103611cce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611d2557611d25611cfc565b500190565b600060018201611d3c57611d3c611cfc565b5060010190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b600060208284031215611e4457600080fd5b81516112ea816118f2565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b600060208284031215611e8b57600080fd5b5051919050565b601f821115610c1257600081815260208120601f850160051c81016020861015611eb95750805b601f850160051c820191505b81811015611ed857828155600101611ec5565b505050505050565b81516001600160401b03811115611ef957611ef9611a98565b611f0d81611f078454611c9a565b84611e92565b602080601f831160018114611f425760008415611f2a5750858301515b600019600386901b1c1916600185901b178555611ed8565b600085815260208120601f198616915b82811015611f7157888601518255948401946001909101908401611f52565b5085821015611f8f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611fe890830184611954565b9695505050505050565b600080845461200081611c9a565b60018281168015612018576001811461202d5761205c565b60ff198416875282151583028701945061205c565b8860005260208060002060005b858110156120535781548a82015290840190820161203a565b50505082870194505b505050508351612070818360208801611928565b64173539b7b760d91b9101908152600501949350505050565b60008160001904831182151516156120a3576120a3611cfc565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826120cd576120cd6120a8565b500490565b6000828210156120e4576120e4611cfc565b500390565b6000826120f8576120f86120a8565b500690565b60006020828403121561210f57600080fd5b81516112ea81611bdf565b6000825161212c818460208701611928565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a92776a2646970667358221220ee41d8f91ff0dd06e8e5b50685fe4f9963dfd87a92bfa3bb3f1dc41ecd260de864736f6c634300080f0033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000952583d81c68958e067ee2beab606e9c2707a49000000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee3470000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000261600000000000000000000000000000000000000000000000000000000000000fa

-----Decoded View---------------
Arg [0] : _payees (address[]): 0x952583D81C68958E067ee2bEAB606e9c2707A490,0x59750Ac0631f63BFDCe0f0867618e468E11EE347
Arg [1] : _shares (uint256[]): 9750,250

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [3] : 000000000000000000000000952583d81c68958e067ee2beab606e9c2707a490
Arg [4] : 00000000000000000000000059750ac0631f63bfdce0f0867618e468e11ee347
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 0000000000000000000000000000000000000000000000000000000000002616
Arg [7] : 00000000000000000000000000000000000000000000000000000000000000fa


Deployed Bytecode Sourcemap

20533:2872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9385:40;196:10;9415:9;9385:40;;;;;;;:::i;:::-;;;;;;;;20533:2872;;;;;18184:340;;;;;;;;;;-1:-1:-1;18184:340:0;;;;;:::i;:::-;;:::i;:::-;;;844:14:1;;837:22;819:41;;807:2;792:18;18184:340:0;;;;;;;;20784:34;;;;;;;;;;-1:-1:-1;20784:34:0;;;;;;;;15508:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;15758:46::-;;;;;;;;;;-1:-1:-1;15758:46:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15758:46:0;;;;;;;;;;:::i;16028:289::-;;;;;;;;;;-1:-1:-1;16028:289:0;;;;;:::i;:::-;;:::i;:::-;;21788:420;;;:::i;21590:190::-;;;;;;;;;;;;;:::i;20587:26::-;;;;;;;;;;;;;;;;;;;2617:25:1;;;2605:2;2590:18;20587:26:0;2471:177:1;10299:566:0;;;;;;;;;;-1:-1:-1;10299:566:0;;;;;:::i;:::-;;:::i;16540:764::-;;;;;;;;;;-1:-1:-1;16540:764:0;;;;;:::i;:::-;;:::i;9447:91::-;;;;;;;;;;-1:-1:-1;9518:12:0;;9447:91;;10036:135;;;;;;;;;;-1:-1:-1;10036:135:0;;;;;:::i;:::-;;:::i;17312:409::-;;;;;;;;;;-1:-1:-1;17312:409:0;;;;;:::i;:::-;;:::i;21440:142::-;;;;;;;;;;-1:-1:-1;21440:142:0;;;;;:::i;:::-;;:::i;10879:641::-;;;;;;;;;;-1:-1:-1;10879:641:0;;;;;:::i;:::-;;:::i;22926:199::-;;;;;;;;;;-1:-1:-1;22926:199:0;;;;;:::i;:::-;;:::i;15707:42::-;;;;;;;;;;-1:-1:-1;15707:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15707:42:0;;;15654:44;;;;;;;;;;-1:-1:-1;15654:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;22216:702;;;;;;:::i;:::-;;:::i;10185:100::-;;;;;;;;;;-1:-1:-1;10185:100:0;;;;;:::i;:::-;;:::i;20711:33::-;;;;;;;;;;-1:-1:-1;20711:33:0;;;;-1:-1:-1;;;;;20711:33:0;;;15535:20;;;;;;;;;;;;;:::i;9913:109::-;;;;;;;;;;-1:-1:-1;9913:109:0;;;;;:::i;:::-;;:::i;16325:207::-;;;;;;;;;;-1:-1:-1;16325:207:0;;;;;:::i;:::-;;:::i;17729:439::-;;;;;;;;;;-1:-1:-1;17729:439:0;;;;;:::i;:::-;;:::i;23133:269::-;;;;;;;;;;-1:-1:-1;23133:269:0;;;;;:::i;:::-;;:::i;9794:105::-;;;;;;;;;;-1:-1:-1;9794:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9875:16:0;9848:7;9875:16;;;:7;:16;;;;;;;9794:105;9661:119;;;;;;;;;;-1:-1:-1;9661:119:0;;;;;:::i;:::-;;:::i;9552:95::-;;;;;;;;;;-1:-1:-1;9625:14:0;;9552:95;;15813:68;;;;;;;;;;-1:-1:-1;15813:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;18184:340;18260:4;-1:-1:-1;;;;;;;;;18297:25:0;;;;:101;;-1:-1:-1;;;;;;;;;;18373:25:0;;;18297:101;:177;;;-1:-1:-1;;;;;;;;;;18449:25:0;;;18297:177;18277:197;18184:340;-1:-1:-1;;18184:340:0:o;15508:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16028:289::-;16100:13;16116:11;;;:7;:11;;;;;;-1:-1:-1;;;;;16116:11:0;16148:10;:19;;;:58;;-1:-1:-1;;;;;;16171:23:0;;;;;;:16;:23;;;;;;;;16195:10;16171:35;;;;;;;;;;16148:58;16140:85;;;;-1:-1:-1;;;16140:85:0;;;;;;;:::i;:::-;;;;;;;;;16238:15;;;;:11;:15;;;;;;:25;;-1:-1:-1;;;;;;16238:25:0;-1:-1:-1;;;;;16238:25:0;;;;;;;;;16281:28;;16238:15;;16281:28;;;;;;;16089:228;16028:289;;:::o;21788:420::-;21842:7;21836:21;;;;;:::i;:::-;;;21861:1;21836:26;21832:55;;21871:16;;-1:-1:-1;;;21871:16:0;;;;;;;;;;;21832:55;21902:15;;;;21898:45;;;21926:17;;-1:-1:-1;;;21926:17:0;;;;;;;;;;;21898:45;21976:4;21958:11;;21972:1;21958:15;;;;:::i;:::-;:22;21954:44;;;21989:9;;-1:-1:-1;;;21989:9:0;;;;;;;;;;;21954:44;22025:4;;22013:9;:16;22009:48;;;22038:19;;-1:-1:-1;;;22038:19:0;;;;;;;;;;;22009:48;22068:11;:13;;;:11;:13;;;:::i;:::-;;;;;;22092:34;22102:10;22114:11;;22092:9;:34::i;:::-;22184:15;22149:10;-1:-1:-1;;;;;22142:58:0;-1:-1:-1;;;;;;;;;;;22161:21:0;22170:11;;22161:8;:21::i;:::-;22142:58;;;;;;:::i;:::-;;;;;;;;21788:420::o;21590:190::-;21655:5;;-1:-1:-1;;;;;21655:5:0;21641:10;:19;21637:42;;21669:10;;-1:-1:-1;;;21669:10:0;;;;;;;;;;;21637:42;21695:15;;;;21690:48;;21719:19;;-1:-1:-1;;;21719:19:0;;;;;;;;;;;21690:48;21749:15;:23;;-1:-1:-1;;21749:23:0;;;21590:190::o;10299:566::-;-1:-1:-1;;;;;10375:16:0;;10394:1;10375:16;;;:7;:16;;;;;;10367:71;;;;-1:-1:-1;;;10367:71:0;;;;;;;:::i;:::-;10451:21;10499:15;9625:14;;;9552:95;10499:15;10475:39;;:21;:39;:::i;:::-;10451:63;;10525:15;10543:58;10559:7;10568:13;10583:17;10592:7;10583:8;:17::i;:::-;10543:15;:58::i;:::-;10525:76;;10622:7;10633:1;10622:12;10614:68;;;;-1:-1:-1;;;10614:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10695:18:0;;;;;;:9;:18;;;;;:29;;10717:7;;10695:18;:29;;10717:7;;10695:29;:::i;:::-;;;;;;;;10753:7;10735:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;10773:35:0;;-1:-1:-1;10791:7:0;10800;10773:17;:35::i;:::-;10824:33;10840:7;10849;10824:33;;;;;;;:::i;:::-;;;;;;;;10356:509;;10299:566;:::o;16540:764::-;16676:11;;;;:7;:11;;;;;;-1:-1:-1;;;;;16668:19:0;;;16676:11;;16668:19;16660:42;;;;-1:-1:-1;;;16660:42:0;;10473:2:1;16660:42:0;;;10455:21:1;10512:2;10492:18;;;10485:30;-1:-1:-1;;;10531:18:1;;;10524:40;10581:18;;16660:42:0;10271:334:1;16660:42:0;-1:-1:-1;;;;;16723:16:0;;16715:46;;;;-1:-1:-1;;;16715:46:0;;;;;;;:::i;:::-;16796:10;-1:-1:-1;;;;;16796:18:0;;;;:51;;-1:-1:-1;16832:15:0;;;;:11;:15;;;;;;-1:-1:-1;;;;;16832:15:0;16818:10;:29;16796:51;:89;;;-1:-1:-1;;;;;;16851:22:0;;;;;;:16;:22;;;;;;;;16874:10;16851:34;;;;;;;;;;16796:89;16774:153;;;;-1:-1:-1;;;16774:153:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17132:15:0;;;;;;;:9;:15;;;;;;;;:17;;-1:-1:-1;;17132:17:0;;;17166:13;;;;;;;;;:15;;17132:17;17166:15;;;17205:11;;;:7;:11;;;;;:16;;-1:-1:-1;;;;;;17205:16:0;;;;;;;;17241:11;:15;;;;;;17234:22;;;;;;;;17274;;17213:2;;17166:13;17132:15;-1:-1:-1;;;;;;;;;;;17274:22:0;;16540:764;;;:::o;10036:135::-;-1:-1:-1;;;;;10133:21:0;;;10106:7;10133:21;;;:14;:21;;;;;;;;:30;;;;;;;;;;;;;10036:135::o;17312:409::-;17436:26;17449:4;17455:2;17459;17436:12;:26::i;:::-;-1:-1:-1;;;;;17497:14:0;;;:19;;:172;;-1:-1:-1;17537:66:0;;-1:-1:-1;;;17537:66:0;;;17624:45;-1:-1:-1;;;;;17537:40:0;;;17624:45;;17537:66;;17578:10;;17590:4;;17596:2;;17537:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17537:132:0;;17497:172;17475:238;;;;-1:-1:-1;;;17475:238:0;;;;;;;:::i;:::-;17312:409;;;:::o;21440:142::-;21515:5;;-1:-1:-1;;;;;21515:5:0;21501:10;:19;21497:42;;21529:10;;-1:-1:-1;;;21529:10:0;;;;;;;;;;;21497:42;21550:10;:24;21440:142::o;10879:641::-;-1:-1:-1;;;;;10961:16:0;;10980:1;10961:16;;;:7;:16;;;;;;10953:71;;;;-1:-1:-1;;;10953:71:0;;;;;;;:::i;:::-;11037:21;11094:20;11108:5;11094:13;:20::i;:::-;11061:30;;-1:-1:-1;;;11061:30:0;;-1:-1:-1;;;;;11061:15:0;;;;;:30;;11085:4;;11061:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;11037:77;;11125:15;11143:65;11159:7;11168:13;11183:24;11192:5;11199:7;11183:8;:24::i;11143:65::-;11125:83;;11229:7;11240:1;11229:12;11221:68;;;;-1:-1:-1;;;11221:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11302:21:0;;;;;;;:14;:21;;;;;;;;:30;;;;;;;;;;;:41;;11336:7;;11302:21;:41;;11336:7;;11302:41;:::i;:::-;;;;-1:-1:-1;;;;;;;11354:26:0;;;;;;:19;:26;;;;;:37;;11384:7;;11354:26;:37;;11384:7;;11354:37;:::i;:::-;;;;-1:-1:-1;11404:47:0;;-1:-1:-1;11427:5:0;11434:7;11443;11404:22;:47::i;:::-;11488:5;-1:-1:-1;;;;;11467:45:0;;11495:7;11504;11467:45;;;;;;;:::i;:::-;;;;;;;;10942:578;;10879:641;;:::o;22926:199::-;23014:1;22996:7;22990:21;;;;;:::i;:::-;;;:25;22986:53;;;23024:15;;-1:-1:-1;;;23024:15:0;;;;;;;;;;;22986:53;23068:5;;-1:-1:-1;;;;;23068:5:0;23054:10;:19;23050:42;;23082:10;;-1:-1:-1;;;23082:10:0;;;;;;;;;;;23050:42;23103:7;:14;23113:4;23103:7;:14;:::i;:::-;;22926:199;:::o;22216:702::-;22312:7;22306:21;;;;;:::i;:::-;;;22331:1;22306:26;22302:55;;22341:16;;-1:-1:-1;;;22341:16:0;;;;;;;;;;;22302:55;22389:10;22372:28;;;;:16;:28;;;;;;;;22368:57;;;22409:16;;-1:-1:-1;;;22409:16:0;;;;;;;;;;;22368:57;22458:4;22440:11;;22454:1;22440:15;;;;:::i;:::-;:22;22436:44;;;22471:9;;-1:-1:-1;;;22471:9:0;;;;;;;;;;;22436:44;22507:13;;22495:9;:25;22491:57;;;22529:19;;-1:-1:-1;;;22529:19:0;;;;;;;;;;;22491:57;22586:28;;-1:-1:-1;;;;;;22603:10:0;14682:2:1;14653:15;14649:45;22586:28:0;;;14637:58:1;22561:12:0;;14711::1;;22586:28:0;;;;;;;;;;;;22576:39;;;;;;22561:54;;22633:50;22652:12;;22633:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22666:10:0;;;-1:-1:-1;22678:4:0;;-1:-1:-1;22633:18:0;:50::i;:::-;22628:91;;22705:14;;-1:-1:-1;;;22705:14:0;;;;;;;;;;;22628:91;22749:10;22732:28;;;;:16;:28;;;;;:35;;-1:-1:-1;;22732:35:0;22763:4;22732:35;;;22778:11;:13;;;;;;:::i;:::-;;;;;;22802:34;22812:10;22824:11;;22802:9;:34::i;:::-;22894:15;22859:10;-1:-1:-1;;;;;22852:58:0;-1:-1:-1;;;;;;;;;;;22871:21:0;22880:11;;22871:8;:21::i;:::-;22852:58;;;;;;:::i;:::-;;;;;;;;22291:627;22216:702;;:::o;10185:100::-;10236:7;10263;10271:5;10263:14;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;10263:14:0;;10185:100;-1:-1:-1;;10185:100:0:o;15535:20::-;;;;;;;:::i;9913:109::-;-1:-1:-1;;;;;9996:18:0;9969:7;9996:18;;;:9;:18;;;;;;;9913:109::o;16325:207::-;16428:10;16411:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;16411:38:0;;;;;;;;;;;;:49;;-1:-1:-1;;16411:49:0;;;;;;;;;;16478:46;;819:41:1;;;16411:38:0;;16428:10;16478:46;;792:18:1;16478:46:0;;;;;;;16325:207;;:::o;17729:439::-;17881:26;17894:4;17900:2;17904;17881:12;:26::i;:::-;-1:-1:-1;;;;;17942:14:0;;;:19;;:174;;-1:-1:-1;17982:68:0;;-1:-1:-1;;;17982:68:0;;;18071:45;-1:-1:-1;;;;;17982:40:0;;;18071:45;;17982:68;;18023:10;;18035:4;;18041:2;;18045:4;;17982:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17982:134:0;;17942:174;17920:240;;;;-1:-1:-1;;;17920:240:0;;;;;;;:::i;:::-;17729:439;;;;:::o;23133:269::-;23242:13;23335:7;23344:25;23361:7;23344:16;:25::i;:::-;23318:61;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23273:121;;23133:269;;;:::o;9661:119::-;-1:-1:-1;;;;;9746:26:0;9719:7;9746:26;;;:19;:26;;;;;;;9661:119::o;19334:349::-;19405:13;19411:2;19415;19405:5;:13::i;:::-;-1:-1:-1;;;;;19453:14:0;;;:19;;:178;;-1:-1:-1;19493:72:0;;-1:-1:-1;;;19493:72:0;;;19586:45;-1:-1:-1;;;;;19493:40:0;;;19586:45;;19493:72;;19534:10;;19554:1;;19558:2;;19493:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;19493:138:0;;19453:178;19431:244;;;;-1:-1:-1;;;19431:244:0;;;;;;;:::i;11534:248::-;11744:12;;-1:-1:-1;;;;;11724:16:0;;11680:7;11724:16;;;:7;:16;;;;;;11680:7;;11759:15;;11708:32;;:13;:32;:::i;:::-;11707:49;;;;:::i;:::-;:67;;;;:::i;:::-;11700:74;;11534:248;;;;;;:::o;847:317::-;962:6;937:21;:31;;929:73;;;;-1:-1:-1;;;929:73:0;;17301:2:1;929:73:0;;;17283:21:1;17340:2;17320:18;;;17313:30;17379:31;17359:18;;;17352:59;17428:18;;929:73:0;17099:353:1;929:73:0;1016:12;1034:9;-1:-1:-1;;;;;1034:14:0;1056:6;1034:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1015:52;;;1086:7;1078:78;;;;-1:-1:-1;;;1078:78:0;;17869:2:1;1078:78:0;;;17851:21:1;17908:2;17888:18;;;17881:30;17947:34;17927:18;;;17920:62;-1:-1:-1;;;17998:18:1;;;17991:56;18064:19;;1078:78:0;17667:422:1;5470:211:0;5587:86;5607:5;5637:23;;;5662:2;5666:5;5614:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5614:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;5614:58:0;-1:-1:-1;;;;;;5614:58:0;;;;;;;;;;5587:19;:86::i;12484:190::-;12609:4;12662;12633:25;12646:5;12653:4;12633:12;:25::i;:::-;:33;;12484:190;-1:-1:-1;;;;12484:190:0:o;13579:723::-;13635:13;13856:5;13865:1;13856:10;13852:53;;-1:-1:-1;;13883:10:0;;;;;;;;;;;;-1:-1:-1;;;13883:10:0;;;;;13579:723::o;13852:53::-;13930:5;13915:12;13971:78;13978:9;;13971:78;;14004:8;;;;:::i;:::-;;-1:-1:-1;14027:10:0;;-1:-1:-1;14035:2:0;14027:10;;:::i;:::-;;;13971:78;;;14059:19;14091:6;-1:-1:-1;;;;;14081:17:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14081:17:0;;14059:39;;14109:154;14116:10;;14109:154;;14143:11;14153:1;14143:11;;:::i;:::-;;-1:-1:-1;14212:10:0;14220:2;14212:5;:10;:::i;:::-;14199:24;;:2;:24;:::i;:::-;14186:39;;14169:6;14176;14169:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;14169:56:0;;;;;;;;-1:-1:-1;14240:11:0;14249:2;14240:11;;:::i;:::-;;;14109:154;;;14287:6;13579:723;-1:-1:-1;;;;13579:723:0:o;18540:381::-;-1:-1:-1;;;;;18615:16:0;;18607:46;;;;-1:-1:-1;;;18607:46:0;;;;;;;:::i;:::-;18697:1;18674:11;;;:7;:11;;;;;;-1:-1:-1;;;;;18674:11:0;:25;18666:52;;;;-1:-1:-1;;;18666:52:0;;18413:2:1;18666:52:0;;;18395:21:1;18452:2;18432:18;;;18425:30;-1:-1:-1;;;18471:18:1;;;18464:44;18525:18;;18666:52:0;18211:338:1;18666:52:0;-1:-1:-1;;;;;18812:13:0;;;;;;:9;:13;;;;;;;;:15;;;;;;18851:11;;;:7;:11;;;;;;:16;;-1:-1:-1;;;;;;18851:16:0;;;;;18885:28;18859:2;;18812:13;;-1:-1:-1;;;;;;;;;;;18885:28:0;18812:13;;18885:28;18540:381;;:::o;7411:716::-;7835:23;7861:69;7889:4;7861:69;;;;;;;;;;;;;;;;;7869:5;-1:-1:-1;;;;;7861:27:0;;;:69;;;;;:::i;:::-;7945:17;;7835:95;;-1:-1:-1;7945:21:0;7941:179;;8042:10;8031:30;;;;;;;;;;;;:::i;:::-;8023:85;;;;-1:-1:-1;;;8023:85:0;;19006:2:1;8023:85:0;;;18988:21:1;19045:2;19025:18;;;19018:30;19084:34;19064:18;;;19057:62;-1:-1:-1;;;19135:18:1;;;19128:40;19185:19;;8023:85:0;18804:406:1;12688:701:0;12771:7;12814:4;12771:7;12829:523;12853:5;:12;12849:1;:16;12829:523;;;12887:20;12910:5;12916:1;12910:8;;;;;;;;:::i;:::-;;;;;;;12887:31;;12953:12;12937;:28;12933:408;;13090:44;;;;;;19372:19:1;;;19407:12;;;19400:28;;;19444:12;;13090:44:0;;;;;;;;;;;;13080:55;;;;;;13065:70;;12933:408;;;13280:44;;;;;;19372:19:1;;;19407:12;;;19400:28;;;19444:12;;13280:44:0;;;;;;;;;;;;13270:55;;;;;;13255:70;;12933:408;-1:-1:-1;12867:3:0;;;;:::i;:::-;;;;12829:523;;;-1:-1:-1;13369:12:0;12688:701;-1:-1:-1;;;12688:701:0:o;1367:229::-;1504:12;1536:52;1558:6;1566:4;1572:1;1575:12;1504;769:20;;2171:60;;;;-1:-1:-1;;;2171:60:0;;20076:2:1;2171:60:0;;;20058:21:1;20115:2;20095:18;;;20088:30;20154:31;20134:18;;;20127:59;20203:18;;2171:60:0;19874:353:1;2171:60:0;2245:12;2259:23;2286:6;-1:-1:-1;;;;;2286:11:0;2305:5;2312:4;2286:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2244:73;;;;2335:51;2352:7;2361:10;2373:12;2335:16;:51::i;:::-;2328:58;1884:510;-1:-1:-1;;;;;;;1884:510:0:o;3654:712::-;3804:12;3833:7;3829:530;;;-1:-1:-1;3864:10:0;3857:17;;3829:530;3978:17;;:21;3974:374;;4176:10;4170:17;4237:15;4224:10;4220:2;4216:19;4209:44;3974:374;4319:12;4312:20;;-1:-1:-1;;;4312:20:0;;;;;;;;:::i;14:274:1:-;-1:-1:-1;;;;;206:32:1;;;;188:51;;270:2;255:18;;248:34;176:2;161:18;;14:274::o;293:131::-;-1:-1:-1;;;;;;367:32:1;;357:43;;347:71;;414:1;411;404:12;347:71;293:131;:::o;429:245::-;487:6;540:2;528:9;519:7;515:23;511:32;508:52;;;556:1;553;546:12;508:52;595:9;582:23;614:30;638:5;614:30;:::i;871:258::-;943:1;953:113;967:6;964:1;961:13;953:113;;;1043:11;;;1037:18;1024:11;;;1017:39;989:2;982:10;953:113;;;1084:6;1081:1;1078:13;1075:48;;;-1:-1:-1;;1119:1:1;1101:16;;1094:27;871:258::o;1134:::-;1176:3;1214:5;1208:12;1241:6;1236:3;1229:19;1257:63;1313:6;1306:4;1301:3;1297:14;1290:4;1283:5;1279:16;1257:63;:::i;:::-;1374:2;1353:15;-1:-1:-1;;1349:29:1;1340:39;;;;1381:4;1336:50;;1134:258;-1:-1:-1;;1134:258:1:o;1397:220::-;1546:2;1535:9;1528:21;1509:4;1566:45;1607:2;1596:9;1592:18;1584:6;1566:45;:::i;1622:180::-;1681:6;1734:2;1722:9;1713:7;1709:23;1705:32;1702:52;;;1750:1;1747;1740:12;1702:52;-1:-1:-1;1773:23:1;;1622:180;-1:-1:-1;1622:180:1:o;1807:203::-;-1:-1:-1;;;;;1971:32:1;;;;1953:51;;1941:2;1926:18;;1807:203::o;2015:131::-;-1:-1:-1;;;;;2090:31:1;;2080:42;;2070:70;;2136:1;2133;2126:12;2151:315;2219:6;2227;2280:2;2268:9;2259:7;2255:23;2251:32;2248:52;;;2296:1;2293;2286:12;2248:52;2335:9;2322:23;2354:31;2379:5;2354:31;:::i;:::-;2404:5;2456:2;2441:18;;;;2428:32;;-1:-1:-1;;;2151:315:1:o;2653:255::-;2720:6;2773:2;2761:9;2752:7;2748:23;2744:32;2741:52;;;2789:1;2786;2779:12;2741:52;2828:9;2815:23;2847:31;2872:5;2847:31;:::i;2913:456::-;2990:6;2998;3006;3059:2;3047:9;3038:7;3034:23;3030:32;3027:52;;;3075:1;3072;3065:12;3027:52;3114:9;3101:23;3133:31;3158:5;3133:31;:::i;:::-;3183:5;-1:-1:-1;3240:2:1;3225:18;;3212:32;3253:33;3212:32;3253:33;:::i;:::-;2913:456;;3305:7;;-1:-1:-1;;;3359:2:1;3344:18;;;;3331:32;;2913:456::o;3374:402::-;3456:6;3464;3517:2;3505:9;3496:7;3492:23;3488:32;3485:52;;;3533:1;3530;3523:12;3485:52;3572:9;3559:23;3591:31;3616:5;3591:31;:::i;:::-;3641:5;-1:-1:-1;3698:2:1;3683:18;;3670:32;3711:33;3670:32;3711:33;:::i;:::-;3763:7;3753:17;;;3374:402;;;;;:::o;3966:127::-;4027:10;4022:3;4018:20;4015:1;4008:31;4058:4;4055:1;4048:15;4082:4;4079:1;4072:15;4098:632;4163:5;-1:-1:-1;;;;;4223:14:1;;;4220:40;;;4240:18;;:::i;:::-;4315:2;4309:9;4283:2;4369:15;;-1:-1:-1;;4365:24:1;;;4391:2;4361:33;4357:42;4345:55;;;4415:18;;;4435:22;;;4412:46;4409:72;;;4461:18;;:::i;:::-;4501:10;4497:2;4490:22;4530:6;4521:15;;4560:6;4552;4545:22;4600:3;4591:6;4586:3;4582:16;4579:25;4576:45;;;4617:1;4614;4607:12;4576:45;4667:6;4662:3;4655:4;4647:6;4643:17;4630:44;4722:1;4715:4;4706:6;4698;4694:19;4690:30;4683:41;;;;4098:632;;;;;:::o;4735:451::-;4804:6;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;4900:23;;-1:-1:-1;;;;;4935:30:1;;4932:50;;;4978:1;4975;4968:12;4932:50;5001:22;;5054:4;5046:13;;5042:27;-1:-1:-1;5032:55:1;;5083:1;5080;5073:12;5032:55;5106:74;5172:7;5167:2;5154:16;5149:2;5145;5141:11;5106:74;:::i;5443:615::-;5529:6;5537;5590:2;5578:9;5569:7;5565:23;5561:32;5558:52;;;5606:1;5603;5596:12;5558:52;5633:23;;-1:-1:-1;;;;;5705:14:1;;;5702:34;;;5732:1;5729;5722:12;5702:34;5770:6;5759:9;5755:22;5745:32;;5815:7;5808:4;5804:2;5800:13;5796:27;5786:55;;5837:1;5834;5827:12;5786:55;5877:2;5864:16;5903:2;5895:6;5892:14;5889:34;;;5919:1;5916;5909:12;5889:34;5972:7;5967:2;5957:6;5954:1;5950:14;5946:2;5942:23;5938:32;5935:45;5932:65;;;5993:1;5990;5983:12;5932:65;6024:2;6016:11;;;;;6046:6;;-1:-1:-1;5443:615:1;;-1:-1:-1;;;;5443:615:1:o;6063:118::-;6149:5;6142:13;6135:21;6128:5;6125:32;6115:60;;6171:1;6168;6161:12;6186:382;6251:6;6259;6312:2;6300:9;6291:7;6287:23;6283:32;6280:52;;;6328:1;6325;6318:12;6280:52;6367:9;6354:23;6386:31;6411:5;6386:31;:::i;:::-;6436:5;-1:-1:-1;6493:2:1;6478:18;;6465:32;6506:30;6465:32;6506:30;:::i;6573:795::-;6668:6;6676;6684;6692;6745:3;6733:9;6724:7;6720:23;6716:33;6713:53;;;6762:1;6759;6752:12;6713:53;6801:9;6788:23;6820:31;6845:5;6820:31;:::i;:::-;6870:5;-1:-1:-1;6927:2:1;6912:18;;6899:32;6940:33;6899:32;6940:33;:::i;:::-;6992:7;-1:-1:-1;7046:2:1;7031:18;;7018:32;;-1:-1:-1;7101:2:1;7086:18;;7073:32;-1:-1:-1;;;;;7117:30:1;;7114:50;;;7160:1;7157;7150:12;7114:50;7183:22;;7236:4;7228:13;;7224:27;-1:-1:-1;7214:55:1;;7265:1;7262;7255:12;7214:55;7288:74;7354:7;7349:2;7336:16;7331:2;7327;7323:11;7288:74;:::i;:::-;7278:84;;;6573:795;;;;;;;:::o;8032:380::-;8111:1;8107:12;;;;8154;;;8175:61;;8229:4;8221:6;8217:17;8207:27;;8175:61;8282:2;8274:6;8271:14;8251:18;8248:38;8245:161;;8328:10;8323:3;8319:20;8316:1;8309:31;8363:4;8360:1;8353:15;8391:4;8388:1;8381:15;8245:161;;8032:380;;;:::o;8417:338::-;8619:2;8601:21;;;8658:2;8638:18;;;8631:30;-1:-1:-1;;;8692:2:1;8677:18;;8670:44;8746:2;8731:18;;8417:338::o;8760:127::-;8821:10;8816:3;8812:20;8809:1;8802:31;8852:4;8849:1;8842:15;8876:4;8873:1;8866:15;8892:128;8932:3;8963:1;8959:6;8956:1;8953:13;8950:39;;;8969:18;;:::i;:::-;-1:-1:-1;9005:9:1;;8892:128::o;9025:135::-;9064:3;9085:17;;;9082:43;;9105:18;;:::i;:::-;-1:-1:-1;9152:1:1;9141:13;;9025:135::o;9165:402::-;9367:2;9349:21;;;9406:2;9386:18;;;9379:30;9445:34;9440:2;9425:18;;9418:62;-1:-1:-1;;;9511:2:1;9496:18;;9489:36;9557:3;9542:19;;9165:402::o;9572:407::-;9774:2;9756:21;;;9813:2;9793:18;;;9786:30;9852:34;9847:2;9832:18;;9825:62;-1:-1:-1;;;9918:2:1;9903:18;;9896:41;9969:3;9954:19;;9572:407::o;10610:341::-;10812:2;10794:21;;;10851:2;10831:18;;;10824:30;-1:-1:-1;;;10885:2:1;10870:18;;10863:47;10942:2;10927:18;;10610:341::o;10956:555::-;-1:-1:-1;;;;;11279:15:1;;;11261:34;;11331:15;;;;11326:2;11311:18;;11304:43;11378:2;11363:18;;11356:34;;;;11426:3;11421:2;11406:18;;11399:31;;;11204:4;11446:19;;;11439:30;11241:3;11486:19;;10956:555::o;11516:249::-;11585:6;11638:2;11626:9;11617:7;11613:23;11609:32;11606:52;;;11654:1;11651;11644:12;11606:52;11686:9;11680:16;11705:30;11729:5;11705:30;:::i;11770:340::-;11972:2;11954:21;;;12011:2;11991:18;;;11984:30;-1:-1:-1;;;12045:2:1;12030:18;;12023:46;12101:2;12086:18;;11770:340::o;12115:184::-;12185:6;12238:2;12226:9;12217:7;12213:23;12209:32;12206:52;;;12254:1;12251;12244:12;12206:52;-1:-1:-1;12277:16:1;;12115:184;-1:-1:-1;12115:184:1:o;12430:545::-;12532:2;12527:3;12524:11;12521:448;;;12568:1;12593:5;12589:2;12582:17;12638:4;12634:2;12624:19;12708:2;12696:10;12692:19;12689:1;12685:27;12679:4;12675:38;12744:4;12732:10;12729:20;12726:47;;;-1:-1:-1;12767:4:1;12726:47;12822:2;12817:3;12813:12;12810:1;12806:20;12800:4;12796:31;12786:41;;12877:82;12895:2;12888:5;12885:13;12877:82;;;12940:17;;;12921:1;12910:13;12877:82;;;12881:3;;;12430:545;;;:::o;13151:1352::-;13271:10;;-1:-1:-1;;;;;13293:30:1;;13290:56;;;13326:18;;:::i;:::-;13355:97;13445:6;13405:38;13437:4;13431:11;13405:38;:::i;:::-;13399:4;13355:97;:::i;:::-;13507:4;;13571:2;13560:14;;13588:1;13583:663;;;;14290:1;14307:6;14304:89;;;-1:-1:-1;14359:19:1;;;14353:26;14304:89;-1:-1:-1;;13108:1:1;13104:11;;;13100:24;13096:29;13086:40;13132:1;13128:11;;;13083:57;14406:81;;13553:944;;13583:663;12377:1;12370:14;;;12414:4;12401:18;;-1:-1:-1;;13619:20:1;;;13737:236;13751:7;13748:1;13745:14;13737:236;;;13840:19;;;13834:26;13819:42;;13932:27;;;;13900:1;13888:14;;;;13767:19;;13737:236;;;13741:3;14001:6;13992:7;13989:19;13986:201;;;14062:19;;;14056:26;-1:-1:-1;;14145:1:1;14141:14;;;14157:3;14137:24;14133:37;14129:42;14114:58;14099:74;;13986:201;-1:-1:-1;;;;;14233:1:1;14217:14;;;14213:22;14200:36;;-1:-1:-1;13151:1352:1:o;14734:127::-;14795:10;14790:3;14786:20;14783:1;14776:31;14826:4;14823:1;14816:15;14850:4;14847:1;14840:15;14866:489;-1:-1:-1;;;;;15135:15:1;;;15117:34;;15187:15;;15182:2;15167:18;;15160:43;15234:2;15219:18;;15212:34;;;15282:3;15277:2;15262:18;;15255:31;;;15060:4;;15303:46;;15329:19;;15321:6;15303:46;:::i;:::-;15295:54;14866:489;-1:-1:-1;;;;;;14866:489:1:o;15360:1174::-;15637:3;15666:1;15699:6;15693:13;15729:36;15755:9;15729:36;:::i;:::-;15784:1;15801:18;;;15828:133;;;;15975:1;15970:356;;;;15794:532;;15828:133;-1:-1:-1;;15861:24:1;;15849:37;;15934:14;;15927:22;15915:35;;15906:45;;;-1:-1:-1;15828:133:1;;15970:356;16001:6;15998:1;15991:17;16031:4;16076:2;16073:1;16063:16;16101:1;16115:165;16129:6;16126:1;16123:13;16115:165;;;16207:14;;16194:11;;;16187:35;16250:16;;;;16144:10;;16115:165;;;16119:3;;;16309:6;16304:3;16300:16;16293:23;;15794:532;;;;;16357:6;16351:13;16373:55;16419:8;16414:3;16407:4;16399:6;16395:17;16373:55;:::i;:::-;-1:-1:-1;;;16450:18:1;;16477:22;;;16526:1;16515:13;;15360:1174;-1:-1:-1;;;;15360:1174:1:o;16539:168::-;16579:7;16645:1;16641;16637:6;16633:14;16630:1;16627:21;16622:1;16615:9;16608:17;16604:45;16601:71;;;16652:18;;:::i;:::-;-1:-1:-1;16692:9:1;;16539:168::o;16712:127::-;16773:10;16768:3;16764:20;16761:1;16754:31;16804:4;16801:1;16794:15;16828:4;16825:1;16818:15;16844:120;16884:1;16910;16900:35;;16915:18;;:::i;:::-;-1:-1:-1;16949:9:1;;16844:120::o;16969:125::-;17009:4;17037:1;17034;17031:8;17028:34;;;17042:18;;:::i;:::-;-1:-1:-1;17079:9:1;;16969:125::o;18094:112::-;18126:1;18152;18142:35;;18157:18;;:::i;:::-;-1:-1:-1;18191:9:1;;18094:112::o;18554:245::-;18621:6;18674:2;18662:9;18653:7;18649:23;18645:32;18642:52;;;18690:1;18687;18680:12;18642:52;18722:9;18716:16;18741:28;18763:5;18741:28;:::i;20232:274::-;20361:3;20399:6;20393:13;20415:53;20461:6;20456:3;20449:4;20441:6;20437:17;20415:53;:::i;:::-;20484:16;;;;;20232:274;-1:-1:-1;;20232:274:1:o

Swarm Source

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