Contract 0xf3a7baeadf59f6900c0202a4680d958b9ad4b713

Contract Overview

Balance:
0 CRO

CRO Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x15f300b18aabd6222571939fc93f4f94ee237f63710eecf3bcfb029fe8b5f1a5Set Approval For...131790342024-03-25 23:14:442 days 15 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.13379470
0x178f7295d84f23a9554c77f46bedefae7c05509903a5e194063bd3fab2edf898Set Approval For...131788082024-03-25 22:53:232 days 16 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0x961f6de7f8eace006e83b8f184e77b0220560219cb52e2137719a19ef1577f0eSet Approval For...131788082024-03-25 22:53:232 days 16 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0x001bff616071882dc1c51abc14fb35db82ddad095a6d24e4f95a48fb7cc2c76eSet Approval For...131787912024-03-25 22:51:472 days 16 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0xbe2b00ba11ea17e8de046294e674a18c48de30beb9a39f4310bd55cb67f5ac21Set Approval For...131766682024-03-25 19:31:242 days 19 hrs ago0x93fe43db40c997ae784143f060032db16293d93f IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.123657959 5,048.5
0x8145cad50d5eccae70202682b6559096c4be3a263cb0e6e8655edaeee31309a5Transfer From131140472024-03-21 17:32:016 days 21 hrs ago0x591d5ffb7f693c9075dc1786233b1d0d680f01c8 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0xba450885ba56f183081a8c4f19a71d39dfd707b91941027c669ef3643c1a0e2cTransfer From131139982024-03-21 17:27:286 days 21 hrs ago0x591d5ffb7f693c9075dc1786233b1d0d680f01c8 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0x7128e977adce0836d0a778a117a97bfd6660e1681216b541b610eeb8dcbacee9Set Approval For...130249442024-03-15 22:15:3212 days 16 hrs ago0x3381c691c0cddca9e71330cca711eab547adb9ea IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.23435030
0x3c7a6778384f465550a54743a0aa9ea095cbf1d7765d2d4739a333839b9424ddApprove128989432024-03-07 19:02:1520 days 20 hrs agoCronos ID Name ryskllc.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO1.056137397675 10,058.451406437
0x0245e6fc0c0c949bccf29a39af1c4f307442139117f6a9786af9ed6b391c8434Set Approval For...128214642024-03-02 19:16:4225 days 19 hrs agoCronos ID Name death6.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0x8d58b9389b0ab7929c43ebb41a1ae192458d2b01670a1d0d05ae443fe768c4c1Set Approval For...126178182024-02-18 14:57:3239 days 9 mins ago0xf801d89f904203ff47bdd44984e3ef6d0dda6500 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0xe0045e0cbca73935e3c959a4bba5444fdef11c8fa1312b177517b0f20642b4a6Transfer From125795642024-02-16 3:10:1341 days 11 hrs agoCronos ID Name hellzwonderland.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO1.010
0x52cb7b05d8f1820021503599422d9be7576a724928b807711c39ca87125acd38Set Approval For...124399862024-02-07 1:02:2550 days 14 hrs ago0xce359b306dd3990a835cb7824a36f573e6df308f IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.247315918 10,097
0x750cc512f6c8f1135c67c1e909669ba53d496cd4ab08c95c3a74ef1651edcda2Set Approval For...122290512024-01-24 7:36:1564 days 7 hrs ago0x29d1772cf40dc9b514363376a4e314ba0929de77 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.24738940
0x141f361609d62ad1cc9f49900c0d140a11c42553c99e2df087530aad78e4cf73Set Approval For...122113282024-01-23 3:56:0965 days 11 hrs agoCronos ID Name wealthishealth.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0xcf7739210c29bc4210d88bb060c06b84b286761adca57bbced7e1af9eed00949Set Approval For...120407672024-01-12 1:57:2976 days 13 hrs ago0x5bb16aa738fd9cae69a297c991b1a22acfc7e324 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0x5a34b338b4bf511bd1b8bee8cbfb6a8517ab75cfd0e6a3c6d3e32e7f49020364Set Approval For...120138552024-01-10 7:50:5578 days 7 hrs ago0x6b5a52b11b374b5b49b4aca8004a2547a5581235 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0x188392624f7fc46e3134cd1bbce66937be6ae3f6bdc96cf4b0164996f08da42eSet Approval For...118431702023-12-30 5:38:1489 days 9 hrs agoCronos ID Name tamag267.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0xc23b37b13a88b65ffdf98de9b936c7650544272e281c244695b9f7a79650ffeaSet Approval For...117347962023-12-23 4:46:3696 days 10 hrs ago0x03859f28681d0bf1e49cc36ef25b42b8d0c5fe30 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.24738940
0x6519329635f45d979d1c82b81dcbc0f25ce5ed67fb40f2b7f1bc9c3b9aeb0d75Set Approval For...117347962023-12-23 4:46:3696 days 10 hrs ago0x03859f28681d0bf1e49cc36ef25b42b8d0c5fe30 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.24738940
0x08819cdbbeb1c754f40bd3ade712748905c7d46912071d62552ac322f2a32b41Set Approval For...116556102023-12-18 1:16:42101 days 13 hrs agoCronos ID Name winniethepooh.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0x7b147f20e33c8dd88623cf371fbbd577b27b8caec65d39647a8de9fab4bbf5acSet Approval For...115446872023-12-10 19:06:22108 days 20 hrs agoCronos ID Name onedrive.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.2136241382040
0xaee5273679be2c1b7d9c9b418ef71317bf4215769608b37392fd286afa369452Set Approval For...115373992023-12-10 7:44:40109 days 7 hrs ago0x6d7ec627dc8167ccb4fcc410e01a2c6c1b9d29f8 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.2136390536010
0x266792d6ad5f93872eed26268e01b287ec7a9e1127a7525d88321b252a7eb88bSet Approval For...115074482023-12-08 9:02:36111 days 6 hrs agoCronos ID Name scouse.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.112831710201 4,606.504050016
0xfedeb8db117cee9c06f2b5c3952705b0d9cd386621efe5d7af138f3477ec2776Set Approval For...115074452023-12-08 9:02:19111 days 6 hrs agoCronos ID Name scouse.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.122044721875 4,606.504184938
[ Download CSV Export 
Latest 10 internal transactions
Parent Txn Hash Block From To Value
0x9e62223d8e3064e77f8ce1d71a433db2620730011792a6be38cf0a7680660e9d41626512022-08-14 22:19:01591 days 16 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b33,695 CRO
0x0de24d61ed3da66c52d4adfa779059fc17b84141f7d7c0652667991cb3143e1241601412022-08-14 18:22:11591 days 20 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b4,885 CRO
0x337b4838082c6bc3404a67fa284427132822ed3c45fba4c5cc9842c5df3a809941577542022-08-14 14:36:04592 days 31 mins ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b500 CRO
0x8bb045030de4c36cd08b525dba60054140714b64942eed4ebc89e8e31e84336a41553972022-08-14 10:52:56592 days 4 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,045 CRO
0x77e7d54f899d108abafa2252b3c8e5c0a4e67c62e30dd21a2930cd363357294b41521672022-08-14 5:47:42592 days 9 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b2,800 CRO
0x65d196cc8b5ca67ef927cc3ce7d55b4e7499b69dda11a8d562bcc4cae7b7050641452492022-08-13 18:55:18592 days 20 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b925 CRO
0x530a03cd3532276a2a8bc57aee0f707a3d43e3828ee6f9dce8bf4e8d36fb40f641430422022-08-13 15:26:31592 days 23 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b800 CRO
0x6f27f82ec1003f20b7f98d2708eec07aceea38d33b7ce8701f2a76b4ef47394f41426632022-08-13 14:50:41593 days 16 mins ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,000 CRO
0x39d73ada177a091faaef1496d07a7c8096004c1b8d2e24cf3fdf78ed49cc3a4741418962022-08-13 13:38:01593 days 1 hr ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,075 CRO
0xabe640d606f367df7296e0133968f76e3c1a796adc0c6588a24244ad2238d40f41408652022-08-13 12:00:24593 days 3 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b5,400 CRO
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CA_Non_Fungible_Token

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// 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 CA_Non_Fungible_Token is Ownable, Pausable, ERC721, ERC721Enumerable, ERC721URIStorage, ERC721Burnable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIdCounter;
    mapping(address => bool) public whitelistedAddress;
    mapping(address => bool) public waitlistedAddress;
    uint256 public mintPrice;
    uint256 public maxNFT;
    string public baseURI;
    string private _name;
    string private _symbol;
    bool public mintStarted = false;

    constructor(string memory _name, string memory _symbol, uint256 _mintPrice, uint256 _maxNFT)
    ERC721 (_name, _symbol) payable public {
        mintPrice = _mintPrice;
        maxNFT = _maxNFT;
    }

    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 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 {
        require(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!");
        require(msg.value >= mintPrice * amount, "NFT: Insufficient mint fees!");
        require(amount <= maxNFT, "NFT: Max NFT limit exceeded!");
        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"},{"internalType":"uint256","name":"_mintPrice","type":"uint256"},{"internalType":"uint256","name":"_maxNFT","type":"uint256"}],"stateMutability":"payable","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":"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":"_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":"waitlistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

608060408190526014805460ff1916905562002d4b388190039081908339810160408190526200002f9162000229565b838360006200003d620000d4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000a9906001906020850190620000d8565b508051620000bf906002906020840190620000d8565b505050600f9190915560105550620002f39050565b3390565b828054620000e690620002a0565b90600052602060002090601f0160209004810192826200010a576000855562000155565b82601f106200012557805160ff191683800117855562000155565b8280016001018555821562000155579182015b828111156200015557825182559160200191906001019062000138565b506200016392915062000167565b5090565b5b8082111562000163576000815560010162000168565b600082601f8301126200018f578081fd5b81516001600160401b0380821115620001ac57620001ac620002dd565b6040516020601f8401601f1916820181018381118382101715620001d457620001d4620002dd565b6040528382528584018101871015620001eb578485fd5b8492505b838310156200020e5785830181015182840182015291820191620001ef565b838311156200021f57848185840101525b5095945050505050565b600080600080608085870312156200023f578384fd5b84516001600160401b038082111562000256578586fd5b62000264888389016200017e565b955060208701519150808211156200027a578485fd5b5062000289878288016200017e565b604087015160609097015195989097509350505050565b600281046001821680620002b557607f821691505b60208210811415620002d757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612a4880620003036000396000f3fe6080604052600436106102135760003560e01c8063715018a611610118578063c30796ab116100a0578063e456b01c1161006f578063e456b01c146105ad578063e985e9c5146105c2578063f2fde38b146105e2578063f4a0a52814610602578063ffbb62a3146106225761021a565b8063c30796ab14610538578063c87b56dd14610558578063c8f6eeed14610578578063d3dd5fe0146105985761021a565b806392642744116100e757806392642744146104bb57806395d89b41146104ce578063a22cb465146104e3578063a9722cf314610503578063b88d4fde146105185761021a565b8063715018a61461045c5780637206e3e5146104715780638456cb59146104915780638da5cb5b146104a65761021a565b806342842e0e1161019b5780635c975abb1161016a5780635c975abb146103dd5780636352211e146103f25780636817c76c146104125780636c0360eb1461042757806370a082311461043c5761021a565b806342842e0e1461035d57806342966c681461037d5780634f6ccce71461039d57806355f804b3146103bd5761021a565b8063095ea7b3116101e2578063095ea7b3146102c657806318160ddd146102e657806323b872dd146103085780632f745c59146103285780633f4ba83a146103485761021a565b806301ffc9a71461021f57806306b091f91461025557806306fdde0314610277578063081812fc146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a36600461206e565b610637565b60405161024c91906121f2565b60405180910390f35b34801561026157600080fd5b50610275610270366004612029565b61064a565b005b34801561028357600080fd5b5061028c61071e565b60405161024c91906121fd565b3480156102a557600080fd5b506102b96102b43660046120ec565b6107b0565b60405161024c9190612188565b3480156102d257600080fd5b506102756102e1366004612029565b6107f3565b3480156102f257600080fd5b506102fb610886565b60405161024c91906128ab565b34801561031457600080fd5b50610275610323366004611f3f565b61088c565b34801561033457600080fd5b506102fb610343366004612029565b6108c4565b34801561035457600080fd5b50610275610916565b34801561036957600080fd5b50610275610378366004611f3f565b61095f565b34801561038957600080fd5b506102756103983660046120ec565b61097a565b3480156103a957600080fd5b506102fb6103b83660046120ec565b6109ad565b3480156103c957600080fd5b506102756103d83660046120a6565b610a08565b3480156103e957600080fd5b5061023f610a5e565b3480156103fe57600080fd5b506102b961040d3660046120ec565b610a6e565b34801561041e57600080fd5b506102fb610aa3565b34801561043357600080fd5b5061028c610aa9565b34801561044857600080fd5b506102fb610457366004611ef3565b610b37565b34801561046857600080fd5b50610275610b7b565b34801561047d57600080fd5b5061027561048c3660046120ec565b610c04565b34801561049d57600080fd5b50610275610c8b565b3480156104b257600080fd5b506102b9610cd2565b6102756104c93660046120ec565b610ce1565b3480156104da57600080fd5b5061028c610d7d565b3480156104ef57600080fd5b506102756104fe366004611ff3565b610d8c565b34801561050f57600080fd5b5061023f610e5a565b34801561052457600080fd5b50610275610533366004611f7a565b610e63565b34801561054457600080fd5b5061023f610553366004611ef3565b610ea2565b34801561056457600080fd5b5061028c6105733660046120ec565b610eb7565b34801561058457600080fd5b5061023f610593366004611ef3565b610ee8565b3480156105a457600080fd5b50610275610efd565b3480156105b957600080fd5b506102fb610f50565b3480156105ce57600080fd5b5061023f6105dd366004611f0d565b610f56565b3480156105ee57600080fd5b506102756105fd366004611ef3565b610f84565b34801561060e57600080fd5b5061027561061d3660046120ec565b611044565b34801561062e57600080fd5b50610275611088565b6000610642826110f3565b90505b919050565b610652611118565b6001600160a01b0316610663610cd2565b6001600160a01b0316146106925760405162461bcd60e51b815260040161068990612642565b60405180910390fd5b816001600160a01b031663a9059cbb6106a9610cd2565b836040518363ffffffff1660e01b81526004016106c79291906121d9565b602060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190612052565b505050565b60606001805461072d90612942565b80601f016020809104026020016040519081016040528092919081815260200182805461075990612942565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b5050505050905090565b60006107bb8261111c565b6107d75760405162461bcd60e51b8152600401610689906125f6565b506000908152600560205260409020546001600160a01b031690565b60006107fe82610a6e565b9050806001600160a01b0316836001600160a01b031614156108325760405162461bcd60e51b81526004016106899061270f565b806001600160a01b0316610844611118565b6001600160a01b031614806108605750610860816105dd611118565b61087c5760405162461bcd60e51b815260040161068990612480565b6107198383611139565b60095490565b61089d610897611118565b826111a7565b6108b95760405162461bcd60e51b815260040161068990612750565b61071983838361122c565b60006108cf83610b37565b82106108ed5760405162461bcd60e51b81526004016106899061223e565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b61091e611118565b6001600160a01b031661092f610cd2565b6001600160a01b0316146109555760405162461bcd60e51b815260040161068990612642565b61095d611359565b565b61071983838360405180602001604052806000815250610e63565b610985610897611118565b6109a15760405162461bcd60e51b81526004016106899061285b565b6109aa816113ca565b50565b60006109b7610886565b82106109d55760405162461bcd60e51b8152600401610689906127d8565b600982815481106109f657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610a10611118565b6001600160a01b0316610a21610cd2565b6001600160a01b031614610a475760405162461bcd60e51b815260040161068990612642565b8051610a5a906011906020840190611d9b565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106425760405162461bcd60e51b815260040161068990612527565b600f5481565b60118054610ab690612942565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290612942565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081565b60006001600160a01b038216610b5f5760405162461bcd60e51b8152600401610689906124dd565b506001600160a01b031660009081526004602052604090205490565b610b83611118565b6001600160a01b0316610b94610cd2565b6001600160a01b031614610bba5760405162461bcd60e51b815260040161068990612642565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610c0c611118565b6001600160a01b0316610c1d610cd2565b6001600160a01b031614610c435760405162461bcd60e51b815260040161068990612642565b601054811115610c655760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610c79336113d3565b80610c838161297d565b915050610c68565b610c93611118565b6001600160a01b0316610ca4610cd2565b6001600160a01b031614610cca5760405162461bcd60e51b815260040161068990612642565b61095d6113f0565b6000546001600160a01b031690565b60145460ff161515600114610d085760405162461bcd60e51b815260040161068990612321565b80600f54610d1691906128e0565b341015610d355760405162461bcd60e51b8152600401610689906127a1565b601054811115610d575760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610d6b336113d3565b80610d758161297d565b915050610d5a565b60606002805461072d90612942565b610d94611118565b6001600160a01b0316826001600160a01b03161415610dc55760405162461bcd60e51b8152600401610689906123d3565b8060066000610dd2611118565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610e16611118565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e4e91906121f2565b60405180910390a35050565b60145460ff1681565b610e74610e6e611118565b836111a7565b610e905760405162461bcd60e51b815260040161068990612750565b610e9c84848484611451565b50505050565b600d6020526000908152604090205460ff1681565b6060610ec282611484565b604051602001610ed2919061215f565b6040516020818303038152906040529050919050565b600e6020526000908152604090205460ff1681565b610f05611118565b6001600160a01b0316610f16610cd2565b6001600160a01b031614610f3c5760405162461bcd60e51b815260040161068990612642565b6014805460ff19811660ff90911615179055565b60105481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b610f8c611118565b6001600160a01b0316610f9d610cd2565b6001600160a01b031614610fc35760405162461bcd60e51b815260040161068990612642565b6001600160a01b038116610fe95760405162461bcd60e51b8152600401610689906122db565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61104c611118565b6001600160a01b031661105d610cd2565b6001600160a01b0316146110835760405162461bcd60e51b815260040161068990612642565b600f55565b611090611118565b6001600160a01b03166110a1610cd2565b6001600160a01b0316146110c75760405162461bcd60e51b815260040161068990612642565b60405133904780156108fc02916000818181858888f193505050501580156109aa573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b148061064257506106428261159d565b3390565b6000908152600360205260409020546001600160a01b0316151590565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061116e82610a6e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006111b28261111c565b6111ce5760405162461bcd60e51b81526004016106899061240a565b60006111d983610a6e565b9050806001600160a01b0316846001600160a01b031614806112145750836001600160a01b0316611209846107b0565b6001600160a01b0316145b8061122457506112248185610f56565b949350505050565b826001600160a01b031661123f82610a6e565b6001600160a01b0316146112655760405162461bcd60e51b815260040161068990612677565b6001600160a01b03821661128b5760405162461bcd60e51b81526004016106899061238f565b6112968383836115dd565b6112a1600082611139565b6001600160a01b03831660009081526004602052604081208054600192906112ca9084906128ff565b90915550506001600160a01b03821660009081526004602052604081208054600192906112f89084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611361610a5e565b61137d5760405162461bcd60e51b815260040161068990612210565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113b3611118565b6040516113c09190612188565b60405180910390a1565b6109aa8161160d565b6113e6816113e1600c61164d565b611651565b6109aa600c61166b565b6113f8610a5e565b156114155760405162461bcd60e51b815260040161068990612456565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113b3611118565b61145c84848461122c565b61146884848484611674565b610e9c5760405162461bcd60e51b815260040161068990612289565b606061148f8261111c565b6114ab5760405162461bcd60e51b8152600401610689906125a5565b6000828152600b6020526040812080546114c490612942565b80601f01602080910402602001604051908101604052809291908181526020018280546114f090612942565b801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b50505050509050600061154e61178f565b905080516000141561156257509050610645565b81511561159457808260405160200161157c929190612130565b60405160208183030381529060405292505050610645565b6112248461179e565b60006001600160e01b031982166380ac58cd60e01b14806115ce57506001600160e01b03198216635b5e139f60e01b145b80610642575061064282611821565b6115e5610a5e565b156116025760405162461bcd60e51b815260040161068990612456565b61071983838361183a565b611616816118c3565b6000818152600b60205260409020805461162f90612942565b1590506109aa576000818152600b602052604081206109aa91611e1f565b5490565b610a5a82826040518060200160405280600081525061196a565b80546001019055565b6000611688846001600160a01b031661199d565b1561178457836001600160a01b031663150b7a026116a4611118565b8786866040518563ffffffff1660e01b81526004016116c6949392919061219c565b602060405180830381600087803b1580156116e057600080fd5b505af1925050508015611710575060408051601f3d908101601f1916820190925261170d9181019061208a565b60015b61176a573d80801561173e576040519150601f19603f3d011682016040523d82523d6000602084013e611743565b606091505b5080516117625760405162461bcd60e51b815260040161068990612289565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611224565b506001949350505050565b60606011805461072d90612942565b60606117a98261111c565b6117c55760405162461bcd60e51b8152600401610689906126c0565b60006117cf61178f565b905060008151116117ef576040518060200160405280600081525061181a565b806117f9846119a3565b60405160200161180a929190612130565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611845838383610719565b6001600160a01b0383166118615761185c81611abe565b611884565b816001600160a01b0316836001600160a01b031614611884576118848382611b02565b6001600160a01b0382166118a05761189b81611b9f565b610719565b826001600160a01b0316826001600160a01b031614610719576107198282611c78565b60006118ce82610a6e565b90506118dc816000846115dd565b6118e7600083611139565b6001600160a01b03811660009081526004602052604081208054600192906119109084906128ff565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6119748383611cbc565b6119816000848484611674565b6107195760405162461bcd60e51b815260040161068990612289565b3b151590565b6060816119c857506040805180820190915260018152600360fc1b6020820152610645565b8160005b81156119f257806119dc8161297d565b91506119eb9050600a836128cc565b91506119cc565b60008167ffffffffffffffff811115611a1b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a45576020820181803683370190505b5090505b841561122457611a5a6001836128ff565b9150611a67600a86612998565b611a729060306128b4565b60f81b818381518110611a9557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ab7600a866128cc565b9450611a49565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611b0f84610b37565b611b1991906128ff565b600083815260086020526040902054909150808214611b6c576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611bb1906001906128ff565b6000838152600a602052604081205460098054939450909284908110611be757634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611c1657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611c5c57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611c8383610b37565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611ce25760405162461bcd60e51b815260040161068990612570565b611ceb8161111c565b15611d085760405162461bcd60e51b815260040161068990612358565b611d14600083836115dd565b6001600160a01b0382166000908152600460205260408120805460019290611d3d9084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611da790612942565b90600052602060002090601f016020900481019282611dc95760008555611e0f565b82601f10611de257805160ff1916838001178555611e0f565b82800160010185558215611e0f579182015b82811115611e0f578251825591602001919060010190611df4565b50611e1b929150611e57565b5090565b508054611e2b90612942565b6000825580601f10611e3d57506109aa565b601f0160209004906000526020600020908101906109aa91905b5b80821115611e1b5760008155600101611e58565b600067ffffffffffffffff80841115611e8757611e876129d8565b604051601f8501601f191681016020018281118282101715611eab57611eab6129d8565b604052848152915081838501861015611ec357600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461064557600080fd5b600060208284031215611f04578081fd5b61181a82611edc565b60008060408385031215611f1f578081fd5b611f2883611edc565b9150611f3660208401611edc565b90509250929050565b600080600060608486031215611f53578081fd5b611f5c84611edc565b9250611f6a60208501611edc565b9150604084013590509250925092565b60008060008060808587031215611f8f578081fd5b611f9885611edc565b9350611fa660208601611edc565b925060408501359150606085013567ffffffffffffffff811115611fc8578182fd5b8501601f81018713611fd8578182fd5b611fe787823560208401611e6c565b91505092959194509250565b60008060408385031215612005578182fd5b61200e83611edc565b9150602083013561201e816129ee565b809150509250929050565b6000806040838503121561203b578182fd5b61204483611edc565b946020939093013593505050565b600060208284031215612063578081fd5b815161181a816129ee565b60006020828403121561207f578081fd5b813561181a816129fc565b60006020828403121561209b578081fd5b815161181a816129fc565b6000602082840312156120b7578081fd5b813567ffffffffffffffff8111156120cd578182fd5b8201601f810184136120dd578182fd5b61122484823560208401611e6c565b6000602082840312156120fd578081fd5b5035919050565b6000815180845261211c816020860160208601612916565b601f01601f19169290920160200192915050565b60008351612142818460208801612916565b835190830190612156818360208801612916565b01949350505050565b60008251612171818460208701612916565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121cf90830184612104565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261181a6020830184612104565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f4e46543a204d696e74206e6f7420737461727465642079657421000000000000604082015260600190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b600082198211156128c7576128c76129ac565b500190565b6000826128db576128db6129c2565b500490565b60008160001904831182151516156128fa576128fa6129ac565b500290565b600082821015612911576129116129ac565b500390565b60005b83811015612931578181015183820152602001612919565b83811115610e9c5750506000910152565b60028104600182168061295657607f821691505b6020821081141561297757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612991576129916129ac565b5060010190565b6000826129a7576129a76129c2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146109aa57600080fd5b6001600160e01b0319811681146109aa57600080fdfea2646970667358221220f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c64264736f6c63430008000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000b43726f6f646c652041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044341504500000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063715018a611610118578063c30796ab116100a0578063e456b01c1161006f578063e456b01c146105ad578063e985e9c5146105c2578063f2fde38b146105e2578063f4a0a52814610602578063ffbb62a3146106225761021a565b8063c30796ab14610538578063c87b56dd14610558578063c8f6eeed14610578578063d3dd5fe0146105985761021a565b806392642744116100e757806392642744146104bb57806395d89b41146104ce578063a22cb465146104e3578063a9722cf314610503578063b88d4fde146105185761021a565b8063715018a61461045c5780637206e3e5146104715780638456cb59146104915780638da5cb5b146104a65761021a565b806342842e0e1161019b5780635c975abb1161016a5780635c975abb146103dd5780636352211e146103f25780636817c76c146104125780636c0360eb1461042757806370a082311461043c5761021a565b806342842e0e1461035d57806342966c681461037d5780634f6ccce71461039d57806355f804b3146103bd5761021a565b8063095ea7b3116101e2578063095ea7b3146102c657806318160ddd146102e657806323b872dd146103085780632f745c59146103285780633f4ba83a146103485761021a565b806301ffc9a71461021f57806306b091f91461025557806306fdde0314610277578063081812fc146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a36600461206e565b610637565b60405161024c91906121f2565b60405180910390f35b34801561026157600080fd5b50610275610270366004612029565b61064a565b005b34801561028357600080fd5b5061028c61071e565b60405161024c91906121fd565b3480156102a557600080fd5b506102b96102b43660046120ec565b6107b0565b60405161024c9190612188565b3480156102d257600080fd5b506102756102e1366004612029565b6107f3565b3480156102f257600080fd5b506102fb610886565b60405161024c91906128ab565b34801561031457600080fd5b50610275610323366004611f3f565b61088c565b34801561033457600080fd5b506102fb610343366004612029565b6108c4565b34801561035457600080fd5b50610275610916565b34801561036957600080fd5b50610275610378366004611f3f565b61095f565b34801561038957600080fd5b506102756103983660046120ec565b61097a565b3480156103a957600080fd5b506102fb6103b83660046120ec565b6109ad565b3480156103c957600080fd5b506102756103d83660046120a6565b610a08565b3480156103e957600080fd5b5061023f610a5e565b3480156103fe57600080fd5b506102b961040d3660046120ec565b610a6e565b34801561041e57600080fd5b506102fb610aa3565b34801561043357600080fd5b5061028c610aa9565b34801561044857600080fd5b506102fb610457366004611ef3565b610b37565b34801561046857600080fd5b50610275610b7b565b34801561047d57600080fd5b5061027561048c3660046120ec565b610c04565b34801561049d57600080fd5b50610275610c8b565b3480156104b257600080fd5b506102b9610cd2565b6102756104c93660046120ec565b610ce1565b3480156104da57600080fd5b5061028c610d7d565b3480156104ef57600080fd5b506102756104fe366004611ff3565b610d8c565b34801561050f57600080fd5b5061023f610e5a565b34801561052457600080fd5b50610275610533366004611f7a565b610e63565b34801561054457600080fd5b5061023f610553366004611ef3565b610ea2565b34801561056457600080fd5b5061028c6105733660046120ec565b610eb7565b34801561058457600080fd5b5061023f610593366004611ef3565b610ee8565b3480156105a457600080fd5b50610275610efd565b3480156105b957600080fd5b506102fb610f50565b3480156105ce57600080fd5b5061023f6105dd366004611f0d565b610f56565b3480156105ee57600080fd5b506102756105fd366004611ef3565b610f84565b34801561060e57600080fd5b5061027561061d3660046120ec565b611044565b34801561062e57600080fd5b50610275611088565b6000610642826110f3565b90505b919050565b610652611118565b6001600160a01b0316610663610cd2565b6001600160a01b0316146106925760405162461bcd60e51b815260040161068990612642565b60405180910390fd5b816001600160a01b031663a9059cbb6106a9610cd2565b836040518363ffffffff1660e01b81526004016106c79291906121d9565b602060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190612052565b505050565b60606001805461072d90612942565b80601f016020809104026020016040519081016040528092919081815260200182805461075990612942565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b5050505050905090565b60006107bb8261111c565b6107d75760405162461bcd60e51b8152600401610689906125f6565b506000908152600560205260409020546001600160a01b031690565b60006107fe82610a6e565b9050806001600160a01b0316836001600160a01b031614156108325760405162461bcd60e51b81526004016106899061270f565b806001600160a01b0316610844611118565b6001600160a01b031614806108605750610860816105dd611118565b61087c5760405162461bcd60e51b815260040161068990612480565b6107198383611139565b60095490565b61089d610897611118565b826111a7565b6108b95760405162461bcd60e51b815260040161068990612750565b61071983838361122c565b60006108cf83610b37565b82106108ed5760405162461bcd60e51b81526004016106899061223e565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b61091e611118565b6001600160a01b031661092f610cd2565b6001600160a01b0316146109555760405162461bcd60e51b815260040161068990612642565b61095d611359565b565b61071983838360405180602001604052806000815250610e63565b610985610897611118565b6109a15760405162461bcd60e51b81526004016106899061285b565b6109aa816113ca565b50565b60006109b7610886565b82106109d55760405162461bcd60e51b8152600401610689906127d8565b600982815481106109f657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610a10611118565b6001600160a01b0316610a21610cd2565b6001600160a01b031614610a475760405162461bcd60e51b815260040161068990612642565b8051610a5a906011906020840190611d9b565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106425760405162461bcd60e51b815260040161068990612527565b600f5481565b60118054610ab690612942565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290612942565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081565b60006001600160a01b038216610b5f5760405162461bcd60e51b8152600401610689906124dd565b506001600160a01b031660009081526004602052604090205490565b610b83611118565b6001600160a01b0316610b94610cd2565b6001600160a01b031614610bba5760405162461bcd60e51b815260040161068990612642565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610c0c611118565b6001600160a01b0316610c1d610cd2565b6001600160a01b031614610c435760405162461bcd60e51b815260040161068990612642565b601054811115610c655760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610c79336113d3565b80610c838161297d565b915050610c68565b610c93611118565b6001600160a01b0316610ca4610cd2565b6001600160a01b031614610cca5760405162461bcd60e51b815260040161068990612642565b61095d6113f0565b6000546001600160a01b031690565b60145460ff161515600114610d085760405162461bcd60e51b815260040161068990612321565b80600f54610d1691906128e0565b341015610d355760405162461bcd60e51b8152600401610689906127a1565b601054811115610d575760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610d6b336113d3565b80610d758161297d565b915050610d5a565b60606002805461072d90612942565b610d94611118565b6001600160a01b0316826001600160a01b03161415610dc55760405162461bcd60e51b8152600401610689906123d3565b8060066000610dd2611118565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610e16611118565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e4e91906121f2565b60405180910390a35050565b60145460ff1681565b610e74610e6e611118565b836111a7565b610e905760405162461bcd60e51b815260040161068990612750565b610e9c84848484611451565b50505050565b600d6020526000908152604090205460ff1681565b6060610ec282611484565b604051602001610ed2919061215f565b6040516020818303038152906040529050919050565b600e6020526000908152604090205460ff1681565b610f05611118565b6001600160a01b0316610f16610cd2565b6001600160a01b031614610f3c5760405162461bcd60e51b815260040161068990612642565b6014805460ff19811660ff90911615179055565b60105481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b610f8c611118565b6001600160a01b0316610f9d610cd2565b6001600160a01b031614610fc35760405162461bcd60e51b815260040161068990612642565b6001600160a01b038116610fe95760405162461bcd60e51b8152600401610689906122db565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61104c611118565b6001600160a01b031661105d610cd2565b6001600160a01b0316146110835760405162461bcd60e51b815260040161068990612642565b600f55565b611090611118565b6001600160a01b03166110a1610cd2565b6001600160a01b0316146110c75760405162461bcd60e51b815260040161068990612642565b60405133904780156108fc02916000818181858888f193505050501580156109aa573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b148061064257506106428261159d565b3390565b6000908152600360205260409020546001600160a01b0316151590565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061116e82610a6e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006111b28261111c565b6111ce5760405162461bcd60e51b81526004016106899061240a565b60006111d983610a6e565b9050806001600160a01b0316846001600160a01b031614806112145750836001600160a01b0316611209846107b0565b6001600160a01b0316145b8061122457506112248185610f56565b949350505050565b826001600160a01b031661123f82610a6e565b6001600160a01b0316146112655760405162461bcd60e51b815260040161068990612677565b6001600160a01b03821661128b5760405162461bcd60e51b81526004016106899061238f565b6112968383836115dd565b6112a1600082611139565b6001600160a01b03831660009081526004602052604081208054600192906112ca9084906128ff565b90915550506001600160a01b03821660009081526004602052604081208054600192906112f89084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611361610a5e565b61137d5760405162461bcd60e51b815260040161068990612210565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113b3611118565b6040516113c09190612188565b60405180910390a1565b6109aa8161160d565b6113e6816113e1600c61164d565b611651565b6109aa600c61166b565b6113f8610a5e565b156114155760405162461bcd60e51b815260040161068990612456565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113b3611118565b61145c84848461122c565b61146884848484611674565b610e9c5760405162461bcd60e51b815260040161068990612289565b606061148f8261111c565b6114ab5760405162461bcd60e51b8152600401610689906125a5565b6000828152600b6020526040812080546114c490612942565b80601f01602080910402602001604051908101604052809291908181526020018280546114f090612942565b801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b50505050509050600061154e61178f565b905080516000141561156257509050610645565b81511561159457808260405160200161157c929190612130565b60405160208183030381529060405292505050610645565b6112248461179e565b60006001600160e01b031982166380ac58cd60e01b14806115ce57506001600160e01b03198216635b5e139f60e01b145b80610642575061064282611821565b6115e5610a5e565b156116025760405162461bcd60e51b815260040161068990612456565b61071983838361183a565b611616816118c3565b6000818152600b60205260409020805461162f90612942565b1590506109aa576000818152600b602052604081206109aa91611e1f565b5490565b610a5a82826040518060200160405280600081525061196a565b80546001019055565b6000611688846001600160a01b031661199d565b1561178457836001600160a01b031663150b7a026116a4611118565b8786866040518563ffffffff1660e01b81526004016116c6949392919061219c565b602060405180830381600087803b1580156116e057600080fd5b505af1925050508015611710575060408051601f3d908101601f1916820190925261170d9181019061208a565b60015b61176a573d80801561173e576040519150601f19603f3d011682016040523d82523d6000602084013e611743565b606091505b5080516117625760405162461bcd60e51b815260040161068990612289565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611224565b506001949350505050565b60606011805461072d90612942565b60606117a98261111c565b6117c55760405162461bcd60e51b8152600401610689906126c0565b60006117cf61178f565b905060008151116117ef576040518060200160405280600081525061181a565b806117f9846119a3565b60405160200161180a929190612130565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611845838383610719565b6001600160a01b0383166118615761185c81611abe565b611884565b816001600160a01b0316836001600160a01b031614611884576118848382611b02565b6001600160a01b0382166118a05761189b81611b9f565b610719565b826001600160a01b0316826001600160a01b031614610719576107198282611c78565b60006118ce82610a6e565b90506118dc816000846115dd565b6118e7600083611139565b6001600160a01b03811660009081526004602052604081208054600192906119109084906128ff565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6119748383611cbc565b6119816000848484611674565b6107195760405162461bcd60e51b815260040161068990612289565b3b151590565b6060816119c857506040805180820190915260018152600360fc1b6020820152610645565b8160005b81156119f257806119dc8161297d565b91506119eb9050600a836128cc565b91506119cc565b60008167ffffffffffffffff811115611a1b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a45576020820181803683370190505b5090505b841561122457611a5a6001836128ff565b9150611a67600a86612998565b611a729060306128b4565b60f81b818381518110611a9557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ab7600a866128cc565b9450611a49565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611b0f84610b37565b611b1991906128ff565b600083815260086020526040902054909150808214611b6c576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611bb1906001906128ff565b6000838152600a602052604081205460098054939450909284908110611be757634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611c1657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611c5c57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611c8383610b37565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611ce25760405162461bcd60e51b815260040161068990612570565b611ceb8161111c565b15611d085760405162461bcd60e51b815260040161068990612358565b611d14600083836115dd565b6001600160a01b0382166000908152600460205260408120805460019290611d3d9084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611da790612942565b90600052602060002090601f016020900481019282611dc95760008555611e0f565b82601f10611de257805160ff1916838001178555611e0f565b82800160010185558215611e0f579182015b82811115611e0f578251825591602001919060010190611df4565b50611e1b929150611e57565b5090565b508054611e2b90612942565b6000825580601f10611e3d57506109aa565b601f0160209004906000526020600020908101906109aa91905b5b80821115611e1b5760008155600101611e58565b600067ffffffffffffffff80841115611e8757611e876129d8565b604051601f8501601f191681016020018281118282101715611eab57611eab6129d8565b604052848152915081838501861015611ec357600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461064557600080fd5b600060208284031215611f04578081fd5b61181a82611edc565b60008060408385031215611f1f578081fd5b611f2883611edc565b9150611f3660208401611edc565b90509250929050565b600080600060608486031215611f53578081fd5b611f5c84611edc565b9250611f6a60208501611edc565b9150604084013590509250925092565b60008060008060808587031215611f8f578081fd5b611f9885611edc565b9350611fa660208601611edc565b925060408501359150606085013567ffffffffffffffff811115611fc8578182fd5b8501601f81018713611fd8578182fd5b611fe787823560208401611e6c565b91505092959194509250565b60008060408385031215612005578182fd5b61200e83611edc565b9150602083013561201e816129ee565b809150509250929050565b6000806040838503121561203b578182fd5b61204483611edc565b946020939093013593505050565b600060208284031215612063578081fd5b815161181a816129ee565b60006020828403121561207f578081fd5b813561181a816129fc565b60006020828403121561209b578081fd5b815161181a816129fc565b6000602082840312156120b7578081fd5b813567ffffffffffffffff8111156120cd578182fd5b8201601f810184136120dd578182fd5b61122484823560208401611e6c565b6000602082840312156120fd578081fd5b5035919050565b6000815180845261211c816020860160208601612916565b601f01601f19169290920160200192915050565b60008351612142818460208801612916565b835190830190612156818360208801612916565b01949350505050565b60008251612171818460208701612916565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121cf90830184612104565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261181a6020830184612104565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f4e46543a204d696e74206e6f7420737461727465642079657421000000000000604082015260600190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b600082198211156128c7576128c76129ac565b500190565b6000826128db576128db6129c2565b500490565b60008160001904831182151516156128fa576128fa6129ac565b500290565b600082821015612911576129116129ac565b500390565b60005b83811015612931578181015183820152602001612919565b83811115610e9c5750506000910152565b60028104600182168061295657607f821691505b6020821081141561297757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612991576129916129ac565b5060010190565b6000826129a7576129a76129c2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146109aa57600080fd5b6001600160e01b0319811681146109aa57600080fdfea2646970667358221220f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c64264736f6c63430008000033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000b43726f6f646c652041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044341504500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Croodle Ape
Arg [1] : _symbol (string): CAPE
Arg [2] : _mintPrice (uint256): 5000000000000000000
Arg [3] : _maxNFT (uint256): 10000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 43726f6f646c6520417065000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4341504500000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21560:3647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22614:171;;;;;;;;;;-1:-1:-1;22614:171:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25043:161;;;;;;;;;;-1:-1:-1;25043:161:0;;;;;:::i;:::-;;:::i;:::-;;11016:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12046:219::-;;;;;;;;;;-1:-1:-1;12046:219:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11670:370::-;;;;;;;;;;-1:-1:-1;11670:370:0;;;;;:::i;:::-;;:::i;17907:113::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12740:250::-;;;;;;;;;;-1:-1:-1;12740:250:0;;;;;:::i;:::-;;:::i;17645:256::-;;;;;;;;;;-1:-1:-1;17645:256:0;;;;;:::i;:::-;;:::i;23180: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;23447:98::-;;;;;;;;;;-1:-1:-1;23447:98:0;;;;;:::i;:::-;;:::i;5793:86::-;;;;;;;;;;;;;:::i;10771:239::-;;;;;;;;;;-1:-1:-1;10771:239:0;;;;;:::i;:::-;;:::i;21881:24::-;;;;;;;;;;;;;:::i;21940:21::-;;;;;;;;;;;;;:::i;10557:208::-;;;;;;;;;;-1:-1:-1;10557:208:0;;;;;:::i;:::-;;:::i;6877:148::-;;;;;;;;;;;;;:::i;23697:229::-;;;;;;;;;;-1:-1:-1;23697:229:0;;;;;:::i;:::-;;:::i;23113:61::-;;;;;;;;;;;;;:::i;6658:87::-;;;;;;;;;;;;;:::i;23932:374::-;;;;;;:::i;:::-;;:::i;11122:104::-;;;;;;;;;;;;;:::i;12271:293::-;;;;;;;;;;-1:-1:-1;12271:293:0;;;;;:::i;:::-;;:::i;22024:31::-;;;;;;;;;;;;;:::i;13153:285::-;;;;;;;;;;-1:-1:-1;13153:285:0;;;;;:::i;:::-;;:::i;21768:50::-;;;;;;;;;;-1:-1:-1;21768:50:0;;;;;:::i;:::-;;:::i;22418:190::-;;;;;;;;;;-1:-1:-1;22418:190:0;;;;;:::i;:::-;;:::i;21825:49::-;;;;;;;;;;-1:-1:-1;21825:49:0;;;;;:::i;:::-;;:::i;23251:84::-;;;;;;;;;;;;;:::i;21912:21::-;;;;;;;;;;;;;:::i;12570:164::-;;;;;;;;;;-1:-1:-1;12570:164:0;;;;;:::i;:::-;;:::i;7031:244::-;;;;;;;;;;-1:-1:-1;7031:244:0;;;;;:::i;:::-;;:::i;23341:100::-;;;;;;;;;;-1:-1:-1;23341:100:0;;;;;:::i;:::-;;:::i;24621:112::-;;;;;;;;;;;;;:::i;22614:171::-;22717:4;22741:36;22765:11;22741:23;:36::i;:::-;22734:43;;22614:171;;;;:::o;25043:161::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;;;;;;;;;25152:12:::1;-1:-1:-1::0;;;;;25146:28:0::1;;25175:7;:5;:7::i;:::-;25184:11;25146:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25043:161:::0;;:::o;11016:100::-;11070:13;11103:5;11096:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11016:100;:::o;12046:219::-;12122:7;12150:16;12158:7;12150;:16::i;:::-;12142:73;;;;-1:-1:-1;;;12142:73:0;;;;;;;:::i;:::-;-1:-1:-1;12233:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12233:24:0;;12046:219::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;;;;;;;:::i;:::-;11893:5;-1:-1:-1;;;;;11877:21:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11877:21:0;;:62;;;;11902:37;11919:5;11926:12;:10;:12::i;11902:37::-;11869:131;;;;-1:-1:-1;;;11869:131:0;;;;;;;:::i;:::-;12011:21;12020:2;12024:7;12011:8;:21::i;17907:113::-;17995:10;:17;17907:113;:::o;12740:250::-;12848:41;12867:12;:10;:12::i;:::-;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;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17867:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;17645:256::o;23180:65::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23227:10:::1;:8;:10::i;:::-;23180:65::o:0;12996:151::-;13100:39;13117:4;13123:2;13127:7;13100:39;;;;;;;;;;;;:16;:39::i;21361:192::-;21426:41;21445:12;:10;:12::i;21426:41::-;21418:102;;;;-1:-1:-1;;;21418:102:0;;;;;;;:::i;:::-;21531:14;21537:7;21531:5;:14::i;:::-;21361:192;:::o;18026:233::-;18101:7;18137:30;:28;:30::i;:::-;18129:5;:38;18121:95;;;;-1:-1:-1;;;18121:95:0;;;;;;;:::i;:::-;18234:10;18245:5;18234:17;;;;;;-1:-1:-1;;;18234:17:0;;;;;;;;;;;;;;;;;18227:24;;18026:233;;;:::o;23447:98::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23519:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23447:98:::0;:::o;5793:86::-;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;;5793:86::o;10771:239::-;10843:7;10879:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10879:16:0;10914:19;10906:73;;;;-1:-1:-1;;;10906:73:0;;;;;;;:::i;21881:24::-;;;;:::o;21940:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10557:208::-;10629:7;-1:-1:-1;;;;;10657:19:0;;10649:74;;;;-1:-1:-1;;;10649:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10741:16:0;;;;;:9;:16;;;;;;;10557:208::o;6877:148::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;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;23697:229::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23781:6:::1;;23771;:16;;23763:57;;;;-1:-1:-1::0;;;23763:57:0::1;;;;;;;:::i;:::-;23836:9;23831:88;23855:6;23851:1;:10;23831:88;;;23883:24;23896:10;23883:12;:24::i;:::-;23863:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23831:88;;23113:61:::0;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23158:8:::1;:6;:8::i;6658:87::-:0;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;6658:87;:::o;23932:374::-;23999:11;;;;:19;;:11;:19;23991:58;;;;-1:-1:-1;;;23991:58:0;;;;;;;:::i;:::-;24093:6;24081:9;;:18;;;;:::i;:::-;24068:9;:31;;24060:72;;;;-1:-1:-1;;;24060:72:0;;;;;;;:::i;:::-;24161:6;;24151;:16;;24143:57;;;;-1:-1:-1;;;24143:57:0;;;;;;;:::i;:::-;24216:9;24211:88;24235:6;24231:1;:10;24211:88;;;24263:24;24276:10;24263:12;:24::i;:::-;24243:3;;;;:::i;:::-;;;;24211:88;;11122:104;11178:13;11211:7;11204:14;;;;;:::i;12271:293::-;12386:12;:10;:12::i;:::-;-1:-1:-1;;;;;12374:24:0;:8;-1:-1:-1;;;;;12374:24:0;;;12366:62;;;;-1:-1:-1;;;12366:62:0;;;;;;;:::i;:::-;12484:8;12439:18;:32;12458:12;:10;:12::i;:::-;-1:-1:-1;;;;;12439:32:0;;;;;;;;;;;;;;;;;-1:-1:-1;12439:32:0;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;12439:53:0;;;;;;;;;;;12523:12;:10;:12::i;:::-;-1:-1:-1;;;;;12508:48:0;;12547:8;12508:48;;;;;;:::i;:::-;;;;;;;;12271:293;;:::o;22024:31::-;;;;;;:::o;13153:285::-;13285:41;13304:12;:10;:12::i;:::-;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;21768:50::-;;;;;;;;;;;;;;;:::o;22418:190::-;22509:13;22566:23;22581:7;22566:14;:23::i;:::-;22549:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;22535:65;;22418:190;;;:::o;21825:49::-;;;;;;;;;;;;;;;:::o;23251:84::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23316:11:::1;::::0;;-1:-1:-1;;23301:26:0;::::1;23316:11;::::0;;::::1;23315:12;23301:26;::::0;;23251:84::o;21912:21::-;;;;:::o;12570:164::-;-1:-1:-1;;;;;12691:25:0;;;12667:4;12691:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;12570:164::o;7031:244::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7120:22:0;::::1;7112:73;;;;-1:-1:-1::0;;;7112:73:0::1;;;;;;;:::i;:::-;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;23341:100::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23411:9:::1;:22:::0;23341:100::o;24621:112::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;24674:51:::1;::::0;24682:10:::1;::::0;24703:21:::1;24674:51:::0;::::1;;;::::0;::::1;::::0;;;24703:21;24682:10;24674: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;5366:98::-;5446:10;5366:98;:::o;13722:127::-;13787:4;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;:30;;;13722:127::o;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;13973:16;13981:7;13973;:16::i;:::-;13965:73;;;;-1:-1:-1;;;13965:73:0;;;;;;;:::i;:::-;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;;;;14162:32;14179:5;14186:7;14162:16;:32::i;:::-;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;;;;;;;:::i;:::-;-1:-1:-1;;;;;15487:16:0;;15479:65;;;;-1:-1:-1;;;15479:65:0;;;;;;;:::i;:::-;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::-;6026:8;:6;:8::i;:::-;6018:41;;;;-1:-1:-1;;;6018:41:0;;;;;;;:::i;:::-;6278:5:::1;6268:15:::0;;-1:-1:-1;;;;6268:15:0::1;::::0;;6299:22:::1;6308:12;:10;:12::i;:::-;6299:22;;;;;;:::i;:::-;;;;;;;;6209:120::o:0;22791:115::-;22878:20;22890:7;22878:11;:20::i;23551:140::-;23605:40;23615:2;23619:25;:15;:23;:25::i;:::-;23605:9;:40::i;:::-;23656:27;:15;:25;:27::i;6085:118::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;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;:10;:12::i;13444:272::-:0;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::-;20411:13;20445:16;20453:7;20445;:16::i;:::-;20437:78;;;;-1:-1:-1;;;20437:78:0;;;;;;;:::i;:::-;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;-1:-1:-1;20668:16:0;;20624:72;20710:23;;:27;20706:108;;20785:4;20791:9;20768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20754:48;;;;;;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;;;;10507:36;10531:11;10507:23;:36::i;22912:195::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;23054:45:::1;23081:4;23087:2;23091:7;23054: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;3415:114::-;3507:14;;3415:114::o;14209:110::-;14285:26;14295:2;14299:7;14285:26;;;;;;;;;;;;:9;:26::i;3535:127::-;3624:19;;3642:1;3624:19;;;3535:127::o;15963:760::-;16075:4;16096:15;:2;-1:-1:-1;;;;;16096:13:0;;:15::i;:::-;16092:624;;;16148:2;-1:-1:-1;;;;;16132:36:0;;16169:12;:10;:12::i;:::-;16183:4;16189:7;16198:5;16132:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16132:72:0;;;;;;;;-1:-1:-1;;16132:72:0;;;;;;;;;;;;:::i;:::-;;;16128:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16378:13:0;;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;22312:100::-;22364:13;22397:7;22390:14;;;;;:::i;11232:332::-;11305:13;11339:16;11347:7;11339;:16::i;:::-;11331:76;;;;-1:-1:-1;;;11331:76:0;;;;;;;:::i;:::-;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;9571:157::-;-1:-1:-1;;;;;;9680:40:0;;-1:-1:-1;;;9680:40:0;9571:157;;;:::o;18265:553::-;18375:45;18402:4;18408:2;18412:7;18375:26;:45::i;:::-;-1:-1:-1;;;;;18435:18:0;;18431:187;;18470:40;18502:7;18470:31;:40::i;:::-;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;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;85:172::-;203:20;241:8;;;85:172::o;3995:532::-;4051:13;4081:10;4077:53;;-1:-1:-1;4108:10:0;;;;;;;;;;;;-1:-1:-1;;;4108:10:0;;;;;;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;;;;;;-1:-1:-1;;;4306:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;;;;;;-1:-1:-1;;;4394:14:0;;;;;;;;;;;;:56;-1:-1:-1;;;;;4394:56:0;;;;;;;;-1:-1:-1;4465:11:0;4474:2;4465:11;;:::i;:::-;;;4334:154;;19051:164;19155:10;:17;;19128:24;;;;:15;:24;;;;;:44;;;19183:24;;;;;;;;;;;;19051:164::o;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;;;;-1:-1:-1;;;19993:26:0;;;;;;;;;;;;;;;;;19971:48;;20055:11;20030:10;20041;20030:22;;;;;;-1:-1:-1;;;20030:22:0;;;;;;;;;;;;;;;;;;;;:36;;;;20077:28;;;:15;:28;;;;;;;:41;;;20136:24;;;;;20129:31;20171:10;:16;;;;;-1:-1:-1;;;20171:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;:::i;:::-;14734:16;14742:7;14734;:16::i;:::-;14733:17;14725:58;;;;-1:-1:-1;;;14725:58:0;;;;;;;:::i;:::-;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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:607:1;;110:18;151:2;143:6;140:14;137:2;;;157:18;;:::i;:::-;206:2;200:9;279:2;256:17;;-1:-1:-1;;252:31:1;240:44;;286:4;236:55;306:18;;;326:22;;;303:46;300:2;;;352:18;;:::i;:::-;388:2;381:22;436;;;421:6;-1:-1:-1;421:6:1;473:16;;;470:25;-1:-1:-1;467:2:1;;;508:1;505;498:12;467:2;558:6;553:3;546:4;538:6;534:17;521:44;613:1;606:4;597:6;589;585:19;581:30;574:41;;;90:531;;;;;:::o;626:175::-;696:20;;-1:-1:-1;;;;;745:31:1;;735:42;;725:2;;791:1;788;781:12;806:198;;918:2;906:9;897:7;893:23;889:32;886:2;;;939:6;931;924:22;886:2;967:31;988:9;967:31;:::i;1009:274::-;;;1138:2;1126:9;1117:7;1113:23;1109:32;1106:2;;;1159:6;1151;1144:22;1106:2;1187:31;1208:9;1187:31;:::i;:::-;1177:41;;1237:40;1273:2;1262:9;1258:18;1237:40;:::i;:::-;1227:50;;1096:187;;;;;:::o;1288:342::-;;;;1434:2;1422:9;1413:7;1409:23;1405:32;1402:2;;;1455:6;1447;1440:22;1402:2;1483:31;1504:9;1483:31;:::i;:::-;1473:41;;1533:40;1569:2;1558:9;1554:18;1533:40;:::i;:::-;1523:50;;1620:2;1609:9;1605:18;1592:32;1582:42;;1392:238;;;;;:::o;1635:702::-;;;;;1807:3;1795:9;1786:7;1782:23;1778:33;1775:2;;;1829:6;1821;1814:22;1775:2;1857:31;1878:9;1857:31;:::i;:::-;1847:41;;1907:40;1943:2;1932:9;1928:18;1907:40;:::i;:::-;1897:50;;1994:2;1983:9;1979:18;1966:32;1956:42;;2049:2;2038:9;2034:18;2021:32;2076:18;2068:6;2065:30;2062:2;;;2113:6;2105;2098:22;2062:2;2141:22;;2194:4;2186:13;;2182:27;-1:-1:-1;2172:2:1;;2228:6;2220;2213:22;2172:2;2256:75;2323:7;2318:2;2305:16;2300:2;2296;2292:11;2256:75;:::i;:::-;2246:85;;;1765:572;;;;;;;:::o;2342:329::-;;;2468:2;2456:9;2447:7;2443:23;2439:32;2436:2;;;2489:6;2481;2474:22;2436:2;2517:31;2538:9;2517:31;:::i;:::-;2507:41;;2598:2;2587:9;2583:18;2570:32;2611:30;2635:5;2611:30;:::i;:::-;2660:5;2650:15;;;2426:245;;;;;:::o;2676:266::-;;;2805:2;2793:9;2784:7;2780:23;2776:32;2773:2;;;2826:6;2818;2811:22;2773:2;2854:31;2875:9;2854:31;:::i;:::-;2844:41;2932:2;2917:18;;;;2904:32;;-1:-1:-1;;;2763:179:1:o;2947:257::-;;3067:2;3055:9;3046:7;3042:23;3038:32;3035:2;;;3088:6;3080;3073:22;3035:2;3125:9;3119:16;3144:30;3168:5;3144:30;:::i;3209:257::-;;3320:2;3308:9;3299:7;3295:23;3291:32;3288:2;;;3341:6;3333;3326:22;3288:2;3385:9;3372:23;3404:32;3430:5;3404:32;:::i;3471:261::-;;3593:2;3581:9;3572:7;3568:23;3564:32;3561:2;;;3614:6;3606;3599:22;3561:2;3651:9;3645:16;3670:32;3696:5;3670:32;:::i;3737:482::-;;3859:2;3847:9;3838:7;3834:23;3830:32;3827:2;;;3880:6;3872;3865:22;3827:2;3925:9;3912:23;3958:18;3950:6;3947:30;3944:2;;;3995:6;3987;3980:22;3944:2;4023:22;;4076:4;4068:13;;4064:27;-1:-1:-1;4054:2:1;;4110:6;4102;4095:22;4054:2;4138:75;4205:7;4200:2;4187:16;4182:2;4178;4174:11;4138:75;:::i;4224:190::-;;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4357:6;4349;4342:22;4304:2;-1:-1:-1;4385:23:1;;4294:120;-1:-1:-1;4294:120:1:o;4419:259::-;;4500:5;4494:12;4527:6;4522:3;4515:19;4543:63;4599:6;4592:4;4587:3;4583:14;4576:4;4569:5;4565:16;4543:63;:::i;:::-;4660:2;4639:15;-1:-1:-1;;4635:29:1;4626:39;;;;4667:4;4622:50;;4470:208;-1:-1:-1;;4470:208:1:o;4683:470::-;;4900:6;4894:13;4916:53;4962:6;4957:3;4950:4;4942:6;4938:17;4916:53;:::i;:::-;5032:13;;4991:16;;;;5054:57;5032:13;4991:16;5088:4;5076:17;;5054:57;:::i;:::-;5127:20;;4870:283;-1:-1:-1;;;;4870:283:1:o;5158:443::-;;5428:6;5422:13;5444:53;5490:6;5485:3;5478:4;5470:6;5466:17;5444:53;:::i;:::-;-1:-1:-1;;;5519:16:1;;5544:22;;;-1:-1:-1;5593:1:1;5582:13;;5398:203;-1:-1:-1;5398:203:1:o;5606:::-;-1:-1:-1;;;;;5770:32:1;;;;5752:51;;5740:2;5725:18;;5707:102::o;5814:490::-;-1:-1:-1;;;;;6083:15:1;;;6065:34;;6135:15;;6130:2;6115:18;;6108:43;6182:2;6167:18;;6160:34;;;6230:3;6225:2;6210:18;;6203:31;;;5814:490;;6251:47;;6278:19;;6270:6;6251:47;:::i;:::-;6243:55;6017:287;-1:-1:-1;;;;;;6017:287:1:o;6309:274::-;-1:-1:-1;;;;;6501:32:1;;;;6483:51;;6565:2;6550:18;;6543:34;6471:2;6456:18;;6438:145::o;6588:187::-;6753:14;;6746:22;6728:41;;6716:2;6701:18;;6683:92::o;6780:221::-;;6929:2;6918:9;6911:21;6949:46;6991:2;6980:9;6976:18;6968:6;6949:46;:::i;7006:344::-;7208:2;7190:21;;;7247:2;7227:18;;;7220:30;-1:-1:-1;;;7281:2:1;7266:18;;7259:50;7341:2;7326:18;;7180:170::o;7355:407::-;7557:2;7539:21;;;7596:2;7576:18;;;7569:30;7635:34;7630:2;7615:18;;7608:62;-1:-1:-1;;;7701:2:1;7686:18;;7679:41;7752:3;7737:19;;7529:233::o;7767:414::-;7969:2;7951:21;;;8008:2;7988:18;;;7981:30;8047:34;8042:2;8027:18;;8020:62;-1:-1:-1;;;8113:2:1;8098:18;;8091:48;8171:3;8156:19;;7941:240::o;8186:402::-;8388:2;8370:21;;;8427:2;8407:18;;;8400:30;8466:34;8461:2;8446:18;;8439:62;-1:-1:-1;;;8532:2:1;8517:18;;8510:36;8578:3;8563:19;;8360:228::o;8593:350::-;8795:2;8777:21;;;8834:2;8814:18;;;8807:30;8873:28;8868:2;8853:18;;8846:56;8934:2;8919:18;;8767:176::o;8948:352::-;9150:2;9132:21;;;9189:2;9169:18;;;9162:30;9228;9223:2;9208:18;;9201:58;9291:2;9276:18;;9122:178::o;9305:400::-;9507:2;9489:21;;;9546:2;9526:18;;;9519:30;9585:34;9580:2;9565:18;;9558:62;-1:-1:-1;;;9651:2:1;9636:18;;9629:34;9695:3;9680:19;;9479:226::o;9710:349::-;9912:2;9894:21;;;9951:2;9931:18;;;9924:30;9990:27;9985:2;9970:18;;9963:55;10050:2;10035:18;;9884:175::o;10064:408::-;10266:2;10248:21;;;10305:2;10285:18;;;10278:30;10344:34;10339:2;10324:18;;10317:62;-1:-1:-1;;;10410:2:1;10395:18;;10388:42;10462:3;10447:19;;10238:234::o;10477:340::-;10679:2;10661:21;;;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10752:2:1;10737:18;;10730:46;10808:2;10793:18;;10651:166::o;10822:420::-;11024:2;11006:21;;;11063:2;11043:18;;;11036:30;11102:34;11097:2;11082:18;;11075:62;11173:26;11168:2;11153:18;;11146:54;11232:3;11217:19;;10996:246::o;11247:406::-;11449:2;11431:21;;;11488:2;11468:18;;;11461:30;11527:34;11522:2;11507:18;;11500:62;-1:-1:-1;;;11593:2:1;11578:18;;11571:40;11643:3;11628:19;;11421:232::o;11658:405::-;11860:2;11842:21;;;11899:2;11879:18;;;11872:30;11938:34;11933:2;11918:18;;11911:62;-1:-1:-1;;;12004:2:1;11989:18;;11982:39;12053:3;12038:19;;11832:231::o;12068:356::-;12270:2;12252:21;;;12289:18;;;12282:30;12348:34;12343:2;12328:18;;12321:62;12415:2;12400:18;;12242:182::o;12429:413::-;12631:2;12613:21;;;12670:2;12650:18;;;12643:30;12709:34;12704:2;12689:18;;12682:62;-1:-1:-1;;;12775:2:1;12760:18;;12753:47;12832:3;12817:19;;12603:239::o;12847:408::-;13049:2;13031:21;;;13088:2;13068:18;;;13061:30;13127:34;13122:2;13107:18;;13100:62;-1:-1:-1;;;13193:2:1;13178:18;;13171:42;13245:3;13230:19;;13021:234::o;13260:356::-;13462:2;13444:21;;;13481:18;;;13474:30;13540:34;13535:2;13520:18;;13513:62;13607:2;13592:18;;13434:182::o;13621:405::-;13823:2;13805:21;;;13862:2;13842:18;;;13835:30;13901:34;13896:2;13881:18;;13874:62;-1:-1:-1;;;13967:2:1;13952:18;;13945:39;14016:3;14001:19;;13795:231::o;14031:411::-;14233:2;14215:21;;;14272:2;14252:18;;;14245:30;14311:34;14306:2;14291:18;;14284:62;-1:-1:-1;;;14377:2:1;14362:18;;14355:45;14432:3;14417:19;;14205:237::o;14447:397::-;14649:2;14631:21;;;14688:2;14668:18;;;14661:30;14727:34;14722:2;14707:18;;14700:62;-1:-1:-1;;;14793:2:1;14778:18;;14771:31;14834:3;14819:19;;14621:223::o;14849:413::-;15051:2;15033:21;;;15090:2;15070:18;;;15063:30;15129:34;15124:2;15109:18;;15102:62;-1:-1:-1;;;15195:2:1;15180:18;;15173:47;15252:3;15237:19;;15023:239::o;15267:352::-;15469:2;15451:21;;;15508:2;15488:18;;;15481:30;15547;15542:2;15527:18;;15520:58;15610:2;15595:18;;15441:178::o;15624:408::-;15826:2;15808:21;;;15865:2;15845:18;;;15838:30;15904:34;15899:2;15884:18;;15877:62;-1:-1:-1;;;15970:2:1;15955:18;;15948:42;16022:3;16007:19;;15798:234::o;16037:352::-;16239:2;16221:21;;;16278:2;16258:18;;;16251:30;16317;16312:2;16297:18;;16290:58;16380:2;16365:18;;16211:178::o;16394:412::-;16596:2;16578:21;;;16635:2;16615:18;;;16608:30;16674:34;16669:2;16654:18;;16647:62;-1:-1:-1;;;16740:2:1;16725:18;;16718:46;16796:3;16781:19;;16568:238::o;16811:177::-;16957:25;;;16945:2;16930:18;;16912:76::o;16993:128::-;;17064:1;17060:6;17057:1;17054:13;17051:2;;;17070:18;;:::i;:::-;-1:-1:-1;17106:9:1;;17041:80::o;17126:120::-;;17192:1;17182:2;;17197:18;;:::i;:::-;-1:-1:-1;17231:9:1;;17172:74::o;17251:168::-;;17357:1;17353;17349:6;17345:14;17342:1;17339:21;17334:1;17327:9;17320:17;17316:45;17313:2;;;17364:18;;:::i;:::-;-1:-1:-1;17404:9:1;;17303:116::o;17424:125::-;;17492:1;17489;17486:8;17483:2;;;17497:18;;:::i;:::-;-1:-1:-1;17534:9:1;;17473:76::o;17554:258::-;17626:1;17636:113;17650:6;17647:1;17644:13;17636:113;;;17726:11;;;17720:18;17707:11;;;17700:39;17672:2;17665:10;17636:113;;;17767:6;17764:1;17761:13;17758:2;;;-1:-1:-1;;17802:1:1;17784:16;;17777:27;17607:205::o;17817:380::-;17902:1;17892:12;;17949:1;17939:12;;;17960:2;;18014:4;18006:6;18002:17;17992:27;;17960:2;18067;18059:6;18056:14;18036:18;18033:38;18030:2;;;18113:10;18108:3;18104:20;18101:1;18094:31;18148:4;18145:1;18138:15;18176:4;18173:1;18166:15;18030:2;;17872:325;;;:::o;18202:135::-;;-1:-1:-1;;18262:17:1;;18259:2;;;18282:18;;:::i;:::-;-1:-1:-1;18329:1:1;18318:13;;18249:88::o;18342:112::-;;18400:1;18390:2;;18405:18;;:::i;:::-;-1:-1:-1;18439:9:1;;18380:74::o;18459:127::-;18520:10;18515:3;18511:20;18508:1;18501:31;18551:4;18548:1;18541:15;18575:4;18572:1;18565:15;18591:127;18652:10;18647:3;18643:20;18640:1;18633:31;18683:4;18680:1;18673:15;18707:4;18704:1;18697:15;18723:127;18784:10;18779:3;18775:20;18772:1;18765:31;18815:4;18812:1;18805:15;18839:4;18836:1;18829:15;18855:120;18943:5;18936:13;18929:21;18922:5;18919:32;18909:2;;18965:1;18962;18955:12;18980:133;-1:-1:-1;;;;;;19056:32:1;;19046:43;;19036:2;;19103:1;19100;19093:12

Swarm Source

ipfs://f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c642
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
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.