Contract 0x434c8845261d5cf942d62fcd6503569ce05798b3

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x87bf847abc22b41a310efdef38877b3684480887d4fd579ca6505288cbc907eaSet Approval For...135096042024-04-16 14:50:4833 days 20 hrs ago0x2423c6f60bebe40ed0e9268cd843a38d12a61906 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.147192350
0x433d7533969702e86b36fc4a6702602a2a43f4244752efff9a58ec02b1cfbf4dSet Approval For...134202672024-04-10 18:05:4439 days 17 hrs ago0x5aeb0ee4b2a68848444176bd3e522810a224e35a IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.233607950
0xafd36ce078ea3ebf070d76c5d899b7461b35d442fa6d8c80507d2e65c9c47e9bSet Approval For...132283292024-03-29 4:46:4852 days 6 hrs agoCronos ID Name sendmesome.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.147192350
0xf80c9f6242f28b41d32b1857be21fd4508e1b9eeed50a1d6dbafd1dfd5337079Approve131064752024-03-21 5:42:3760 days 5 hrs ago0x6bfc1eee6a78c02d41526645319e051abb02ad2f IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.883750
0xe4af8dd0ba06235dc667054545c4c99cfb7224fb8a1b37024446d4c8b4fd8a81Set Approval For...129959832024-03-14 1:05:0967 days 10 hrs ago0x5aeb0ee4b2a68848444176bd3e522810a224e35a IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.46721590
0xc3d35ca2a177059c1c4eaf66945961a9c94d1faf9b8cc84eafd09ac3dbbf0473Set Approval For...129461162024-03-10 19:57:2670 days 15 hrs agoCronos ID Name 777px.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.46712199423 10,097.97
0xcce493cd78aca2174acc8fc227af8ea71be107278432b4ecc96ad6616d7e5cf2Set Approval For...128988092024-03-07 18:49:5173 days 16 hrs ago0xaa9fa5d55a44b2cbf9ccbdc7bd8c4716f4e30b9c IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.46721590
0x5493582c343838c6fe98e50e1809c8e492509f1fcfeebc577785ba9a3a2a0b62Set Approval For...126999602024-02-23 23:49:1986 days 11 hrs ago0x1ace1b6e0e6389505006b2780b73ce15b1f928e7 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.46721590
0xa12ad1ea7487c5ef512e9b69f31a803af0edeabad76e1c6b0b497983a03030d1Set Approval For...120293702024-01-11 8:07:38130 days 3 hrs ago0x31e7a4a7d5deab0396c625bb01aceb603dd9e797 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.4626593885 10,001.5
0xff607c9071b2bd57f968796d84e9b8af3441f1e6a23f12b3bb253ca8db2fa885Set Approval For...117257702023-12-22 14:42:44149 days 20 hrs ago0x2423c6f60bebe40ed0e9268cd843a38d12a61906 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.46721590
0x6e03a91cfee23ca33b436c113cc103214d7c8270314c35517abfd99c24c3bbedSet Approval For...116462752023-12-17 10:34:33155 days 1 hr ago0x2423c6f60bebe40ed0e9268cd843a38d12a61906 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.24590470
0x03a0162d589fedd33e7b9cfac4526eda48837fa4330327225088921489661dfdSet Approval For...114184512023-12-02 14:10:43169 days 21 hrs ago0xa60285cca160b1cc3dc138d72da7f103b9a23eff IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.213274211443 4,610.43713534
0x4938ccf81dfb1dca9318c3ffef3ea92c8b68ab73ed9dd80a6ee9da7cbfb0e869Set Approval For...112761952023-11-23 8:31:28179 days 3 hrs ago0x617a5f6b4fd3111976106933ee56bc008532282f IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2134977132320
0x02a5fa9d67cb98c132db00449e9fdaf836452948ccfb9faf0637bc7df5e2be2cSet Approval For...112103352023-11-19 1:53:48183 days 9 hrs ago0x634a5dc4cda63ea8d0699d9387cdcfffc6408b84 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2136329745660
0x57daf12d1638ef7f790b68f08e858a5c439f27e77aff92ae2e45cf3cc3c7a1e3Set Approval For...112066222023-11-18 20:06:59183 days 15 hrs agoCronos ID Name eyezac.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2136406277170
0xb4dd51f028e1703a863196851e248349bb3ca792858c761774f93b7c7f786a97Set Approval For...108879652023-10-29 2:37:00204 days 9 hrs ago0xaa9fa5d55a44b2cbf9ccbdc7bd8c4716f4e30b9c IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2142927028250
0x1665c9c281a3e88f14752f40319c8403b21b3b305bdc8fb58ed53d5639e76626Set Approval For...105911562023-10-09 17:10:02223 days 18 hrs ago0x6dd40ea91818bb943e045ba4b0881296793b1ed1 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.214980349375 4,647.319427052
0x8375b9a1a79219691c02de9189c8a4d54627650fabfc374f99b55908477adf29Set Approval For...105175032023-10-04 21:49:16228 days 13 hrs agoCronos ID Name topshot.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2150655503620
0xc39b4572f19421dfad46ff31e1ad0648f45f32b0e53d384490faa8ee298c69dbSet Approval For...104876072023-10-02 23:01:05230 days 12 hrs ago0x9ae293893f19e12e1a56faa179680e0e652ec63a IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.21519775354 4,652.019143089
0x926e46534858e2f976d160046c1907a777fb5debc066a15fd59190877ce1f53cSet Approval For...102866712023-09-19 20:21:29243 days 15 hrs ago0xf3db32e09569fe5de26db2bba0504fa9eb05a7e3 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2155507831440
0x75c421d76915773ac30b67d074e356811a316a10abbfa5ec35316b27c020a34aSet Approval For...102135612023-09-15 1:53:07248 days 9 hrs agoCronos ID Name ryskllc.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.219233955552 4,739.271396963
0x71f00d79734b6dfbb09a70c2c116402d4380ef4cf7a00d8d741cd947130bd4b5Set Approval For...100892182023-09-06 23:19:11256 days 12 hrs ago0xaa9fa5d55a44b2cbf9ccbdc7bd8c4716f4e30b9c IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2159660198320
0x7ca76619db5233416a50985889fd93f9b9e43e475eb3a470dfc6e3211fd8a470Set Approval For...100560292023-09-04 19:23:02258 days 16 hrs agoCronos ID Name russianmobb.cro IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.216105309922 4,671.638166024
0x5607a6cc25926c4350a807892a723bbcde5d4bcbb1062534eab17eb8c06e5365Set Approval For...100275312023-09-02 22:46:51260 days 12 hrs ago0x46eade6fc97775710dc17208e615cc9c344f0a31 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2160960592380
0x50e9b763e583ab635822d6f4d7a8d865dd7d7b520bfca41b5a37603b0d01f7d6Set Approval For...99881072023-08-31 9:02:06263 days 2 hrs ago0x8db4ba975dac08af02c63d49ee98b88a9bd6c207 IN  0x434c8845261d5cf942d62fcd6503569ce05798b30 CRO0.2161788731730
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0xde0f66006c8febdd606e1ed411d3b05b952018d8bc18d3fe460dcb78198511ec51652852022-10-19 18:18:14578 days 17 hrs ago 0x434c8845261d5cf942d62fcd6503569ce05798b30xedeb9665e30fe8ee368c043d650222f07d404bfd5,280 CRO
0x3f2c194c88ab20439020a2a6fc72a2c6f158036080adfbcca52c4b736387c03251588062022-10-19 8:01:22579 days 3 hrs ago 0x434c8845261d5cf942d62fcd6503569ce05798b30xedeb9665e30fe8ee368c043d650222f07d404bfd15,720 CRO
0x8efd92fd37ea0d102be4be55db725252a7799b25088934eaf613fb1c5296cb8051443502022-10-18 9:05:50580 days 2 hrs ago 0x434c8845261d5cf942d62fcd6503569ce05798b30xedeb9665e30fe8ee368c043d650222f07d404bfd17,640 CRO
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Jungle_Mutant_Ape

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-10-17
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        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) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library Counters {
    struct Counter {
        uint256 _value;
    }
    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }
    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }
    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counters: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }
}

library Strings {
    bytes16 private constant alphabet = '0123456789abcdef';
    function toString(uint256 value) internal pure returns (string memory) {
        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] = alphabet[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

abstract contract Pausable is Context {
    event Paused(address account);
    event Unpaused(address account);
    bool private _paused;
    constructor() {
        _paused = false;
    }
    function paused() public view virtual returns (bool) {
        return _paused;
    }
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IST20 {
    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);
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

interface IERC721 is IERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
    function transferFrom(address from, address to, uint256 tokenId) external;
    function approve(address to, uint256 tokenId) external;
    function getApproved(uint256 tokenId) external view returns (address operator);
    function setApprovalForAll(address operator, bool _approved) external;
    function isApprovedForAll(address owner, address operator) external view returns (bool);
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
}

interface IERC721Receiver {
    function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);
}

interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;
    string private _name;
    string private _symbol;
    mapping(uint256 => address) private _owners;
    mapping(address => uint256) private _balances;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId);
    }
    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }
    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : '';
    }
    function _baseURI() internal view virtual returns (string memory) {
        return '';
    }
    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");
        require(_msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all");
        _approve(to, tokenId);
    }
    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");
        return _tokenApprovals[tokenId];
    }
    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(operator != _msgSender(), "ERC721: approve to caller");
        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }
    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[owner][operator];
    }
    function transferFrom(address from, address to, uint256 tokenId) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _transfer(from, to, tokenId);
    }
    function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {
        safeTransferFrom(from, to, tokenId, '');
    }
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }
    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }
    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }
    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }
    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, '');
    }
    function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {
        _mint(to, tokenId);
        require(_checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }
    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");
        _beforeTokenTransfer(address(0), to, tokenId);
        _balances[to] += 1;
        _owners[tokenId] = to;
        emit Transfer(address(0), to, tokenId);
    }
    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);
        _beforeTokenTransfer(owner, address(0), tokenId);
        _approve(address(0), tokenId);
        _balances[owner] -= 1;
        delete _owners[tokenId];
        emit Transfer(owner, address(0), tokenId);
    }
    function _transfer(address from, address to, uint256 tokenId) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");
        _beforeTokenTransfer(from, to, tokenId);
        _approve(address(0), tokenId);
        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;
        emit Transfer(from, to, tokenId);
    }
    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }
    function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual {}
}

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);
    function tokenByIndex(uint256 index) external view returns (uint256);
}

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;
    mapping(uint256 => uint256) private _ownedTokensIndex;
    uint256[] private _allTokens;
    mapping(uint256 => uint256) private _allTokensIndex;
    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {
        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);
    }
    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
        return _ownedTokens[owner][index];
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }
    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);
        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }
    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }
    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }
    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];
            _ownedTokens[from][tokenIndex] = lastTokenId;
            _ownedTokensIndex[lastTokenId] = tokenIndex;
        }
        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }
    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];
        uint256 lastTokenId = _allTokens[lastTokenIndex];
        _allTokens[tokenIndex] = lastTokenId;
        _allTokensIndex[lastTokenId] = tokenIndex;
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

abstract contract ERC721URIStorage is ERC721 {
    using Strings for uint256;
    mapping(uint256 => string) private _tokenURIs;
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token");
        string memory _tokenURI = _tokenURIs[tokenId];
        string memory base = _baseURI();
        if (bytes(base).length == 0) {
            return _tokenURI;
        }
        if (bytes(_tokenURI).length > 0) {
            return string(abi.encodePacked(base, _tokenURI));
        }
        return super.tokenURI(tokenId);
    }
    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
        require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token");
        _tokenURIs[tokenId] = _tokenURI;
    }
    function _burn(uint256 tokenId) internal virtual override {
        super._burn(tokenId);
        if (bytes(_tokenURIs[tokenId]).length != 0) {
            delete _tokenURIs[tokenId];
        }
    }
}

abstract contract ERC721Burnable is Context, ERC721 {
    function burn(uint256 tokenId) public virtual {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved");
        _burn(tokenId);
    }
}

contract Jungle_Mutant_Ape is Ownable, Pausable, ERC721, ERC721Enumerable, ERC721URIStorage, ERC721Burnable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIdCounter;
    mapping(address => bool) public whitelistedAddress;
    uint256 public mintPrice = 120000000000000000000;
    uint256 public maxMintAmount = 5;
    uint256 public maxNFT = 500;
    string public baseURI;
    string private _name;
    string private _symbol;
    bool public mintStarted = false;

    constructor(string memory _name, string memory _symbol)
    ERC721 (_name, _symbol) public {
    }

    receive() external payable {}
    function _baseURI() internal view override returns (string memory) {
        return baseURI;
    }
    function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) {
        return string(abi.encodePacked(super.tokenURI(tokenId), ".json"));
    }
    function supportsInterface(bytes4 interfaceId) public view override(ERC721, ERC721Enumerable) returns (bool) {
        return super.supportsInterface(interfaceId);
    }
    function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
        super._burn(tokenId);
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal override(ERC721, ERC721Enumerable) whenNotPaused {
        super._beforeTokenTransfer(from, to, tokenId);
    }
    function pause() public onlyOwner {
        _pause();
    }
    function unpause() public onlyOwner {
        _unpause();
    }
    function toggleMint() public onlyOwner {
        mintStarted = !mintStarted;
    }
    function setMintPrice(uint256 _mintPrice) public onlyOwner {
        mintPrice = _mintPrice;
    }
    function setMaxMintAmount(uint256 _maxMintAmount) public onlyOwner {
        maxMintAmount = _maxMintAmount;
    }
    function setBaseURI(string memory _baseURI) public onlyOwner {
        baseURI = _baseURI;
    }
    function internalMint(address to) internal {
        _safeMint(to, _tokenIdCounter.current());
        _tokenIdCounter.increment();
    }
    function ownerMintNFT(uint256 amount) public onlyOwner {
        uint256 supply = totalSupply();
        require(supply + amount <= maxNFT, "NFT: Max NFT limit exceeded");
        for (uint256 i = 0; i < amount; i++) {
            internalMint(msg.sender);
        }
    }
    function mintNFT(uint256 amount) public payable {
        require(mintStarted == true, "NFT: Mint not started yet!");
        uint256 supply = totalSupply();
        require(amount > 0, "NFT: Need to mint at least 1 NFT");
        require(amount <= maxMintAmount, "NFT: Max mint amount per session exceeded");
        require(supply + amount <= maxNFT, "NFT: Max NFT limit exceeded");
        require(msg.value >= mintPrice * amount, "NFT: Insufficient mint fees!");
            for (uint256 i = 0; i < amount; i++) {
                internalMint(msg.sender);
            }
    }

    // ------------------------------------------------------------------------
    // Function to Withdraw Coins sent by mistake to the Token Contract Address.
    // Only the Contract owner can withdraw the Coins.
    // ------------------------------------------------------------------------
    function withdrawCoins() public onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    // ------------------------------------------------------------------------
    // Function to Withdraw Tokens sent by mistake to the Token Contract Address.
    // Only the Contract owner can withdraw the Tokens.
    // ------------------------------------------------------------------------
    function withdrawTokens(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner {
        IST20(tokenAddress).transfer(owner(), tokenAmount);
    }
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintNFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerMintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":"tokenId","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":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMintAmount","type":"uint256"}],"name":"setMaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawCoins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268068155a43676e00000600e556005600f556101f46010556014805460ff191690553480156200003357600080fd5b5060405162002c9838038062002c98833981016040819052620000569162000251565b600080546001600160a01b03191633908117825560405184928492918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000bd906001906020850190620000de565b508051620000d3906002906020840190620000de565b5050505050620002f7565b828054620000ec90620002bb565b90600052602060002090601f0160209004810192826200011057600085556200015b565b82601f106200012b57805160ff19168380011785556200015b565b828001600101855582156200015b579182015b828111156200015b5782518255916020019190600101906200013e565b50620001699291506200016d565b5090565b5b808211156200016957600081556001016200016e565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ac57600080fd5b81516001600160401b0380821115620001c957620001c962000184565b604051601f8301601f19908116603f01168101908282118183101715620001f457620001f462000184565b816040528381526020925086838588010111156200021157600080fd5b600091505b8382101562000235578582018301518183018401529082019062000216565b83821115620002475760008385830101525b9695505050505050565b600080604083850312156200026557600080fd5b82516001600160401b03808211156200027d57600080fd5b6200028b868387016200019a565b93506020850151915080821115620002a257600080fd5b50620002b1858286016200019a565b9150509250929050565b600181811c90821680620002d057607f821691505b602082108103620002f157634e487b7160e01b600052602260045260246000fd5b50919050565b61299180620003076000396000f3fe60806040526004361061021e5760003560e01c80636c0360eb11610123578063a9722cf3116100ab578063e456b01c1161006f578063e456b01c146105fe578063e985e9c514610614578063f2fde38b1461065d578063f4a0a5281461067d578063ffbb62a31461069d57600080fd5b8063a9722cf31461055f578063b88d4fde14610579578063c30796ab14610599578063c87b56dd146105c9578063d3dd5fe0146105e957600080fd5b80638456cb59116100f25780638456cb59146104e45780638da5cb5b146104f9578063926427441461051757806395d89b411461052a578063a22cb4651461053f57600080fd5b80636c0360eb1461047a57806370a082311461048f578063715018a6146104af5780637206e3e5146104c457600080fd5b80632f745c59116101a65780634f6ccce7116101755780634f6ccce7146103e557806355f804b3146104055780635c975abb146104255780636352211e146104445780636817c76c1461046457600080fd5b80632f745c59146103705780633f4ba83a1461039057806342842e0e146103a557806342966c68146103c557600080fd5b8063088a4ed0116101ed578063088a4ed0146102db578063095ea7b3146102fb57806318160ddd1461031b578063239c70ae1461033a57806323b872dd1461035057600080fd5b806301ffc9a71461022a57806306b091f91461025f57806306fdde0314610281578063081812fc146102a357600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a61024536600461238c565b6106b2565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061027f61027a3660046123c5565b6106c3565b005b34801561028d57600080fd5b5061029661078d565b6040516102569190612447565b3480156102af57600080fd5b506102c36102be36600461245a565b61081f565b6040516001600160a01b039091168152602001610256565b3480156102e757600080fd5b5061027f6102f636600461245a565b6108b4565b34801561030757600080fd5b5061027f6103163660046123c5565b6108e3565b34801561032757600080fd5b506009545b604051908152602001610256565b34801561034657600080fd5b5061032c600f5481565b34801561035c57600080fd5b5061027f61036b366004612473565b6109f3565b34801561037c57600080fd5b5061032c61038b3660046123c5565b610a25565b34801561039c57600080fd5b5061027f610abb565b3480156103b157600080fd5b5061027f6103c0366004612473565b610aef565b3480156103d157600080fd5b5061027f6103e036600461245a565b610b0a565b3480156103f157600080fd5b5061032c61040036600461245a565b610b84565b34801561041157600080fd5b5061027f61042036600461253b565b610c17565b34801561043157600080fd5b50600054600160a01b900460ff1661024a565b34801561045057600080fd5b506102c361045f36600461245a565b610c58565b34801561047057600080fd5b5061032c600e5481565b34801561048657600080fd5b50610296610ccf565b34801561049b57600080fd5b5061032c6104aa366004612584565b610d5d565b3480156104bb57600080fd5b5061027f610de4565b3480156104d057600080fd5b5061027f6104df36600461245a565b610e58565b3480156104f057600080fd5b5061027f610f11565b34801561050557600080fd5b506000546001600160a01b03166102c3565b61027f61052536600461245a565b610f43565b34801561053657600080fd5b50610296611139565b34801561054b57600080fd5b5061027f61055a3660046125ad565b611148565b34801561056b57600080fd5b5060145461024a9060ff1681565b34801561058557600080fd5b5061027f6105943660046125e4565b61120c565b3480156105a557600080fd5b5061024a6105b4366004612584565b600d6020526000908152604090205460ff1681565b3480156105d557600080fd5b506102966105e436600461245a565b611244565b3480156105f557600080fd5b5061027f611275565b34801561060a57600080fd5b5061032c60105481565b34801561062057600080fd5b5061024a61062f366004612660565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561066957600080fd5b5061027f610678366004612584565b6112b3565b34801561068957600080fd5b5061027f61069836600461245a565b61139d565b3480156106a957600080fd5b5061027f6113cc565b60006106bd82611422565b92915050565b6000546001600160a01b031633146106f65760405162461bcd60e51b81526004016106ed90612693565b60405180910390fd5b816001600160a01b031663a9059cbb6107176000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610764573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078891906126c8565b505050565b60606001805461079c906126e5565b80601f01602080910402602001604051908101604052809291908181526020018280546107c8906126e5565b80156108155780601f106107ea57610100808354040283529160200191610815565b820191906000526020600020905b8154815290600101906020018083116107f857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b03166108985760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106ed565b506000908152600560205260409020546001600160a01b031690565b6000546001600160a01b031633146108de5760405162461bcd60e51b81526004016106ed90612693565b600f55565b60006108ee82610c58565b9050806001600160a01b0316836001600160a01b03160361095b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106ed565b336001600160a01b03821614806109775750610977813361062f565b6109e95760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016106ed565b6107888383611447565b6109fe335b826114b5565b610a1a5760405162461bcd60e51b81526004016106ed9061271f565b6107888383836115ac565b6000610a3083610d5d565b8210610a925760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016106ed565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b6000546001600160a01b03163314610ae55760405162461bcd60e51b81526004016106ed90612693565b610aed611757565b565b6107888383836040518060200160405280600081525061120c565b610b13336109f8565b610b785760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016106ed565b610b81816117f4565b50565b6000610b8f60095490565b8210610bf25760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016106ed565b60098281548110610c0557610c05612770565b90600052602060002001549050919050565b6000546001600160a01b03163314610c415760405162461bcd60e51b81526004016106ed90612693565b8051610c549060119060208401906122a7565b5050565b6000818152600360205260408120546001600160a01b0316806106bd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016106ed565b60118054610cdc906126e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d08906126e5565b8015610d555780601f10610d2a57610100808354040283529160200191610d55565b820191906000526020600020905b815481529060010190602001808311610d3857829003601f168201915b505050505081565b60006001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016106ed565b506001600160a01b031660009081526004602052604090205490565b6000546001600160a01b03163314610e0e5760405162461bcd60e51b81526004016106ed90612693565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016106ed90612693565b6000610e8d60095490565b601054909150610e9d838361279c565b1115610eeb5760405162461bcd60e51b815260206004820152601b60248201527f4e46543a204d6178204e4654206c696d6974206578636565646564000000000060448201526064016106ed565b60005b8281101561078857610eff336117fd565b80610f09816127b4565b915050610eee565b6000546001600160a01b03163314610f3b5760405162461bcd60e51b81526004016106ed90612693565b610aed61181d565b60145460ff161515600114610f9a5760405162461bcd60e51b815260206004820152601a60248201527f4e46543a204d696e74206e6f742073746172746564207965742100000000000060448201526064016106ed565b6000610fa560095490565b905060008211610ff75760405162461bcd60e51b815260206004820181905260248201527f4e46543a204e65656420746f206d696e74206174206c656173742031204e465460448201526064016106ed565b600f5482111561105b5760405162461bcd60e51b815260206004820152602960248201527f4e46543a204d6178206d696e7420616d6f756e74207065722073657373696f6e60448201526808195e18d95959195960ba1b60648201526084016106ed565b601054611068838361279c565b11156110b65760405162461bcd60e51b815260206004820152601b60248201527f4e46543a204d6178204e4654206c696d6974206578636565646564000000000060448201526064016106ed565b81600e546110c491906127cd565b3410156111135760405162461bcd60e51b815260206004820152601c60248201527f4e46543a20496e73756666696369656e74206d696e742066656573210000000060448201526064016106ed565b60005b8281101561078857611127336117fd565b80611131816127b4565b915050611116565b60606002805461079c906126e5565b336001600160a01b038316036111a05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106ed565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61121633836114b5565b6112325760405162461bcd60e51b81526004016106ed9061271f565b61123e848484846118a5565b50505050565b606061124f826118d8565b60405160200161125f91906127ec565b6040516020818303038152906040529050919050565b6000546001600160a01b0316331461129f5760405162461bcd60e51b81526004016106ed90612693565b6014805460ff19811660ff90911615179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016106ed90612693565b6001600160a01b0381166113425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ed565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b81526004016106ed90612693565b600e55565b6000546001600160a01b031633146113f65760405162461bcd60e51b81526004016106ed90612693565b60405133904780156108fc02916000818181858888f19350505050158015610b81573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b14806106bd57506106bd82611a49565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061147c82610c58565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600360205260408120546001600160a01b031661152e5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106ed565b600061153983610c58565b9050806001600160a01b0316846001600160a01b031614806115745750836001600160a01b03166115698461081f565b6001600160a01b0316145b806115a457506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166115bf82610c58565b6001600160a01b0316146116275760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016106ed565b6001600160a01b0382166116895760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106ed565b611694838383611a99565b61169f600082611447565b6001600160a01b03831660009081526004602052604081208054600192906116c8908490612815565b90915550506001600160a01b03821660009081526004602052604081208054600192906116f690849061279c565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600054600160a01b900460ff166117a75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106ed565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610b8181611af1565b61180f8161180a600c5490565b611b31565b610b81600c80546001019055565b600054600160a01b900460ff161561186a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106ed565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117d73390565b6118b08484846115ac565b6118bc84848484611b4b565b61123e5760405162461bcd60e51b81526004016106ed9061282c565b6000818152600360205260409020546060906001600160a01b03166119595760405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b60648201526084016106ed565b6000828152600b602052604081208054611972906126e5565b80601f016020809104026020016040519081016040528092919081815260200182805461199e906126e5565b80156119eb5780601f106119c0576101008083540402835291602001916119eb565b820191906000526020600020905b8154815290600101906020018083116119ce57829003601f168201915b5050505050905060006119fc611c4c565b90508051600003611a0e575092915050565b815115611a40578082604051602001611a2892919061287e565b60405160208183030381529060405292505050919050565b6115a484611c5b565b60006001600160e01b031982166380ac58cd60e01b1480611a7a57506001600160e01b03198216635b5e139f60e01b145b806106bd57506301ffc9a760e01b6001600160e01b03198316146106bd565b600054600160a01b900460ff1615611ae65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106ed565b610788838383611d36565b611afa81611dee565b6000818152600b602052604090208054611b13906126e5565b159050610b81576000818152600b60205260408120610b819161232b565b610c54828260405180602001604052806000815250611e95565b60006001600160a01b0384163b15611c4157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611b8f9033908990889088906004016128ad565b6020604051808303816000875af1925050508015611bca575060408051601f3d908101601f19168201909252611bc7918101906128ea565b60015b611c27573d808015611bf8576040519150601f19603f3d011682016040523d82523d6000602084013e611bfd565b606091505b508051600003611c1f5760405162461bcd60e51b81526004016106ed9061282c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506115a4565b506001949350505050565b60606011805461079c906126e5565b6000818152600360205260409020546060906001600160a01b0316611cda5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016106ed565b6000611ce4611c4c565b90506000815111611d045760405180602001604052806000815250611d2f565b80611d0e84611ec8565b604051602001611d1f92919061287e565b6040516020818303038152906040525b9392505050565b6001600160a01b038316611d9157611d8c81600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b611db4565b816001600160a01b0316836001600160a01b031614611db457611db48382611fc9565b6001600160a01b038216611dcb5761078881612066565b826001600160a01b0316826001600160a01b031614610788576107888282612115565b6000611df982610c58565b9050611e0781600084611a99565b611e12600083611447565b6001600160a01b0381166000908152600460205260408120805460019290611e3b908490612815565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611e9f8383612159565b611eac6000848484611b4b565b6107885760405162461bcd60e51b81526004016106ed9061282c565b606081600003611eef5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611f195780611f03816127b4565b9150611f129050600a8361291d565b9150611ef3565b60008167ffffffffffffffff811115611f3457611f346124af565b6040519080825280601f01601f191660200182016040528015611f5e576020820181803683370190505b5090505b84156115a457611f73600183612815565b9150611f80600a86612931565b611f8b90603061279c565b60f81b818381518110611fa057611fa0612770565b60200101906001600160f81b031916908160001a905350611fc2600a8661291d565b9450611f62565b60006001611fd684610d5d565b611fe09190612815565b600083815260086020526040902054909150808214612033576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b60095460009061207890600190612815565b6000838152600a6020526040812054600980549394509092849081106120a0576120a0612770565b9060005260206000200154905080600983815481106120c1576120c1612770565b6000918252602080832090910192909255828152600a909152604080822084905585825281205560098054806120f9576120f9612945565b6001900381819060005260206000200160009055905550505050565b600061212083610d5d565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b0382166121af5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106ed565b6000818152600360205260409020546001600160a01b0316156122145760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106ed565b61222060008383611a99565b6001600160a01b038216600090815260046020526040812080546001929061224990849061279c565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122b3906126e5565b90600052602060002090601f0160209004810192826122d5576000855561231b565b82601f106122ee57805160ff191683800117855561231b565b8280016001018555821561231b579182015b8281111561231b578251825591602001919060010190612300565b50612327929150612361565b5090565b508054612337906126e5565b6000825580601f10612347575050565b601f016020900490600052602060002090810190610b8191905b5b808211156123275760008155600101612362565b6001600160e01b031981168114610b8157600080fd5b60006020828403121561239e57600080fd5b8135611d2f81612376565b80356001600160a01b03811681146123c057600080fd5b919050565b600080604083850312156123d857600080fd5b6123e1836123a9565b946020939093013593505050565b60005b8381101561240a5781810151838201526020016123f2565b8381111561123e5750506000910152565b600081518084526124338160208601602086016123ef565b601f01601f19169290920160200192915050565b602081526000611d2f602083018461241b565b60006020828403121561246c57600080fd5b5035919050565b60008060006060848603121561248857600080fd5b612491846123a9565b925061249f602085016123a9565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156124e0576124e06124af565b604051601f8501601f19908116603f01168101908282118183101715612508576125086124af565b8160405280935085815286868601111561252157600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561254d57600080fd5b813567ffffffffffffffff81111561256457600080fd5b8201601f8101841361257557600080fd5b6115a4848235602084016124c5565b60006020828403121561259657600080fd5b611d2f826123a9565b8015158114610b8157600080fd5b600080604083850312156125c057600080fd5b6125c9836123a9565b915060208301356125d98161259f565b809150509250929050565b600080600080608085870312156125fa57600080fd5b612603856123a9565b9350612611602086016123a9565b925060408501359150606085013567ffffffffffffffff81111561263457600080fd5b8501601f8101871361264557600080fd5b612654878235602084016124c5565b91505092959194509250565b6000806040838503121561267357600080fd5b61267c836123a9565b915061268a602084016123a9565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156126da57600080fd5b8151611d2f8161259f565b600181811c908216806126f957607f821691505b60208210810361271957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156127af576127af612786565b500190565b6000600182016127c6576127c6612786565b5060010190565b60008160001904831182151516156127e7576127e7612786565b500290565b600082516127fe8184602087016123ef565b64173539b7b760d91b920191825250600501919050565b60008282101561282757612827612786565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600083516128908184602088016123ef565b8351908301906128a48183602088016123ef565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906128e09083018461241b565b9695505050505050565b6000602082840312156128fc57600080fd5b8151611d2f81612376565b634e487b7160e01b600052601260045260246000fd5b60008261292c5761292c612907565b500490565b60008261294057612940612907565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f1d0a43df9dca25a4ee73922c8a21bc2390241d667346f3e952d451e929bb71364736f6c634300080e00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000114a756e676c65204d7574616e742041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054a4d415045000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80636c0360eb11610123578063a9722cf3116100ab578063e456b01c1161006f578063e456b01c146105fe578063e985e9c514610614578063f2fde38b1461065d578063f4a0a5281461067d578063ffbb62a31461069d57600080fd5b8063a9722cf31461055f578063b88d4fde14610579578063c30796ab14610599578063c87b56dd146105c9578063d3dd5fe0146105e957600080fd5b80638456cb59116100f25780638456cb59146104e45780638da5cb5b146104f9578063926427441461051757806395d89b411461052a578063a22cb4651461053f57600080fd5b80636c0360eb1461047a57806370a082311461048f578063715018a6146104af5780637206e3e5146104c457600080fd5b80632f745c59116101a65780634f6ccce7116101755780634f6ccce7146103e557806355f804b3146104055780635c975abb146104255780636352211e146104445780636817c76c1461046457600080fd5b80632f745c59146103705780633f4ba83a1461039057806342842e0e146103a557806342966c68146103c557600080fd5b8063088a4ed0116101ed578063088a4ed0146102db578063095ea7b3146102fb57806318160ddd1461031b578063239c70ae1461033a57806323b872dd1461035057600080fd5b806301ffc9a71461022a57806306b091f91461025f57806306fdde0314610281578063081812fc146102a357600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a61024536600461238c565b6106b2565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061027f61027a3660046123c5565b6106c3565b005b34801561028d57600080fd5b5061029661078d565b6040516102569190612447565b3480156102af57600080fd5b506102c36102be36600461245a565b61081f565b6040516001600160a01b039091168152602001610256565b3480156102e757600080fd5b5061027f6102f636600461245a565b6108b4565b34801561030757600080fd5b5061027f6103163660046123c5565b6108e3565b34801561032757600080fd5b506009545b604051908152602001610256565b34801561034657600080fd5b5061032c600f5481565b34801561035c57600080fd5b5061027f61036b366004612473565b6109f3565b34801561037c57600080fd5b5061032c61038b3660046123c5565b610a25565b34801561039c57600080fd5b5061027f610abb565b3480156103b157600080fd5b5061027f6103c0366004612473565b610aef565b3480156103d157600080fd5b5061027f6103e036600461245a565b610b0a565b3480156103f157600080fd5b5061032c61040036600461245a565b610b84565b34801561041157600080fd5b5061027f61042036600461253b565b610c17565b34801561043157600080fd5b50600054600160a01b900460ff1661024a565b34801561045057600080fd5b506102c361045f36600461245a565b610c58565b34801561047057600080fd5b5061032c600e5481565b34801561048657600080fd5b50610296610ccf565b34801561049b57600080fd5b5061032c6104aa366004612584565b610d5d565b3480156104bb57600080fd5b5061027f610de4565b3480156104d057600080fd5b5061027f6104df36600461245a565b610e58565b3480156104f057600080fd5b5061027f610f11565b34801561050557600080fd5b506000546001600160a01b03166102c3565b61027f61052536600461245a565b610f43565b34801561053657600080fd5b50610296611139565b34801561054b57600080fd5b5061027f61055a3660046125ad565b611148565b34801561056b57600080fd5b5060145461024a9060ff1681565b34801561058557600080fd5b5061027f6105943660046125e4565b61120c565b3480156105a557600080fd5b5061024a6105b4366004612584565b600d6020526000908152604090205460ff1681565b3480156105d557600080fd5b506102966105e436600461245a565b611244565b3480156105f557600080fd5b5061027f611275565b34801561060a57600080fd5b5061032c60105481565b34801561062057600080fd5b5061024a61062f366004612660565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561066957600080fd5b5061027f610678366004612584565b6112b3565b34801561068957600080fd5b5061027f61069836600461245a565b61139d565b3480156106a957600080fd5b5061027f6113cc565b60006106bd82611422565b92915050565b6000546001600160a01b031633146106f65760405162461bcd60e51b81526004016106ed90612693565b60405180910390fd5b816001600160a01b031663a9059cbb6107176000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610764573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078891906126c8565b505050565b60606001805461079c906126e5565b80601f01602080910402602001604051908101604052809291908181526020018280546107c8906126e5565b80156108155780601f106107ea57610100808354040283529160200191610815565b820191906000526020600020905b8154815290600101906020018083116107f857829003601f168201915b5050505050905090565b6000818152600360205260408120546001600160a01b03166108985760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106ed565b506000908152600560205260409020546001600160a01b031690565b6000546001600160a01b031633146108de5760405162461bcd60e51b81526004016106ed90612693565b600f55565b60006108ee82610c58565b9050806001600160a01b0316836001600160a01b03160361095b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016106ed565b336001600160a01b03821614806109775750610977813361062f565b6109e95760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016106ed565b6107888383611447565b6109fe335b826114b5565b610a1a5760405162461bcd60e51b81526004016106ed9061271f565b6107888383836115ac565b6000610a3083610d5d565b8210610a925760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016106ed565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b6000546001600160a01b03163314610ae55760405162461bcd60e51b81526004016106ed90612693565b610aed611757565b565b6107888383836040518060200160405280600081525061120c565b610b13336109f8565b610b785760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016106ed565b610b81816117f4565b50565b6000610b8f60095490565b8210610bf25760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016106ed565b60098281548110610c0557610c05612770565b90600052602060002001549050919050565b6000546001600160a01b03163314610c415760405162461bcd60e51b81526004016106ed90612693565b8051610c549060119060208401906122a7565b5050565b6000818152600360205260408120546001600160a01b0316806106bd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016106ed565b60118054610cdc906126e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d08906126e5565b8015610d555780601f10610d2a57610100808354040283529160200191610d55565b820191906000526020600020905b815481529060010190602001808311610d3857829003601f168201915b505050505081565b60006001600160a01b038216610dc85760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016106ed565b506001600160a01b031660009081526004602052604090205490565b6000546001600160a01b03163314610e0e5760405162461bcd60e51b81526004016106ed90612693565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e825760405162461bcd60e51b81526004016106ed90612693565b6000610e8d60095490565b601054909150610e9d838361279c565b1115610eeb5760405162461bcd60e51b815260206004820152601b60248201527f4e46543a204d6178204e4654206c696d6974206578636565646564000000000060448201526064016106ed565b60005b8281101561078857610eff336117fd565b80610f09816127b4565b915050610eee565b6000546001600160a01b03163314610f3b5760405162461bcd60e51b81526004016106ed90612693565b610aed61181d565b60145460ff161515600114610f9a5760405162461bcd60e51b815260206004820152601a60248201527f4e46543a204d696e74206e6f742073746172746564207965742100000000000060448201526064016106ed565b6000610fa560095490565b905060008211610ff75760405162461bcd60e51b815260206004820181905260248201527f4e46543a204e65656420746f206d696e74206174206c656173742031204e465460448201526064016106ed565b600f5482111561105b5760405162461bcd60e51b815260206004820152602960248201527f4e46543a204d6178206d696e7420616d6f756e74207065722073657373696f6e60448201526808195e18d95959195960ba1b60648201526084016106ed565b601054611068838361279c565b11156110b65760405162461bcd60e51b815260206004820152601b60248201527f4e46543a204d6178204e4654206c696d6974206578636565646564000000000060448201526064016106ed565b81600e546110c491906127cd565b3410156111135760405162461bcd60e51b815260206004820152601c60248201527f4e46543a20496e73756666696369656e74206d696e742066656573210000000060448201526064016106ed565b60005b8281101561078857611127336117fd565b80611131816127b4565b915050611116565b60606002805461079c906126e5565b336001600160a01b038316036111a05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106ed565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61121633836114b5565b6112325760405162461bcd60e51b81526004016106ed9061271f565b61123e848484846118a5565b50505050565b606061124f826118d8565b60405160200161125f91906127ec565b6040516020818303038152906040529050919050565b6000546001600160a01b0316331461129f5760405162461bcd60e51b81526004016106ed90612693565b6014805460ff19811660ff90911615179055565b6000546001600160a01b031633146112dd5760405162461bcd60e51b81526004016106ed90612693565b6001600160a01b0381166113425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ed565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b81526004016106ed90612693565b600e55565b6000546001600160a01b031633146113f65760405162461bcd60e51b81526004016106ed90612693565b60405133904780156108fc02916000818181858888f19350505050158015610b81573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b14806106bd57506106bd82611a49565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061147c82610c58565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600360205260408120546001600160a01b031661152e5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016106ed565b600061153983610c58565b9050806001600160a01b0316846001600160a01b031614806115745750836001600160a01b03166115698461081f565b6001600160a01b0316145b806115a457506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166115bf82610c58565b6001600160a01b0316146116275760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016106ed565b6001600160a01b0382166116895760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106ed565b611694838383611a99565b61169f600082611447565b6001600160a01b03831660009081526004602052604081208054600192906116c8908490612815565b90915550506001600160a01b03821660009081526004602052604081208054600192906116f690849061279c565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600054600160a01b900460ff166117a75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106ed565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610b8181611af1565b61180f8161180a600c5490565b611b31565b610b81600c80546001019055565b600054600160a01b900460ff161561186a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106ed565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117d73390565b6118b08484846115ac565b6118bc84848484611b4b565b61123e5760405162461bcd60e51b81526004016106ed9061282c565b6000818152600360205260409020546060906001600160a01b03166119595760405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b60648201526084016106ed565b6000828152600b602052604081208054611972906126e5565b80601f016020809104026020016040519081016040528092919081815260200182805461199e906126e5565b80156119eb5780601f106119c0576101008083540402835291602001916119eb565b820191906000526020600020905b8154815290600101906020018083116119ce57829003601f168201915b5050505050905060006119fc611c4c565b90508051600003611a0e575092915050565b815115611a40578082604051602001611a2892919061287e565b60405160208183030381529060405292505050919050565b6115a484611c5b565b60006001600160e01b031982166380ac58cd60e01b1480611a7a57506001600160e01b03198216635b5e139f60e01b145b806106bd57506301ffc9a760e01b6001600160e01b03198316146106bd565b600054600160a01b900460ff1615611ae65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106ed565b610788838383611d36565b611afa81611dee565b6000818152600b602052604090208054611b13906126e5565b159050610b81576000818152600b60205260408120610b819161232b565b610c54828260405180602001604052806000815250611e95565b60006001600160a01b0384163b15611c4157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611b8f9033908990889088906004016128ad565b6020604051808303816000875af1925050508015611bca575060408051601f3d908101601f19168201909252611bc7918101906128ea565b60015b611c27573d808015611bf8576040519150601f19603f3d011682016040523d82523d6000602084013e611bfd565b606091505b508051600003611c1f5760405162461bcd60e51b81526004016106ed9061282c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506115a4565b506001949350505050565b60606011805461079c906126e5565b6000818152600360205260409020546060906001600160a01b0316611cda5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016106ed565b6000611ce4611c4c565b90506000815111611d045760405180602001604052806000815250611d2f565b80611d0e84611ec8565b604051602001611d1f92919061287e565b6040516020818303038152906040525b9392505050565b6001600160a01b038316611d9157611d8c81600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b611db4565b816001600160a01b0316836001600160a01b031614611db457611db48382611fc9565b6001600160a01b038216611dcb5761078881612066565b826001600160a01b0316826001600160a01b031614610788576107888282612115565b6000611df982610c58565b9050611e0781600084611a99565b611e12600083611447565b6001600160a01b0381166000908152600460205260408120805460019290611e3b908490612815565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611e9f8383612159565b611eac6000848484611b4b565b6107885760405162461bcd60e51b81526004016106ed9061282c565b606081600003611eef5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611f195780611f03816127b4565b9150611f129050600a8361291d565b9150611ef3565b60008167ffffffffffffffff811115611f3457611f346124af565b6040519080825280601f01601f191660200182016040528015611f5e576020820181803683370190505b5090505b84156115a457611f73600183612815565b9150611f80600a86612931565b611f8b90603061279c565b60f81b818381518110611fa057611fa0612770565b60200101906001600160f81b031916908160001a905350611fc2600a8661291d565b9450611f62565b60006001611fd684610d5d565b611fe09190612815565b600083815260086020526040902054909150808214612033576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b60095460009061207890600190612815565b6000838152600a6020526040812054600980549394509092849081106120a0576120a0612770565b9060005260206000200154905080600983815481106120c1576120c1612770565b6000918252602080832090910192909255828152600a909152604080822084905585825281205560098054806120f9576120f9612945565b6001900381819060005260206000200160009055905550505050565b600061212083610d5d565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b0382166121af5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106ed565b6000818152600360205260409020546001600160a01b0316156122145760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106ed565b61222060008383611a99565b6001600160a01b038216600090815260046020526040812080546001929061224990849061279c565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122b3906126e5565b90600052602060002090601f0160209004810192826122d5576000855561231b565b82601f106122ee57805160ff191683800117855561231b565b8280016001018555821561231b579182015b8281111561231b578251825591602001919060010190612300565b50612327929150612361565b5090565b508054612337906126e5565b6000825580601f10612347575050565b601f016020900490600052602060002090810190610b8191905b5b808211156123275760008155600101612362565b6001600160e01b031981168114610b8157600080fd5b60006020828403121561239e57600080fd5b8135611d2f81612376565b80356001600160a01b03811681146123c057600080fd5b919050565b600080604083850312156123d857600080fd5b6123e1836123a9565b946020939093013593505050565b60005b8381101561240a5781810151838201526020016123f2565b8381111561123e5750506000910152565b600081518084526124338160208601602086016123ef565b601f01601f19169290920160200192915050565b602081526000611d2f602083018461241b565b60006020828403121561246c57600080fd5b5035919050565b60008060006060848603121561248857600080fd5b612491846123a9565b925061249f602085016123a9565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156124e0576124e06124af565b604051601f8501601f19908116603f01168101908282118183101715612508576125086124af565b8160405280935085815286868601111561252157600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561254d57600080fd5b813567ffffffffffffffff81111561256457600080fd5b8201601f8101841361257557600080fd5b6115a4848235602084016124c5565b60006020828403121561259657600080fd5b611d2f826123a9565b8015158114610b8157600080fd5b600080604083850312156125c057600080fd5b6125c9836123a9565b915060208301356125d98161259f565b809150509250929050565b600080600080608085870312156125fa57600080fd5b612603856123a9565b9350612611602086016123a9565b925060408501359150606085013567ffffffffffffffff81111561263457600080fd5b8501601f8101871361264557600080fd5b612654878235602084016124c5565b91505092959194509250565b6000806040838503121561267357600080fd5b61267c836123a9565b915061268a602084016123a9565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156126da57600080fd5b8151611d2f8161259f565b600181811c908216806126f957607f821691505b60208210810361271957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156127af576127af612786565b500190565b6000600182016127c6576127c6612786565b5060010190565b60008160001904831182151516156127e7576127e7612786565b500290565b600082516127fe8184602087016123ef565b64173539b7b760d91b920191825250600501919050565b60008282101561282757612827612786565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600083516128908184602088016123ef565b8351908301906128a48183602088016123ef565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906128e09083018461241b565b9695505050505050565b6000602082840312156128fc57600080fd5b8151611d2f81612376565b634e487b7160e01b600052601260045260246000fd5b60008261292c5761292c612907565b500490565b60008261294057612940612907565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f1d0a43df9dca25a4ee73922c8a21bc2390241d667346f3e952d451e929bb71364736f6c634300080e0033

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000114a756e676c65204d7574616e742041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054a4d415045000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Jungle Mutant Ape
Arg [1] : _symbol (string): JMAPE

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [3] : 4a756e676c65204d7574616e7420417065000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 4a4d415045000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21560:3930:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22518:171;;;;;;;;;;-1:-1:-1;22518:171:0;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;22518:171:0;;;;;;;;25326:161;;;;;;;;;;-1:-1:-1;25326:161:0;;;;;:::i;:::-;;:::i;:::-;;11016:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12046:219::-;;;;;;;;;;-1:-1:-1;12046:219:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2129:32:1;;;2111:51;;2099:2;2084:18;12046:219:0;1965:203:1;23351:116:0;;;;;;;;;;-1:-1:-1;23351:116:0;;;;;:::i;:::-;;:::i;11670:370::-;;;;;;;;;;-1:-1:-1;11670:370:0;;;;;:::i;:::-;;:::i;17907:113::-;;;;;;;;;;-1:-1:-1;17995:10:0;:17;17907:113;;;2319:25:1;;;2307:2;2292:18;17907:113:0;2173:177:1;21876:32:0;;;;;;;;;;;;;;;;12740:250;;;;;;;;;;-1:-1:-1;12740:250:0;;;;;:::i;:::-;;:::i;17645:256::-;;;;;;;;;;-1:-1:-1;17645:256:0;;;;;:::i;:::-;;:::i;23084:65::-;;;;;;;;;;;;;:::i;12996:151::-;;;;;;;;;;-1:-1:-1;12996:151:0;;;;;:::i;:::-;;:::i;21361:192::-;;;;;;;;;;-1:-1:-1;21361:192:0;;;;;:::i;:::-;;:::i;18026:233::-;;;;;;;;;;-1:-1:-1;18026:233:0;;;;;:::i;:::-;;:::i;23473:98::-;;;;;;;;;;-1:-1:-1;23473:98:0;;;;;:::i;:::-;;:::i;5793:86::-;;;;;;;;;;-1:-1:-1;5840:4:0;5864:7;-1:-1:-1;;;5864:7:0;;;;5793:86;;10771:239;;;;;;;;;;-1:-1:-1;10771:239:0;;;;;:::i;:::-;;:::i;21821:48::-;;;;;;;;;;;;;;;;21949:21;;;;;;;;;;;;;:::i;10557:208::-;;;;;;;;;;-1:-1:-1;10557:208:0;;;;;:::i;:::-;;:::i;6877:148::-;;;;;;;;;;;;;:::i;23723:278::-;;;;;;;;;;-1:-1:-1;23723:278:0;;;;;:::i;:::-;;:::i;23017:61::-;;;;;;;;;;;;;:::i;6658:87::-;;;;;;;;;;-1:-1:-1;6704:7:0;6731:6;-1:-1:-1;;;;;6731:6:0;6658:87;;24007:589;;;;;;:::i;:::-;;:::i;11122:104::-;;;;;;;;;;;;;:::i;12271:293::-;;;;;;;;;;-1:-1:-1;12271:293:0;;;;;:::i;:::-;;:::i;22033:31::-;;;;;;;;;;-1:-1:-1;22033:31:0;;;;;;;;13153:285;;;;;;;;;;-1:-1:-1;13153:285:0;;;;;:::i;:::-;;:::i;21764:50::-;;;;;;;;;;-1:-1:-1;21764:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22322:190;;;;;;;;;;-1:-1:-1;22322:190:0;;;;;:::i;:::-;;:::i;23155:84::-;;;;;;;;;;;;;:::i;21915:27::-;;;;;;;;;;;;;;;;12570:164;;;;;;;;;;-1:-1:-1;12570:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;12691:25:0;;;12667:4;12691:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;12570:164;7031:244;;;;;;;;;;-1:-1:-1;7031:244:0;;;;;:::i;:::-;;:::i;23245:100::-;;;;;;;;;;-1:-1:-1;23245:100:0;;;;;:::i;:::-;;:::i;24904:112::-;;;;;;;;;;;;;:::i;22518:171::-;22621:4;22645:36;22669:11;22645:23;:36::i;:::-;22638:43;22518:171;-1:-1:-1;;22518:171:0:o;25326:161::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;;;;;;;;;25435:12:::1;-1:-1:-1::0;;;;;25429:28:0::1;;25458:7;6704::::0;6731:6;-1:-1:-1;;;;;6731:6:0;;6658:87;25458:7:::1;25429:50;::::0;-1:-1:-1;;;;;;25429:50:0::1;::::0;;;;;;-1:-1:-1;;;;;6037:32:1;;;25429:50:0::1;::::0;::::1;6019:51:1::0;6086:18;;;6079:34;;;5992:18;;25429:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25326:161:::0;;:::o;11016:100::-;11070:13;11103:5;11096:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11016:100;:::o;12046:219::-;12122:7;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;12142:73;;;;-1:-1:-1;;;12142:73:0;;6961:2:1;12142:73:0;;;6943:21:1;7000:2;6980:18;;;6973:30;7039:34;7019:18;;;7012:62;-1:-1:-1;;;7090:18:1;;;7083:42;7142:19;;12142:73:0;6759:408:1;12142:73:0;-1:-1:-1;12233:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12233:24:0;;12046:219::o;23351:116::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23429:13:::1;:30:::0;23351:116::o;11670:370::-;11751:13;11767:23;11782:7;11767:14;:23::i;:::-;11751:39;;11815:5;-1:-1:-1;;;;;11809:11:0;:2;-1:-1:-1;;;;;11809:11:0;;11801:57;;;;-1:-1:-1;;;11801:57:0;;7374:2:1;11801:57:0;;;7356:21:1;7413:2;7393:18;;;7386:30;7452:34;7432:18;;;7425:62;-1:-1:-1;;;7503:18:1;;;7496:31;7544:19;;11801:57:0;7172:397:1;11801:57:0;5446:10;-1:-1:-1;;;;;11877:21:0;;;;:62;;-1:-1:-1;11902:37:0;11919:5;5446:10;12570:164;:::i;11902:37::-;11869:131;;;;-1:-1:-1;;;11869:131:0;;7776:2:1;11869:131:0;;;7758:21:1;7815:2;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;7925:26;7905:18;;;7898:54;7969:19;;11869:131:0;7574:420:1;11869:131:0;12011:21;12020:2;12024:7;12011:8;:21::i;12740:250::-;12848:41;5446:10;12867:12;12881:7;12848:18;:41::i;:::-;12840:103;;;;-1:-1:-1;;;12840:103:0;;;;;;;:::i;:::-;12954:28;12964:4;12970:2;12974:7;12954:9;:28::i;17645:256::-;17742:7;17778:23;17795:5;17778:16;:23::i;:::-;17770:5;:31;17762:87;;;;-1:-1:-1;;;17762:87:0;;8619:2:1;17762:87:0;;;8601:21:1;8658:2;8638:18;;;8631:30;8697:34;8677:18;;;8670:62;-1:-1:-1;;;8748:18:1;;;8741:41;8799:19;;17762:87:0;8417:407:1;17762:87:0;-1:-1:-1;;;;;;17867:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;17645:256::o;23084:65::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23131:10:::1;:8;:10::i;:::-;23084:65::o:0;12996:151::-;13100:39;13117:4;13123:2;13127:7;13100:39;;;;;;;;;;;;:16;:39::i;21361:192::-;21426:41;5446:10;21445:12;5366:98;21426:41;21418:102;;;;-1:-1:-1;;;21418:102:0;;9031:2:1;21418:102:0;;;9013:21:1;9070:2;9050:18;;;9043:30;9109:34;9089:18;;;9082:62;-1:-1:-1;;;9160:18:1;;;9153:46;9216:19;;21418:102:0;8829:412:1;21418:102:0;21531:14;21537:7;21531:5;:14::i;:::-;21361:192;:::o;18026:233::-;18101:7;18137:30;17995:10;:17;;17907:113;18137:30;18129:5;:38;18121:95;;;;-1:-1:-1;;;18121:95:0;;9448:2:1;18121:95:0;;;9430:21:1;9487:2;9467:18;;;9460:30;9526:34;9506:18;;;9499:62;-1:-1:-1;;;9577:18:1;;;9570:42;9629:19;;18121:95:0;9246:408:1;18121:95:0;18234:10;18245:5;18234:17;;;;;;;;:::i;:::-;;;;;;;;;18227:24;;18026:233;;;:::o;23473:98::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23545:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23473:98:::0;:::o;10771:239::-;10843:7;10879:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10879:16:0;;10906:73;;;;-1:-1:-1;;;10906:73:0;;9993:2:1;10906:73:0;;;9975:21:1;10032:2;10012:18;;;10005:30;10071:34;10051:18;;;10044:62;-1:-1:-1;;;10122:18:1;;;10115:39;10171:19;;10906:73:0;9791:405:1;21949:21:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10557:208::-;10629:7;-1:-1:-1;;;;;10657:19:0;;10649:74;;;;-1:-1:-1;;;10649:74:0;;10403:2:1;10649:74:0;;;10385:21:1;10442:2;10422:18;;;10415:30;10481:34;10461:18;;;10454:62;-1:-1:-1;;;10532:18:1;;;10525:40;10582:19;;10649:74:0;10201:406:1;10649:74:0;-1:-1:-1;;;;;;10741:16:0;;;;;:9;:16;;;;;;;10557:208::o;6877:148::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;6984:1:::1;6968:6:::0;;6947:40:::1;::::0;-1:-1:-1;;;;;6968:6:0;;::::1;::::0;6947:40:::1;::::0;6984:1;;6947:40:::1;7015:1;6998:19:::0;;-1:-1:-1;;;;;;6998:19:0::1;::::0;;6877:148::o;23723:278::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23789:14:::1;23806:13;17995:10:::0;:17;;17907:113;23806:13:::1;23857:6;::::0;23789:30;;-1:-1:-1;23838:15:0::1;23847:6:::0;23789:30;23838:15:::1;:::i;:::-;:25;;23830:65;;;::::0;-1:-1:-1;;;23830:65:0;;11079:2:1;23830:65:0::1;::::0;::::1;11061:21:1::0;11118:2;11098:18;;;11091:30;11157:29;11137:18;;;11130:57;11204:18;;23830:65:0::1;10877:351:1::0;23830:65:0::1;23911:9;23906:88;23930:6;23926:1;:10;23906:88;;;23958:24;23971:10;23958:12;:24::i;:::-;23938:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23906:88;;23017:61:::0;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23062:8:::1;:6;:8::i;24007:589::-:0;24074:11;;;;:19;;:11;:19;24066:58;;;;-1:-1:-1;;;24066:58:0;;11575:2:1;24066:58:0;;;11557:21:1;11614:2;11594:18;;;11587:30;11653:28;11633:18;;;11626:56;11699:18;;24066:58:0;11373:350:1;24066:58:0;24135:14;24152:13;17995:10;:17;;17907:113;24152:13;24135:30;;24193:1;24184:6;:10;24176:55;;;;-1:-1:-1;;;24176:55:0;;11930:2:1;24176:55:0;;;11912:21:1;;;11949:18;;;11942:30;12008:34;11988:18;;;11981:62;12060:18;;24176:55:0;11728:356:1;24176:55:0;24260:13;;24250:6;:23;;24242:77;;;;-1:-1:-1;;;24242:77:0;;12291:2:1;24242:77:0;;;12273:21:1;12330:2;12310:18;;;12303:30;12369:34;12349:18;;;12342:62;-1:-1:-1;;;12420:18:1;;;12413:39;12469:19;;24242:77:0;12089:405:1;24242:77:0;24357:6;;24338:15;24347:6;24338;:15;:::i;:::-;:25;;24330:65;;;;-1:-1:-1;;;24330:65:0;;11079:2:1;24330:65:0;;;11061:21:1;11118:2;11098:18;;;11091:30;11157:29;11137:18;;;11130:57;11204:18;;24330:65:0;10877:351:1;24330:65:0;24439:6;24427:9;;:18;;;;:::i;:::-;24414:9;:31;;24406:72;;;;-1:-1:-1;;;24406:72:0;;12874:2:1;24406:72:0;;;12856:21:1;12913:2;12893:18;;;12886:30;12952;12932:18;;;12925:58;13000:18;;24406:72:0;12672:352:1;24406:72:0;24498:9;24493:96;24517:6;24513:1;:10;24493:96;;;24549:24;24562:10;24549:12;:24::i;:::-;24525:3;;;;:::i;:::-;;;;24493:96;;11122:104;11178:13;11211:7;11204:14;;;;;:::i;12271:293::-;5446:10;-1:-1:-1;;;;;12374:24:0;;;12366:62;;;;-1:-1:-1;;;12366:62:0;;13231:2:1;12366:62:0;;;13213:21:1;13270:2;13250:18;;;13243:30;13309:27;13289:18;;;13282:55;13354:18;;12366:62:0;13029:349:1;12366:62:0;5446:10;12439:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;12439:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;12439:53:0;;;;;;;;;;12508:48;;540:41:1;;;12439:42:0;;5446:10;12508:48;;513:18:1;12508:48:0;;;;;;;12271:293;;:::o;13153:285::-;13285:41;5446:10;13318:7;13285:18;:41::i;:::-;13277:103;;;;-1:-1:-1;;;13277:103:0;;;;;;;:::i;:::-;13391:39;13405:4;13411:2;13415:7;13424:5;13391:13;:39::i;:::-;13153:285;;;;:::o;22322:190::-;22413:13;22470:23;22485:7;22470:14;:23::i;:::-;22453:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;22439:65;;22322:190;;;:::o;23155:84::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23220:11:::1;::::0;;-1:-1:-1;;23205:26:0;::::1;23220:11;::::0;;::::1;23219:12;23205:26;::::0;;23155:84::o;7031:244::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7120:22:0;::::1;7112:73;;;::::0;-1:-1:-1;;;7112:73:0;;14033:2:1;7112:73:0::1;::::0;::::1;14015:21:1::0;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:1;;;14155:36;14208:19;;7112:73:0::1;13831:402:1::0;7112:73:0::1;7222:6;::::0;;7201:38:::1;::::0;-1:-1:-1;;;;;7201:38:0;;::::1;::::0;7222:6;::::1;::::0;7201:38:::1;::::0;::::1;7250:6;:17:::0;;-1:-1:-1;;;;;;7250:17:0::1;-1:-1:-1::0;;;;;7250:17:0;;;::::1;::::0;;;::::1;::::0;;7031:244::o;23245:100::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23315:9:::1;:22:::0;23245:100::o;24904:112::-;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;5446:10;6791:23;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;24957:51:::1;::::0;24965:10:::1;::::0;24986:21:::1;24957:51:::0;::::1;;;::::0;::::1;::::0;;;24986:21;24965:10;24957:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;17415:224:::0;17517:4;-1:-1:-1;;;;;;17541:50:0;;-1:-1:-1;;;17541:50:0;;:90;;;17595:36;17619:11;17595:23;:36::i;15783:174::-;15858:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15858:29:0;-1:-1:-1;;;;;15858:29:0;;;;;;;;:24;;15912:23;15858:24;15912:14;:23::i;:::-;-1:-1:-1;;;;;15903:46:0;;;;;;;;;;;15783:174;;:::o;13855:348::-;13948:4;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;13965:73;;;;-1:-1:-1;;;13965:73:0;;14440:2:1;13965:73:0;;;14422:21:1;14479:2;14459:18;;;14452:30;14518:34;14498:18;;;14491:62;-1:-1:-1;;;14569:18:1;;;14562:42;14621:19;;13965:73:0;14238:408:1;13965:73:0;14049:13;14065:23;14080:7;14065:14;:23::i;:::-;14049:39;;14118:5;-1:-1:-1;;;;;14107:16:0;:7;-1:-1:-1;;;;;14107:16:0;;:51;;;;14151:7;-1:-1:-1;;;;;14127:31:0;:20;14139:7;14127:11;:20::i;:::-;-1:-1:-1;;;;;14127:31:0;;14107:51;:87;;;-1:-1:-1;;;;;;12691:25:0;;;12667:4;12691:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;14162:32;14099:96;13855:348;-1:-1:-1;;;;13855:348:0:o;15293:484::-;15418:4;-1:-1:-1;;;;;15391:31:0;:23;15406:7;15391:14;:23::i;:::-;-1:-1:-1;;;;;15391:31:0;;15383:85;;;;-1:-1:-1;;;15383:85:0;;14853:2:1;15383:85:0;;;14835:21:1;14892:2;14872:18;;;14865:30;14931:34;14911:18;;;14904:62;-1:-1:-1;;;14982:18:1;;;14975:39;15031:19;;15383:85:0;14651:405:1;15383:85:0;-1:-1:-1;;;;;15487:16:0;;15479:65;;;;-1:-1:-1;;;15479:65:0;;15263:2:1;15479:65:0;;;15245:21:1;15302:2;15282:18;;;15275:30;15341:34;15321:18;;;15314:62;-1:-1:-1;;;15392:18:1;;;15385:34;15436:19;;15479:65:0;15061:400:1;15479:65:0;15555:39;15576:4;15582:2;15586:7;15555:20;:39::i;:::-;15605:29;15622:1;15626:7;15605:8;:29::i;:::-;-1:-1:-1;;;;;15645:15:0;;;;;;:9;:15;;;;;:20;;15664:1;;15645:15;:20;;15664:1;;15645:20;:::i;:::-;;;;-1:-1:-1;;;;;;;15676:13:0;;;;;;:9;:13;;;;;:18;;15693:1;;15676:13;:18;;15693:1;;15676:18;:::i;:::-;;;;-1:-1:-1;;15705:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;15705:21:0;-1:-1:-1;;;;;15705:21:0;;;;;;;;;15742:27;;15705:16;;15742:27;;;;;;;15293:484;;;:::o;6209:120::-;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;6018:41;;;;-1:-1:-1;;;6018:41:0;;15798:2:1;6018:41:0;;;15780:21:1;15837:2;15817:18;;;15810:30;-1:-1:-1;;;15856:18:1;;;15849:50;15916:18;;6018:41:0;15596:344:1;6018:41:0;6278:5:::1;6268:15:::0;;-1:-1:-1;;;;6268:15:0::1;::::0;;6299:22:::1;5446:10:::0;6308:12:::1;6299:22;::::0;-1:-1:-1;;;;;2129:32:1;;;2111:51;;2099:2;2084:18;6299:22:0::1;;;;;;;6209:120::o:0;22695:115::-;22782:20;22794:7;22782:11;:20::i;23577:140::-;23631:40;23641:2;23645:25;:15;3507:14;;3415:114;23645:25;23631:9;:40::i;:::-;23682:27;:15;3624:19;;3642:1;3624:19;;;3535:127;6085:118;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;16147:2:1;5921:38:0;;;16129:21:1;16186:2;16166:18;;;16159:30;-1:-1:-1;;;16205:18:1;;;16198:46;16261:18;;5921:38:0;15945:340:1;5921:38:0;6145:7:::1;:14:::0;;-1:-1:-1;;;;6145:14:0::1;-1:-1:-1::0;;;6145:14:0::1;::::0;;6175:20:::1;6182:12;5446:10:::0;;5366:98;13444:272;13558:28;13568:4;13574:2;13578:7;13558:9;:28::i;:::-;13605:48;13628:4;13634:2;13638:7;13647:5;13605:22;:48::i;:::-;13597:111;;;;-1:-1:-1;;;13597:111:0;;;;;;;:::i;20338:524::-;13787:4;13811:16;;;:7;:16;;;;;;20411:13;;-1:-1:-1;;;;;13811:16:0;20437:78;;;;-1:-1:-1;;;20437:78:0;;16911:2:1;20437:78:0;;;16893:21:1;16950:2;16930:18;;;16923:30;16989:34;16969:18;;;16962:62;-1:-1:-1;;;17040:18:1;;;17033:47;17097:19;;20437:78:0;16709:413:1;20437:78:0;20526:23;20552:19;;;:10;:19;;;;;20526:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:18;20603:10;:8;:10::i;:::-;20582:31;;20634:4;20628:18;20650:1;20628:23;20624:72;;-1:-1:-1;20675:9:0;20338:524;-1:-1:-1;;20338:524:0:o;20624:72::-;20710:23;;:27;20706:108;;20785:4;20791:9;20768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20754:48;;;;20338:524;;;:::o;20706:108::-;20831:23;20846:7;20831:14;:23::i;10285:266::-;10387:4;-1:-1:-1;;;;;;10411:40:0;;-1:-1:-1;;;10411:40:0;;:92;;-1:-1:-1;;;;;;;10455:48:0;;-1:-1:-1;;;10455:48:0;10411:92;:132;;;-1:-1:-1;;;;;;;;;;9680:40:0;;;10507:36;9571:157;22816:195;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;16147:2:1;5921:38:0;;;16129:21:1;16186:2;16166:18;;;16159:30;-1:-1:-1;;;16205:18:1;;;16198:46;16261:18;;5921:38:0;15945:340:1;5921:38:0;22958:45:::1;22985:4;22991:2;22995:7;22958:26;:45::i;21091:204::-:0;21160:20;21172:7;21160:11;:20::i;:::-;21201:19;;;;:10;:19;;;;;21195:33;;;;;:::i;:::-;:38;;-1:-1:-1;21191:97:0;;21257:19;;;;:10;:19;;;;;21250:26;;;:::i;14209:110::-;14285:26;14295:2;14299:7;14285:26;;;;;;;;;;;;:9;:26::i;15963:760::-;16075:4;-1:-1:-1;;;;;16096:13:0;;203:20;241:8;16092:624;;16132:72;;-1:-1:-1;;;16132:72:0;;-1:-1:-1;;;;;16132:36:0;;;;;:72;;5446:10;;16183:4;;16189:7;;16198:5;;16132:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16132:72:0;;;;;;;;-1:-1:-1;;16132:72:0;;;;;;;;;;;;:::i;:::-;;;16128:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16378:6;:13;16395:1;16378:18;16374:272;;16421:60;;-1:-1:-1;;;16421:60:0;;;;;;;:::i;16374:272::-;16596:6;16590:13;16581:6;16577:2;16573:15;16566:38;16128:533;-1:-1:-1;;;;;;16255:55:0;-1:-1:-1;;;16255:55:0;;-1:-1:-1;16248:62:0;;16092:624;-1:-1:-1;16700:4:0;15963:760;;;;;;:::o;22216:100::-;22268:13;22301:7;22294:14;;;;;:::i;11232:332::-;13787:4;13811:16;;;:7;:16;;;;;;11305:13;;-1:-1:-1;;;;;13811:16:0;11331:76;;;;-1:-1:-1;;;11331:76:0;;18552:2:1;11331:76:0;;;18534:21:1;18591:2;18571:18;;;18564:30;18630:34;18610:18;;;18603:62;-1:-1:-1;;;18681:18:1;;;18674:45;18736:19;;11331:76:0;18350:411:1;11331:76:0;11418:21;11442:10;:8;:10::i;:::-;11418:34;;11494:1;11476:7;11470:21;:25;:86;;;;;;;;;;;;;;;;;11522:7;11531:18;:7;:16;:18::i;:::-;11505:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11470:86;11463:93;11232:332;-1:-1:-1;;;11232:332:0:o;18265:553::-;-1:-1:-1;;;;;18435:18:0;;18431:187;;18470:40;18502:7;19155:10;:17;;19128:24;;;;:15;:24;;;;;:44;;;19183:24;;;;;;;;;;;;19051:164;18470:40;18431:187;;;18540:2;-1:-1:-1;;;;;18532:10:0;:4;-1:-1:-1;;;;;18532:10:0;;18528:90;;18559:47;18592:4;18598:7;18559:32;:47::i;:::-;-1:-1:-1;;;;;18632:16:0;;18628:183;;18665:45;18702:7;18665:36;:45::i;18628:183::-;18738:4;-1:-1:-1;;;;;18732:10:0;:2;-1:-1:-1;;;;;18732:10:0;;18728:83;;18759:40;18787:2;18791:7;18759:27;:40::i;14963:324::-;15023:13;15039:23;15054:7;15039:14;:23::i;:::-;15023:39;;15073:48;15094:5;15109:1;15113:7;15073:20;:48::i;:::-;15132:29;15149:1;15153:7;15132:8;:29::i;:::-;-1:-1:-1;;;;;15172:16:0;;;;;;:9;:16;;;;;:21;;15192:1;;15172:16;:21;;15192:1;;15172:21;:::i;:::-;;;;-1:-1:-1;;15211:16:0;;;;:7;:16;;;;;;15204:23;;-1:-1:-1;;;;;;15204:23:0;;;15243:36;15219:7;;15211:16;-1:-1:-1;;;;;15243:36:0;;;;;15211:16;;15243:36;15012:275;14963:324;:::o;14325:250::-;14421:18;14427:2;14431:7;14421:5;:18::i;:::-;14458:54;14489:1;14493:2;14497:7;14506:5;14458:22;:54::i;:::-;14450:117;;;;-1:-1:-1;;;14450:117:0;;;;;;;:::i;3995:532::-;4051:13;4081:5;4090:1;4081:10;4077:53;;-1:-1:-1;;4108:10:0;;;;;;;;;;;;-1:-1:-1;;;4108:10:0;;;;;3995:532::o;4077:53::-;4155:5;4140:12;4196:78;4203:9;;4196:78;;4229:8;;;;:::i;:::-;;-1:-1:-1;4252:10:0;;-1:-1:-1;4260:2:0;4252:10;;:::i;:::-;;;4196:78;;;4284:19;4316:6;4306:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4306:17:0;;4284:39;;4334:154;4341:10;;4334:154;;4368:11;4378:1;4368:11;;:::i;:::-;;-1:-1:-1;4437:10:0;4445:2;4437:5;:10;:::i;:::-;4424:24;;:2;:24;:::i;:::-;4411:39;;4394:6;4401;4394:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;4394:56:0;;;;;;;;-1:-1:-1;4465:11:0;4474:2;4465:11;;:::i;:::-;;;4334:154;;19221:549;19313:22;19363:1;19338:22;19355:4;19338:16;:22::i;:::-;:26;;;;:::i;:::-;19375:18;19396:26;;;:17;:26;;;;;;19313:51;;-1:-1:-1;19437:28:0;;;19433:234;;-1:-1:-1;;;;;19504:18:0;;19482:19;19504:18;;;:12;:18;;;;;;;;:34;;;;;;;;;19553:30;;;;;;:44;;;19612:30;;:17;:30;;;;;:43;;;19433:234;-1:-1:-1;19684:26:0;;;;:17;:26;;;;;;;;19677:33;;;-1:-1:-1;;;;;19728:18:0;;;;;:12;:18;;;;;:34;;;;;;;19721:41;19221:549::o;19776:419::-;19883:10;:17;19858:22;;19883:21;;19903:1;;19883:21;:::i;:::-;19915:18;19936:24;;;:15;:24;;;;;;19993:10;:26;;19858:46;;-1:-1:-1;19936:24:0;;19858:46;;19993:26;;;;;;:::i;:::-;;;;;;;;;19971:48;;20055:11;20030:10;20041;20030:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;20077:28;;;:15;:28;;;;;;;:41;;;20136:24;;;;;20129:31;20171:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19847:348;;;19776:419;:::o;18824:221::-;18909:14;18926:20;18943:2;18926:16;:20::i;:::-;-1:-1:-1;;;;;18957:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;19002:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;18824:221:0:o;14581:376::-;-1:-1:-1;;;;;14661:16:0;;14653:61;;;;-1:-1:-1;;;14653:61:0;;19474:2:1;14653:61:0;;;19456:21:1;;;19493:18;;;19486:30;19552:34;19532:18;;;19525:62;19604:18;;14653:61:0;19272:356:1;14653:61:0;13787:4;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;:30;14725:58;;;;-1:-1:-1;;;14725:58:0;;19835:2:1;14725:58:0;;;19817:21:1;19874:2;19854:18;;;19847:30;19913;19893:18;;;19886:58;19961:18;;14725:58:0;19633:352:1;14725:58:0;14794:45;14823:1;14827:2;14831:7;14794:20;:45::i;:::-;-1:-1:-1;;;;;14850:13:0;;;;;;:9;:13;;;;;:18;;14867:1;;14850:13;:18;;14867:1;;14850:18;:::i;:::-;;;;-1:-1:-1;;14879:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14879:21:0;-1:-1:-1;;;;;14879:21:0;;;;;;;;14916:33;;14879:16;;;14916:33;;14879:16;;14916:33;14581:376;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:173::-;660:20;;-1:-1:-1;;;;;709:31:1;;699:42;;689:70;;755:1;752;745:12;689:70;592:173;;;:::o;770:254::-;838:6;846;899:2;887:9;878:7;874:23;870:32;867:52;;;915:1;912;905:12;867:52;938:29;957:9;938:29;:::i;:::-;928:39;1014:2;999:18;;;;986:32;;-1:-1:-1;;;770:254:1:o;1029:258::-;1101:1;1111:113;1125:6;1122:1;1119:13;1111:113;;;1201:11;;;1195:18;1182:11;;;1175:39;1147:2;1140:10;1111:113;;;1242:6;1239:1;1236:13;1233:48;;;-1:-1:-1;;1277:1:1;1259:16;;1252:27;1029:258::o;1292:::-;1334:3;1372:5;1366:12;1399:6;1394:3;1387:19;1415:63;1471:6;1464:4;1459:3;1455:14;1448:4;1441:5;1437:16;1415:63;:::i;:::-;1532:2;1511:15;-1:-1:-1;;1507:29:1;1498:39;;;;1539:4;1494:50;;1292:258;-1:-1:-1;;1292:258:1:o;1555:220::-;1704:2;1693:9;1686:21;1667:4;1724:45;1765:2;1754:9;1750:18;1742:6;1724:45;:::i;1780:180::-;1839:6;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;-1:-1:-1;1931:23:1;;1780:180;-1:-1:-1;1780:180:1:o;2355:328::-;2432:6;2440;2448;2501:2;2489:9;2480:7;2476:23;2472:32;2469:52;;;2517:1;2514;2507:12;2469:52;2540:29;2559:9;2540:29;:::i;:::-;2530:39;;2588:38;2622:2;2611:9;2607:18;2588:38;:::i;:::-;2578:48;;2673:2;2662:9;2658:18;2645:32;2635:42;;2355:328;;;;;:::o;2688:127::-;2749:10;2744:3;2740:20;2737:1;2730:31;2780:4;2777:1;2770:15;2804:4;2801:1;2794:15;2820:632;2885:5;2915:18;2956:2;2948:6;2945:14;2942:40;;;2962:18;;:::i;:::-;3037:2;3031:9;3005:2;3091:15;;-1:-1:-1;;3087:24:1;;;3113:2;3083:33;3079:42;3067:55;;;3137:18;;;3157:22;;;3134:46;3131:72;;;3183:18;;:::i;:::-;3223:10;3219:2;3212:22;3252:6;3243:15;;3282:6;3274;3267:22;3322:3;3313:6;3308:3;3304:16;3301:25;3298:45;;;3339:1;3336;3329:12;3298:45;3389:6;3384:3;3377:4;3369:6;3365:17;3352:44;3444:1;3437:4;3428:6;3420;3416:19;3412:30;3405:41;;;;2820:632;;;;;:::o;3457:451::-;3526:6;3579:2;3567:9;3558:7;3554:23;3550:32;3547:52;;;3595:1;3592;3585:12;3547:52;3635:9;3622:23;3668:18;3660:6;3657:30;3654:50;;;3700:1;3697;3690:12;3654:50;3723:22;;3776:4;3768:13;;3764:27;-1:-1:-1;3754:55:1;;3805:1;3802;3795:12;3754:55;3828:74;3894:7;3889:2;3876:16;3871:2;3867;3863:11;3828:74;:::i;3913:186::-;3972:6;4025:2;4013:9;4004:7;4000:23;3996:32;3993:52;;;4041:1;4038;4031:12;3993:52;4064:29;4083:9;4064:29;:::i;4104:118::-;4190:5;4183:13;4176:21;4169:5;4166:32;4156:60;;4212:1;4209;4202:12;4227:315;4292:6;4300;4353:2;4341:9;4332:7;4328:23;4324:32;4321:52;;;4369:1;4366;4359:12;4321:52;4392:29;4411:9;4392:29;:::i;:::-;4382:39;;4471:2;4460:9;4456:18;4443:32;4484:28;4506:5;4484:28;:::i;:::-;4531:5;4521:15;;;4227:315;;;;;:::o;4547:667::-;4642:6;4650;4658;4666;4719:3;4707:9;4698:7;4694:23;4690:33;4687:53;;;4736:1;4733;4726:12;4687:53;4759:29;4778:9;4759:29;:::i;:::-;4749:39;;4807:38;4841:2;4830:9;4826:18;4807:38;:::i;:::-;4797:48;;4892:2;4881:9;4877:18;4864:32;4854:42;;4947:2;4936:9;4932:18;4919:32;4974:18;4966:6;4963:30;4960:50;;;5006:1;5003;4996:12;4960:50;5029:22;;5082:4;5074:13;;5070:27;-1:-1:-1;5060:55:1;;5111:1;5108;5101:12;5060:55;5134:74;5200:7;5195:2;5182:16;5177:2;5173;5169:11;5134:74;:::i;:::-;5124:84;;;4547:667;;;;;;;:::o;5219:260::-;5287:6;5295;5348:2;5336:9;5327:7;5323:23;5319:32;5316:52;;;5364:1;5361;5354:12;5316:52;5387:29;5406:9;5387:29;:::i;:::-;5377:39;;5435:38;5469:2;5458:9;5454:18;5435:38;:::i;:::-;5425:48;;5219:260;;;;;:::o;5484:356::-;5686:2;5668:21;;;5705:18;;;5698:30;5764:34;5759:2;5744:18;;5737:62;5831:2;5816:18;;5484:356::o;6124:245::-;6191:6;6244:2;6232:9;6223:7;6219:23;6215:32;6212:52;;;6260:1;6257;6250:12;6212:52;6292:9;6286:16;6311:28;6333:5;6311:28;:::i;6374:380::-;6453:1;6449:12;;;;6496;;;6517:61;;6571:4;6563:6;6559:17;6549:27;;6517:61;6624:2;6616:6;6613:14;6593:18;6590:38;6587:161;;6670:10;6665:3;6661:20;6658:1;6651:31;6705:4;6702:1;6695:15;6733:4;6730:1;6723:15;6587:161;;6374:380;;;:::o;7999:413::-;8201:2;8183:21;;;8240:2;8220:18;;;8213:30;8279:34;8274:2;8259:18;;8252:62;-1:-1:-1;;;8345:2:1;8330:18;;8323:47;8402:3;8387:19;;7999:413::o;9659:127::-;9720:10;9715:3;9711:20;9708:1;9701:31;9751:4;9748:1;9741:15;9775:4;9772:1;9765:15;10612:127;10673:10;10668:3;10664:20;10661:1;10654:31;10704:4;10701:1;10694:15;10728:4;10725:1;10718:15;10744:128;10784:3;10815:1;10811:6;10808:1;10805:13;10802:39;;;10821:18;;:::i;:::-;-1:-1:-1;10857:9:1;;10744:128::o;11233:135::-;11272:3;11293:17;;;11290:43;;11313:18;;:::i;:::-;-1:-1:-1;11360:1:1;11349:13;;11233:135::o;12499:168::-;12539:7;12605:1;12601;12597:6;12593:14;12590:1;12587:21;12582:1;12575:9;12568:17;12564:45;12561:71;;;12612:18;;:::i;:::-;-1:-1:-1;12652:9:1;;12499:168::o;13383:443::-;13615:3;13653:6;13647:13;13669:53;13715:6;13710:3;13703:4;13695:6;13691:17;13669:53;:::i;:::-;-1:-1:-1;;;13744:16:1;;13769:22;;;-1:-1:-1;13818:1:1;13807:13;;13383:443;-1:-1:-1;13383:443:1:o;15466:125::-;15506:4;15534:1;15531;15528:8;15525:34;;;15539:18;;:::i;:::-;-1:-1:-1;15576:9:1;;15466:125::o;16290:414::-;16492:2;16474:21;;;16531:2;16511:18;;;16504:30;16570:34;16565:2;16550:18;;16543:62;-1:-1:-1;;;16636:2:1;16621:18;;16614:48;16694:3;16679:19;;16290:414::o;17127:470::-;17306:3;17344:6;17338:13;17360:53;17406:6;17401:3;17394:4;17386:6;17382:17;17360:53;:::i;:::-;17476:13;;17435:16;;;;17498:57;17476:13;17435:16;17532:4;17520:17;;17498:57;:::i;:::-;17571:20;;17127:470;-1:-1:-1;;;;17127:470:1:o;17602:489::-;-1:-1:-1;;;;;17871:15:1;;;17853:34;;17923:15;;17918:2;17903:18;;17896:43;17970:2;17955:18;;17948:34;;;18018:3;18013:2;17998:18;;17991:31;;;17796:4;;18039:46;;18065:19;;18057:6;18039:46;:::i;:::-;18031:54;17602:489;-1:-1:-1;;;;;;17602:489:1:o;18096:249::-;18165:6;18218:2;18206:9;18197:7;18193:23;18189:32;18186:52;;;18234:1;18231;18224:12;18186:52;18266:9;18260:16;18285:30;18309:5;18285:30;:::i;18766:127::-;18827:10;18822:3;18818:20;18815:1;18808:31;18858:4;18855:1;18848:15;18882:4;18879:1;18872:15;18898:120;18938:1;18964;18954:35;;18969:18;;:::i;:::-;-1:-1:-1;19003:9:1;;18898:120::o;19023:112::-;19055:1;19081;19071:35;;19086:18;;:::i;:::-;-1:-1:-1;19120:9:1;;19023:112::o;19140:127::-;19201:10;19196:3;19192:20;19189:1;19182:31;19232:4;19229:1;19222:15;19256:4;19253:1;19246:15

Swarm Source

ipfs://f1d0a43df9dca25a4ee73922c8a21bc2390241d667346f3e952d451e929bb713
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.