ERC-721
Overview
Max Total Supply
11 BigBSigned
Holders
9
Total Transfers
-
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
BigBSigned
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-11-17 */ // SPDX-License-Identifier:UNLICENSED pragma solidity ^0.8.9; library Strings { 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); uint256 index = digits - 1; temp = value; while (temp != 0) { buffer[index--] = bytes1(uint8(48 + temp % 10)); temp /= 10; } return string(buffer); } } library EnumerableMap { struct MapEntry { bytes32 _key; bytes32 _value; } struct Map { MapEntry[] _entries; mapping (bytes32 => uint256) _indexes; } function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) { uint256 keyIndex = map._indexes[key]; if (keyIndex == 0) { // Equivalent to !contains(map, key) map._entries.push(MapEntry({ _key: key, _value: value })); map._indexes[key] = map._entries.length; return true; } else { map._entries[keyIndex - 1]._value = value; return false; } } function _remove(Map storage map, bytes32 key) private returns (bool) { uint256 keyIndex = map._indexes[key]; if (keyIndex != 0) { // Equivalent to contains(map, key) uint256 toDeleteIndex = keyIndex - 1; uint256 lastIndex = map._entries.length - 1; MapEntry storage lastEntry = map._entries[lastIndex]; map._entries[toDeleteIndex] = lastEntry; map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based map._entries.pop(); delete map._indexes[key]; return true; } else { return false; } } function _contains(Map storage map, bytes32 key) private view returns (bool) { return map._indexes[key] != 0; } function _length(Map storage map) private view returns (uint256) { return map._entries.length; } function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) { require(map._entries.length > index, "EnumerableMap: index out of bounds"); MapEntry storage entry = map._entries[index]; return (entry._key, entry._value); } function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) { uint256 keyIndex = map._indexes[key]; if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key) return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based } function _get(Map storage map, bytes32 key) private view returns (bytes32) { uint256 keyIndex = map._indexes[key]; require(keyIndex != 0, "EnumerableMap: nonexistent key"); // Equivalent to contains(map, key) return map._entries[keyIndex - 1]._value; // All indexes are 1-based } function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) { uint256 keyIndex = map._indexes[key]; require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key) return map._entries[keyIndex - 1]._value; // All indexes are 1-based } struct UintToAddressMap { Map _inner; } function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) { return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); } function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) { return _remove(map._inner, bytes32(key)); } function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) { return _contains(map._inner, bytes32(key)); } function length(UintToAddressMap storage map) internal view returns (uint256) { return _length(map._inner); } function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) { (bytes32 key, bytes32 value) = _at(map._inner, index); return (uint256(key), address(uint160(uint256(value)))); } function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) { (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key)); return (success, address(uint160(uint256(value)))); } function get(UintToAddressMap storage map, uint256 key) internal view returns (address) { return address(uint160(uint256(_get(map._inner, bytes32(key))))); } function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) { return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage)))); } } library EnumerableSet { struct Set { bytes32[] _values; mapping (bytes32 => uint256) _indexes; } function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; return true; } else { return false; } } function _remove(Set storage set, bytes32 value) private returns (bool) { uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; bytes32 lastvalue = set._values[lastIndex]; set._values[toDeleteIndex] = lastvalue; set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based set._values.pop(); delete set._indexes[value]; return true; } else { return false; } } function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } struct Bytes32Set { Set _inner; } function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } struct AddressSet { Set _inner; } function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } struct UintSet { Set _inner; } function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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 _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); } } } } interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; mapping(bytes4 => bool) private _supportedInterfaces; constructor () { _registerInterface(_INTERFACE_ID_ERC165); } function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return _supportedInterfaces[interfaceId]; } function _registerInterface(bytes4 interfaceId) internal virtual { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } } 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); event URI(string value, uint256 indexed id); event tokenBaseURI(string value); event NameChanged(uint256 indexed tokenId, string indexed name); 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 IERC721Enumerable is IERC721 { function AssignedNFTs() external view returns (uint256); } 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 Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable { using Address for address; using EnumerableSet for EnumerableSet.UintSet; using EnumerableMap for EnumerableMap.UintToAddressMap; using Strings for uint256; bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; // Mapping from token ID to account balances mapping (address => EnumerableSet.UintSet) private _holderTokens; EnumerableMap.UintToAddressMap private _tokenOwners; // Mapping from tokenId to operator approvals mapping (uint256 => address) private _tokenApprovals; // Mapping from account to operator approvals mapping (address => mapping (address => bool)) private _operatorApprovals; mapping (uint256 => string) private _tokenName; // Mapping if certain name string has already been reserved mapping (string => bool) private _nameReserved; string private _name; string private _symbol; // mapping for token URIs mapping(uint256 => string) private _tokenURIs; address public operator; string private _baseURI; uint256 public totalSupply; uint256 public royaltyFee; bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd; bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f; bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; totalSupply = 11; royaltyFee = 5; _registerInterface(_INTERFACE_ID_ERC721); _registerInterface(_INTERFACE_ID_ERC721_METADATA); _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE); } /** @notice Get the Token balance of an account's. @param owner The address of the token holder @return The account's balance of the Token type requested */ function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _holderTokens[owner].length(); } /** @notice Get the owner of tokenId. @param tokenId The tokenId of the token holder @return The current owner of the requested tokenId */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { return _tokenOwners.get(tokenId, "ERC721: owner query for nonexistent token"); } 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 base = _baseURI; string memory _tokenURI = _tokenURIs[tokenId]; if (bytes(base).length == 0) { return _tokenURI; } if (bytes(_tokenURI).length > 0) { return string(abi.encodePacked(base, _tokenURI)); } return string(abi.encodePacked(base, tokenId.toString())); } function baseURI() public view virtual returns (string memory) { return _baseURI; } function AssignedNFTs() public view virtual override returns (uint256) { return _tokenOwners.length(); } 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 || ERC721.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]; } /** @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens. @dev MUST emit the ApprovalForAll event on success. @param _operator Address to add to the set of authorized operators @param approved True if the operator is approved, false to revoke approval */ 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); } /** @notice Queries the approval status of an operator for a given owner. @param owner The owner of the Tokens @param _operator Address of authorized operator @return True if the operator is approved, false if not */ 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, ""); } /** @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call). @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). MUST revert if `_to` is the zero address. MUST revert if balance of holder for token `_id` is lower than the `_value` sent. MUST revert on any other error. MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard). After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC721Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). @param from Source address @param to Target address @param tokenId ID of the token type. @param _data Additional data with no specified format, MUST be sent unaltered in call to `onERC721Received` on `_to` */ 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 _tokenOwners.contains(tokenId); } 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 || ERC721.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); _operatorApprovals[to][msg.sender] = true; emit ApprovalForAll(to, msg.sender, true); 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), msg.sender, tokenId); _holderTokens[to].add(tokenId); _tokenOwners.set(tokenId, to); emit Transfer(address(0), to, tokenId); } /** * @dev Internal function to burn a specific token. * Reverts if the token does not exist. * Deprecated, use {ERC721-_burn} instead. * required msg.sender must be owner of the token. * @param tokenId uint256 Token being burned */ function _burn(uint256 tokenId) internal virtual { require(msg.sender == ownerOf(tokenId),"ERC721: caller doesn't have the given tokenId"); address owner = ERC721.ownerOf(tokenId); // internal owner _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); if (bytes(_tokenURIs[tokenId]).length != 0) { delete _tokenURIs[tokenId]; } _holderTokens[owner].remove(tokenId); _tokenOwners.remove(tokenId); _nameReserved[toLower(_tokenName[tokenId])] = false; 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"); // internal owner require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _holderTokens[from].remove(tokenId); _holderTokens[to].add(tokenId); _tokenOwners.set(tokenId, to); emit Transfer(from, to, tokenId); } /** * @dev Internal function to set the token URI for a given token. * Reverts if the token ID does not exist. * @param tokenId uint256 ID of the token to set its URI * @param _tokenURI string URI to assign */ function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token"); _tokenURIs[tokenId] = _tokenURI; emit URI(_tokenURI, tokenId); } function _setBaseURI(string memory baseURI_) internal virtual { _baseURI = baseURI_; emit tokenBaseURI(baseURI_); } function changeName(uint256 tokenId, string memory newName) public { require(msg.sender == operator, "ERC721: caller is not have the operator Role"); require(_exists(tokenId),"ERC721: nonexistent token"); require(sha256(bytes(newName)) != sha256(bytes(_tokenName[tokenId])), "New name is same as the current one"); require(isNameReserved(newName) == false, "Name already reserved"); // If already named, dereserve old name if (bytes(_tokenName[tokenId]).length > 0) { toggleReserveName(_tokenName[tokenId], false); } toggleReserveName(newName, true); _tokenName[tokenId] = newName; emit NameChanged(tokenId, newName); } function tokenName(uint256 tokenId) public view returns(string memory) { require(_exists(tokenId),"ERC721: nonexistent token"); return _tokenName[tokenId]; } /** * @dev Returns if the name has been reserved. */ function isNameReserved(string memory nameString) public view returns (bool) { return _nameReserved[toLower(nameString)]; } /** * @dev Reserves the name if isReserve is set to true, de-reserves if set to false */ function toggleReserveName(string memory str, bool isReserve) internal { _nameReserved[toLower(str)] = isReserve; } /** * @dev Converts the string to lowercase */ function toLower(string memory str) internal pure returns (string memory){ bytes memory bStr = bytes(str); bytes memory bLower = new bytes(bStr.length); for (uint i = 0; i < bStr.length; i++) { // Uppercase character if ((uint8(bStr[i]) >= 65) && (uint8(bStr[i]) <= 90)) { bLower[i] = bytes1(uint8(bStr[i]) + 32); } else { bLower[i] = bStr[i]; } } return string(bLower); } function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) { if (!to.isContract()) { return true; } bytes memory returndata = to.functionCall(abi.encodeWithSelector( IERC721Receiver(to).onERC721Received.selector, _msgSender(), from, tokenId, _data ), "ERC721: transfer to non ERC721Receiver implementer"); bytes4 retval = abi.decode(returndata, (bytes4)); return (retval == _ERC721_RECEIVED); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner } function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { } } interface IBaseNFT721 { function createCollectible(address creator, string memory tokenURI) external returns (uint256); function setRoyaltyFee(uint256 _royalty) external returns(bool); } contract BigBSigned is ERC721 { address public owner; uint256 public tokenCount; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event OperatorChanged(address indexed previousOperator, address indexed newOperator); constructor (string memory name, string memory symbol, string memory tokenURIPrefix, address _operator) ERC721 (name, symbol) { owner = msg.sender; tokenCount = 1; _setBaseURI(tokenURIPrefix); setOperator(_operator); } modifier onlyOwner() { require(owner == msg.sender, "Ownable: caller is not the owner"); _; } function ownerTransfership(address newOwner) public onlyOwner returns(bool) { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; return true; } function setOperator(address _operator) public onlyOwner returns(bool) { require(_operator!= address(0),"Operator: operator is the Zero address"); emit OperatorChanged(operator, _operator); operator = _operator; return true; } /** * @dev Internal function to mint a new token. * Reverts if the given token ID already exists. * @param tokenURI string memory URI of the token to be minted. * @param creator address receiver of the token to be transfer. */ function createCollectible(address creator, string memory tokenURI) public returns (uint256) { require(msg.sender == operator,"ERC721: caller doesn't operator role"); require( tokenCount <= totalSupply,"ERC721: Minting is not available"); uint256 tokenId = tokenCount; _safeMint(creator, tokenId); _setTokenURI(tokenId, tokenURI); tokenCount += 1; return tokenId; } function setBaseURI(string memory _baseURI) public onlyOwner { _setBaseURI(_baseURI); } function setRoyaltyFee(uint256 _royalty) public returns(bool) { require(msg.sender == operator,"ERC721: caller doesn't operator role"); royaltyFee = _royalty; return true; } function burn(uint256 tokenId) public { require(_exists(tokenId), "ERC721: nonexistent token"); _burn(tokenId); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURIPrefix","type":"string"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"string","name":"name","type":"string"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"tokenBaseURI","type":"event"},{"inputs":[],"name":"AssignedNFTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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"},{"internalType":"string","name":"newName","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"string","name":"tokenURI","type":"string"}],"name":"createCollectible","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"string","name":"nameString","type":"string"}],"name":"isNameReserved","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":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"ownerTransfership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyFee","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":"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":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_royalty","type":"uint256"}],"name":"setRoyaltyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tokenCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620030cb380380620030cb83398101604081905262000034916200046a565b8383620000486301ffc9a760e01b620000ee565b81516200005d906008906020850190620002ea565b50805162000073906009906020840190620002ea565b50600b600d556005600e55620000906380ac58cd60e01b620000ee565b620000a2635b5e139f60e01b620000ee565b620000b463780e9d6360e01b620000ee565b5050600f80546001600160a01b031916331790556001601055620000d88262000173565b620000e381620001c5565b50505050506200058f565b6001600160e01b031980821614156200014e5760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b80516200018890600c906020840190620002ea565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc30681604051620001ba91906200051d565b60405180910390a150565b600f546000906001600160a01b03163314620002245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000145565b6001600160a01b0382166200028b5760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b606482015260840162000145565b600b546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600b80546001600160a01b0383166001600160a01b03199091161790556001919050565b828054620002f89062000552565b90600052602060002090601f0160209004810192826200031c576000855562000367565b82601f106200033757805160ff191683800117855562000367565b8280016001018555821562000367579182015b82811115620003675782518255916020019190600101906200034a565b506200037592915062000379565b5090565b5b808211156200037557600081556001016200037a565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c3578181015183820152602001620003a9565b83811115620003d3576000848401525b50505050565b600082601f830112620003eb57600080fd5b81516001600160401b038082111562000408576200040862000390565b604051601f8301601f19908116603f0116810190828211818310171562000433576200043362000390565b816040528381528660208588010111156200044d57600080fd5b62000460846020830160208901620003a6565b9695505050505050565b600080600080608085870312156200048157600080fd5b84516001600160401b03808211156200049957600080fd5b620004a788838901620003d9565b95506020870151915080821115620004be57600080fd5b620004cc88838901620003d9565b94506040870151915080821115620004e357600080fd5b50620004f287828801620003d9565b606087015190935090506001600160a01b03811681146200051257600080fd5b939692955090935050565b60208152600082518060208401526200053e816040850160208701620003a6565b601f01601f19169190910160400192915050565b600181811c908216806200056757607f821691505b602082108114156200058957634e487b7160e01b600052602260045260246000fd5b50919050565b612b2c806200059f6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636c0360eb11610104578063a22cb465116100a2578063c39cbef111610071578063c39cbef1146103c9578063c87b56dd146103dc578063e725f877146103ef578063e985e9c51461040257600080fd5b8063a22cb46514610387578063b3ab15fb1461039a578063b88d4fde146103ad578063b8997a97146103c057600080fd5b806388f862e3116100de57806388f862e31461035b5780638da5cb5b1461036357806395d89b41146103765780639f181b5e1461037e57600080fd5b80636c0360eb1461032d5780636fdc202f1461033557806370a082311461034857600080fd5b80633e4086e51161017157806355f804b31161014b57806355f804b3146102e1578063570ca735146102f45780635b193d07146103075780636352211e1461031a57600080fd5b80633e4086e5146102a857806342842e0e146102bb57806342966c68146102ce57600080fd5b8063095ea7b3116101ad578063095ea7b31461025657806315b56d101461026b57806318160ddd1461027e57806323b872dd1461029557600080fd5b806301ffc9a7146101d457806306fdde0314610216578063081812fc1461022b575b600080fd5b6102016101e2366004612329565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61021e61043e565b60405161020d919061239e565b61023e6102393660046123b1565b6104d0565b6040516001600160a01b03909116815260200161020d565b6102696102643660046123e1565b61055d565b005b6102016102793660046124b7565b610673565b610287600d5481565b60405190815260200161020d565b6102696102a33660046124ec565b6106a6565b6102016102b63660046123b1565b6106d7565b6102696102c93660046124ec565b61070d565b6102696102dc3660046123b1565b610728565b6102696102ef3660046124b7565b610759565b600b5461023e906001600160a01b031681565b610287610315366004612528565b61078c565b61023e6103283660046123b1565b610846565b61021e61086e565b610201610343366004612576565b61087d565b610287610356366004612576565b61096d565b6102876109f9565b600f5461023e906001600160a01b031681565b61021e610a0a565b61028760105481565b610269610395366004612591565b610a19565b6102016103a8366004612576565b610ae0565b6102696103bb3660046125cd565b610bd1565b610287600e5481565b6102696103d7366004612649565b610c09565b61021e6103ea3660046123b1565b610f26565b61021e6103fd3660046123b1565b611122565b61020161041036600461267a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60606008805461044d906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610479906126ad565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b60006104db826111e7565b6105415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061056882610846565b9050806001600160a01b0316836001600160a01b031614156105d65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610538565b336001600160a01b03821614806105f257506105f28133610410565b6106645760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610538565b61066e83836111f4565b505050565b6000600761068083611262565b60405161068d91906126e8565b9081526040519081900360200190205460ff1692915050565b6106b033826113c5565b6106cc5760405162461bcd60e51b815260040161053890612704565b61066e8383836114af565b600b546000906001600160a01b031633146107045760405162461bcd60e51b815260040161053890612755565b50600e55600190565b61066e83838360405180602001604052806000815250610bd1565b610731816111e7565b61074d5760405162461bcd60e51b815260040161053890612799565b61075681611630565b50565b600f546001600160a01b031633146107835760405162461bcd60e51b8152600401610538906127d0565b61075681611837565b600b546000906001600160a01b031633146107b95760405162461bcd60e51b815260040161053890612755565b600d54601054111561080d5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a204d696e74696e67206973206e6f7420617661696c61626c656044820152606401610538565b60105461081a8482611885565b61082481846118a3565b600160106000828254610837919061281b565b90915550909150505b92915050565b600061084082604051806060016040528060298152602001612ace6029913960029190611969565b6060600c805461044d906126ad565b600f546000906001600160a01b031633146108aa5760405162461bcd60e51b8152600401610538906127d0565b6001600160a01b03821661090f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610538565b600f546040516001600160a01b038085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350600f80546001600160a01b0319166001600160a01b03831617905560015b919050565b60006001600160a01b0382166109d85760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610538565b6001600160a01b038216600090815260016020526040902061084090611980565b6000610a056002611980565b905090565b60606009805461044d906126ad565b600b546001600160a01b0316331415610a745760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610538565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600f546000906001600160a01b03163314610b0d5760405162461bcd60e51b8152600401610538906127d0565b6001600160a01b038216610b725760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b6064820152608401610538565b600b546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600b80546001600160a01b0383166001600160a01b03199091161790556001919050565b610bdb33836113c5565b610bf75760405162461bcd60e51b815260040161053890612704565b610c038484848461198a565b50505050565b600b546001600160a01b03163314610c785760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a2063616c6c6572206973206e6f74206861766520746865206f60448201526b70657261746f7220526f6c6560a01b6064820152608401610538565b610c81826111e7565b610c9d5760405162461bcd60e51b815260040161053890612799565b600082815260066020526040908190209051600291610cbb91612833565b602060405180830381855afa158015610cd8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610cfb91906128cf565b600282604051610d0b91906126e8565b602060405180830381855afa158015610d28573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d4b91906128cf565b1415610da55760405162461bcd60e51b815260206004820152602360248201527f4e6577206e616d652069732073616d65206173207468652063757272656e74206044820152626f6e6560e81b6064820152608401610538565b610dae81610673565b15610df35760405162461bcd60e51b815260206004820152601560248201527413985b5948185b1c9958591e481c995cd95c9d9959605a1b6044820152606401610538565b60008281526006602052604081208054610e0c906126ad565b90501115610eb75760008281526006602052604090208054610eb79190610e32906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5e906126ad565b8015610eab5780601f10610e8057610100808354040283529160200191610eab565b820191906000526020600020905b815481529060010190602001808311610e8e57829003601f168201915b505050505060006119bd565b610ec28160016119bd565b60008281526006602090815260409091208251610ee192840190612244565b5080604051610ef091906126e8565b6040519081900381209083907f8edfa912e70e283a8ef6d6f52cd1faef9690ff989eff2f11a134e8478ba7b28b90600090a35050565b6060610f31826111e7565b610f955760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610538565b6000600c8054610fa4906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd0906126ad565b801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b505050505090506000600a60008581526020019081526020016000208054611044906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611070906126ad565b80156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b505050505090508151600014156110d5579392505050565b8051156111075781816040516020016110ef9291906128e8565b60405160208183030381529060405292505050919050565b81611111856119fa565b6040516020016110ef9291906128e8565b606061112d826111e7565b6111495760405162461bcd60e51b815260040161053890612799565b60008281526006602052604090208054611162906126ad565b80601f016020809104026020016040519081016040528092919081815260200182805461118e906126ad565b80156111db5780601f106111b0576101008083540402835291602001916111db565b820191906000526020600020905b8154815290600101906020018083116111be57829003601f168201915b50505050509050919050565b6000610840600283611b11565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061122982610846565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b606060008290506000815167ffffffffffffffff8111156112855761128561240b565b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b50905060005b82518110156113bd5760418382815181106112d2576112d2612917565b016020015160f81c108015906113025750605a8382815181106112f7576112f7612917565b016020015160f81c11155b156113645782818151811061131957611319612917565b602001015160f81c60f81b60f81c6020611333919061292d565b60f81b82828151811061134857611348612917565b60200101906001600160f81b031916908160001a9053506113ab565b82818151811061137657611376612917565b602001015160f81c60f81b82828151811061139357611393612917565b60200101906001600160f81b031916908160001a9053505b806113b581612952565b9150506112b5565b509392505050565b60006113d0826111e7565b6114315760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610538565b600061143c83610846565b9050806001600160a01b0316846001600160a01b031614806114775750836001600160a01b031661146c846104d0565b6001600160a01b0316145b806114a757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166114c282610846565b6001600160a01b03161461152a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610538565b6001600160a01b03821661158c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610538565b6115976000826111f4565b6001600160a01b03831660009081526001602052604090206115b99082611b29565b506001600160a01b03821660009081526001602052604090206115dc9082611b35565b506115e960028284611b41565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61163981610846565b6001600160a01b0316336001600160a01b0316146116af5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c657220646f65736e27742068617665207468652060448201526c19da5d995b881d1bdad95b9259609a1b6064820152608401610538565b60006116ba82610846565b90506116c76000836111f4565b6000828152600a6020526040902080546116e0906126ad565b1590506116fe576000828152600a602052604081206116fe916122c8565b6001600160a01b03811660009081526001602052604090206117209083611b29565b5061172c600283611b57565b50600082815260066020526040812080546007916117d09161174d906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611779906126ad565b80156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505050611262565b6040516117dd91906126e8565b908152604051908190036020018120805492151560ff199093169290921790915582906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b805161184a90600c906020840190612244565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc3068160405161187a919061239e565b60405180910390a150565b61189f828260405180602001604052806000815250611b63565b5050565b6118ac826111e7565b61190d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610538565b6000828152600a60209081526040909120825161192c92840190612244565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8260405161195d919061239e565b60405180910390a25050565b6000611976848484611bfd565b90505b9392505050565b6000610840825490565b6119958484846114af565b6119a184848484611c66565b610c035760405162461bcd60e51b81526004016105389061296d565b8060076119c984611262565b6040516119d691906126e8565b908152604051908190036020019020805491151560ff199092169190911790555050565b606081611a1e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611a485780611a3281612952565b9150611a419050600a836129d5565b9150611a22565b60008167ffffffffffffffff811115611a6357611a6361240b565b6040519080825280601f01601f191660200182016040528015611a8d576020820181803683370190505b5090506000611a9d6001846129e9565b90508593505b8315611b0857611ab4600a85612a00565b611abf90603061281b565b60f81b8282611acd81612a14565b935081518110611adf57611adf612917565b60200101906001600160f81b031916908160001a905350611b01600a856129d5565b9350611aa3565b50949350505050565b60008181526001830160205260408120541515611979565b60006119798383611d37565b60006119798383611e2a565b600061197684846001600160a01b038516611e79565b60006119798383611f1a565b611b6d8383612021565b6001600160a01b03831660008181526005602090815260408083203380855290835292819020805460ff1916600190811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3611be16000848484611c66565b61066e5760405162461bcd60e51b81526004016105389061296d565b60008281526001840160205260408120548281611c2d5760405162461bcd60e51b8152600401610538919061239e565b5084611c3a6001836129e9565b81548110611c4a57611c4a612917565b9060005260206000209060020201600101549150509392505050565b60006001600160a01b0384163b611c7f575060016114a7565b6000611d00630a85bd0160e11b33888787604051602401611ca39493929190612a2b565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001612a9c603291396001600160a01b0388169190612139565b9050600081806020019051810190611d189190612a68565b6001600160e01b031916630a85bd0160e11b1492505050949350505050565b60008181526001830160205260408120548015611e20576000611d5b6001836129e9565b8554909150600090611d6f906001906129e9565b90506000866000018281548110611d8857611d88612917565b9060005260206000200154905080876000018481548110611dab57611dab612917565b600091825260209091200155611dc283600161281b565b60008281526001890160205260409020558654879080611de457611de4612a85565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610840565b6000915050610840565b6000818152600183016020526040812054611e7157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610840565b506000610840565b600082815260018401602052604081205480611ede575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055611979565b8285611eeb6001846129e9565b81548110611efb57611efb612917565b9060005260206000209060020201600101819055506000915050611979565b60008181526001830160205260408120548015611e20576000611f3e6001836129e9565b8554909150600090611f52906001906129e9565b90506000866000018281548110611f6b57611f6b612917565b9060005260206000209060020201905080876000018481548110611f9157611f91612917565b60009182526020909120825460029092020190815560019182015490820155611fbb90849061281b565b815460009081526001890160205260409020558654879080611fdf57611fdf612a85565b60008281526020808220600260001990940193840201828155600190810183905592909355888152898201909252604082209190915594506108409350505050565b6001600160a01b0382166120775760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610538565b612080816111e7565b156120cd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610538565b6001600160a01b03821660009081526001602052604090206120ef9082611b35565b506120fc60028284611b41565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060611976848460008585843b6121925760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610538565b600080866001600160a01b031685876040516121ae91906126e8565b60006040518083038185875af1925050503d80600081146121eb576040519150601f19603f3d011682016040523d82523d6000602084013e6121f0565b606091505b509150915061220082828661220b565b979650505050505050565b6060831561221a575081611979565b82511561222a5782518084602001fd5b8160405162461bcd60e51b8152600401610538919061239e565b828054612250906126ad565b90600052602060002090601f01602090048101928261227257600085556122b8565b82601f1061228b57805160ff19168380011785556122b8565b828001600101855582156122b8579182015b828111156122b857825182559160200191906001019061229d565b506122c49291506122fe565b5090565b5080546122d4906126ad565b6000825580601f106122e4575050565b601f01602090049060005260206000209081019061075691905b5b808211156122c457600081556001016122ff565b6001600160e01b03198116811461075657600080fd5b60006020828403121561233b57600080fd5b813561197981612313565b60005b83811015612361578181015183820152602001612349565b83811115610c035750506000910152565b6000815180845261238a816020860160208601612346565b601f01601f19169290920160200192915050565b6020815260006119796020830184612372565b6000602082840312156123c357600080fd5b5035919050565b80356001600160a01b038116811461096857600080fd5b600080604083850312156123f457600080fd5b6123fd836123ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561243c5761243c61240b565b604051601f8501601f19908116603f011681019082821181831017156124645761246461240b565b8160405280935085815286868601111561247d57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126124a857600080fd5b61197983833560208501612421565b6000602082840312156124c957600080fd5b813567ffffffffffffffff8111156124e057600080fd5b6114a784828501612497565b60008060006060848603121561250157600080fd5b61250a846123ca565b9250612518602085016123ca565b9150604084013590509250925092565b6000806040838503121561253b57600080fd5b612544836123ca565b9150602083013567ffffffffffffffff81111561256057600080fd5b61256c85828601612497565b9150509250929050565b60006020828403121561258857600080fd5b611979826123ca565b600080604083850312156125a457600080fd5b6125ad836123ca565b9150602083013580151581146125c257600080fd5b809150509250929050565b600080600080608085870312156125e357600080fd5b6125ec856123ca565b93506125fa602086016123ca565b925060408501359150606085013567ffffffffffffffff81111561261d57600080fd5b8501601f8101871361262e57600080fd5b61263d87823560208401612421565b91505092959194509250565b6000806040838503121561265c57600080fd5b82359150602083013567ffffffffffffffff81111561256057600080fd5b6000806040838503121561268d57600080fd5b612696836123ca565b91506126a4602084016123ca565b90509250929050565b600181811c908216806126c157607f821691505b602082108114156126e257634e487b7160e01b600052602260045260246000fd5b50919050565b600082516126fa818460208701612346565b9190910192915050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60208082526024908201527f4552433732313a2063616c6c657220646f65736e2774206f70657261746f7220604082015263726f6c6560e01b606082015260800190565b60208082526019908201527f4552433732313a206e6f6e6578697374656e7420746f6b656e00000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561282e5761282e612805565b500190565b600080835481600182811c91508083168061284f57607f831692505b602080841082141561286f57634e487b7160e01b86526022600452602486fd5b8180156128835760018114612894576128c1565b60ff198616895284890196506128c1565b60008a81526020902060005b868110156128b95781548b8201529085019083016128a0565b505084890196505b509498975050505050505050565b6000602082840312156128e157600080fd5b5051919050565b600083516128fa818460208801612346565b83519083019061290e818360208801612346565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff0382111561294a5761294a612805565b019392505050565b600060001982141561296657612966612805565b5060010190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826129e4576129e46129bf565b500490565b6000828210156129fb576129fb612805565b500390565b600082612a0f57612a0f6129bf565b500690565b600081612a2357612a23612805565b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a5e90830184612372565b9695505050505050565b600060208284031215612a7a57600080fd5b815161197981612313565b634e487b7160e01b600052603160045260246000fdfe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220023957c166006a6208b2e55a14fffdecd6f15393394e21b95ea9ec863333b23e64736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966000000000000000000000000000000000000000000000000000000000000000a426967425369676e656400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a426967425369676e656400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636c0360eb11610104578063a22cb465116100a2578063c39cbef111610071578063c39cbef1146103c9578063c87b56dd146103dc578063e725f877146103ef578063e985e9c51461040257600080fd5b8063a22cb46514610387578063b3ab15fb1461039a578063b88d4fde146103ad578063b8997a97146103c057600080fd5b806388f862e3116100de57806388f862e31461035b5780638da5cb5b1461036357806395d89b41146103765780639f181b5e1461037e57600080fd5b80636c0360eb1461032d5780636fdc202f1461033557806370a082311461034857600080fd5b80633e4086e51161017157806355f804b31161014b57806355f804b3146102e1578063570ca735146102f45780635b193d07146103075780636352211e1461031a57600080fd5b80633e4086e5146102a857806342842e0e146102bb57806342966c68146102ce57600080fd5b8063095ea7b3116101ad578063095ea7b31461025657806315b56d101461026b57806318160ddd1461027e57806323b872dd1461029557600080fd5b806301ffc9a7146101d457806306fdde0314610216578063081812fc1461022b575b600080fd5b6102016101e2366004612329565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61021e61043e565b60405161020d919061239e565b61023e6102393660046123b1565b6104d0565b6040516001600160a01b03909116815260200161020d565b6102696102643660046123e1565b61055d565b005b6102016102793660046124b7565b610673565b610287600d5481565b60405190815260200161020d565b6102696102a33660046124ec565b6106a6565b6102016102b63660046123b1565b6106d7565b6102696102c93660046124ec565b61070d565b6102696102dc3660046123b1565b610728565b6102696102ef3660046124b7565b610759565b600b5461023e906001600160a01b031681565b610287610315366004612528565b61078c565b61023e6103283660046123b1565b610846565b61021e61086e565b610201610343366004612576565b61087d565b610287610356366004612576565b61096d565b6102876109f9565b600f5461023e906001600160a01b031681565b61021e610a0a565b61028760105481565b610269610395366004612591565b610a19565b6102016103a8366004612576565b610ae0565b6102696103bb3660046125cd565b610bd1565b610287600e5481565b6102696103d7366004612649565b610c09565b61021e6103ea3660046123b1565b610f26565b61021e6103fd3660046123b1565b611122565b61020161041036600461267a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60606008805461044d906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610479906126ad565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b60006104db826111e7565b6105415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061056882610846565b9050806001600160a01b0316836001600160a01b031614156105d65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610538565b336001600160a01b03821614806105f257506105f28133610410565b6106645760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610538565b61066e83836111f4565b505050565b6000600761068083611262565b60405161068d91906126e8565b9081526040519081900360200190205460ff1692915050565b6106b033826113c5565b6106cc5760405162461bcd60e51b815260040161053890612704565b61066e8383836114af565b600b546000906001600160a01b031633146107045760405162461bcd60e51b815260040161053890612755565b50600e55600190565b61066e83838360405180602001604052806000815250610bd1565b610731816111e7565b61074d5760405162461bcd60e51b815260040161053890612799565b61075681611630565b50565b600f546001600160a01b031633146107835760405162461bcd60e51b8152600401610538906127d0565b61075681611837565b600b546000906001600160a01b031633146107b95760405162461bcd60e51b815260040161053890612755565b600d54601054111561080d5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a204d696e74696e67206973206e6f7420617661696c61626c656044820152606401610538565b60105461081a8482611885565b61082481846118a3565b600160106000828254610837919061281b565b90915550909150505b92915050565b600061084082604051806060016040528060298152602001612ace6029913960029190611969565b6060600c805461044d906126ad565b600f546000906001600160a01b031633146108aa5760405162461bcd60e51b8152600401610538906127d0565b6001600160a01b03821661090f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610538565b600f546040516001600160a01b038085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350600f80546001600160a01b0319166001600160a01b03831617905560015b919050565b60006001600160a01b0382166109d85760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610538565b6001600160a01b038216600090815260016020526040902061084090611980565b6000610a056002611980565b905090565b60606009805461044d906126ad565b600b546001600160a01b0316331415610a745760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610538565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600f546000906001600160a01b03163314610b0d5760405162461bcd60e51b8152600401610538906127d0565b6001600160a01b038216610b725760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b6064820152608401610538565b600b546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600b80546001600160a01b0383166001600160a01b03199091161790556001919050565b610bdb33836113c5565b610bf75760405162461bcd60e51b815260040161053890612704565b610c038484848461198a565b50505050565b600b546001600160a01b03163314610c785760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a2063616c6c6572206973206e6f74206861766520746865206f60448201526b70657261746f7220526f6c6560a01b6064820152608401610538565b610c81826111e7565b610c9d5760405162461bcd60e51b815260040161053890612799565b600082815260066020526040908190209051600291610cbb91612833565b602060405180830381855afa158015610cd8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610cfb91906128cf565b600282604051610d0b91906126e8565b602060405180830381855afa158015610d28573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d4b91906128cf565b1415610da55760405162461bcd60e51b815260206004820152602360248201527f4e6577206e616d652069732073616d65206173207468652063757272656e74206044820152626f6e6560e81b6064820152608401610538565b610dae81610673565b15610df35760405162461bcd60e51b815260206004820152601560248201527413985b5948185b1c9958591e481c995cd95c9d9959605a1b6044820152606401610538565b60008281526006602052604081208054610e0c906126ad565b90501115610eb75760008281526006602052604090208054610eb79190610e32906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5e906126ad565b8015610eab5780601f10610e8057610100808354040283529160200191610eab565b820191906000526020600020905b815481529060010190602001808311610e8e57829003601f168201915b505050505060006119bd565b610ec28160016119bd565b60008281526006602090815260409091208251610ee192840190612244565b5080604051610ef091906126e8565b6040519081900381209083907f8edfa912e70e283a8ef6d6f52cd1faef9690ff989eff2f11a134e8478ba7b28b90600090a35050565b6060610f31826111e7565b610f955760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610538565b6000600c8054610fa4906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd0906126ad565b801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b505050505090506000600a60008581526020019081526020016000208054611044906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611070906126ad565b80156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b505050505090508151600014156110d5579392505050565b8051156111075781816040516020016110ef9291906128e8565b60405160208183030381529060405292505050919050565b81611111856119fa565b6040516020016110ef9291906128e8565b606061112d826111e7565b6111495760405162461bcd60e51b815260040161053890612799565b60008281526006602052604090208054611162906126ad565b80601f016020809104026020016040519081016040528092919081815260200182805461118e906126ad565b80156111db5780601f106111b0576101008083540402835291602001916111db565b820191906000526020600020905b8154815290600101906020018083116111be57829003601f168201915b50505050509050919050565b6000610840600283611b11565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061122982610846565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b606060008290506000815167ffffffffffffffff8111156112855761128561240b565b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b50905060005b82518110156113bd5760418382815181106112d2576112d2612917565b016020015160f81c108015906113025750605a8382815181106112f7576112f7612917565b016020015160f81c11155b156113645782818151811061131957611319612917565b602001015160f81c60f81b60f81c6020611333919061292d565b60f81b82828151811061134857611348612917565b60200101906001600160f81b031916908160001a9053506113ab565b82818151811061137657611376612917565b602001015160f81c60f81b82828151811061139357611393612917565b60200101906001600160f81b031916908160001a9053505b806113b581612952565b9150506112b5565b509392505050565b60006113d0826111e7565b6114315760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610538565b600061143c83610846565b9050806001600160a01b0316846001600160a01b031614806114775750836001600160a01b031661146c846104d0565b6001600160a01b0316145b806114a757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166114c282610846565b6001600160a01b03161461152a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610538565b6001600160a01b03821661158c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610538565b6115976000826111f4565b6001600160a01b03831660009081526001602052604090206115b99082611b29565b506001600160a01b03821660009081526001602052604090206115dc9082611b35565b506115e960028284611b41565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61163981610846565b6001600160a01b0316336001600160a01b0316146116af5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c657220646f65736e27742068617665207468652060448201526c19da5d995b881d1bdad95b9259609a1b6064820152608401610538565b60006116ba82610846565b90506116c76000836111f4565b6000828152600a6020526040902080546116e0906126ad565b1590506116fe576000828152600a602052604081206116fe916122c8565b6001600160a01b03811660009081526001602052604090206117209083611b29565b5061172c600283611b57565b50600082815260066020526040812080546007916117d09161174d906126ad565b80601f0160208091040260200160405190810160405280929190818152602001828054611779906126ad565b80156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505050611262565b6040516117dd91906126e8565b908152604051908190036020018120805492151560ff199093169290921790915582906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b805161184a90600c906020840190612244565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc3068160405161187a919061239e565b60405180910390a150565b61189f828260405180602001604052806000815250611b63565b5050565b6118ac826111e7565b61190d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610538565b6000828152600a60209081526040909120825161192c92840190612244565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8260405161195d919061239e565b60405180910390a25050565b6000611976848484611bfd565b90505b9392505050565b6000610840825490565b6119958484846114af565b6119a184848484611c66565b610c035760405162461bcd60e51b81526004016105389061296d565b8060076119c984611262565b6040516119d691906126e8565b908152604051908190036020019020805491151560ff199092169190911790555050565b606081611a1e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611a485780611a3281612952565b9150611a419050600a836129d5565b9150611a22565b60008167ffffffffffffffff811115611a6357611a6361240b565b6040519080825280601f01601f191660200182016040528015611a8d576020820181803683370190505b5090506000611a9d6001846129e9565b90508593505b8315611b0857611ab4600a85612a00565b611abf90603061281b565b60f81b8282611acd81612a14565b935081518110611adf57611adf612917565b60200101906001600160f81b031916908160001a905350611b01600a856129d5565b9350611aa3565b50949350505050565b60008181526001830160205260408120541515611979565b60006119798383611d37565b60006119798383611e2a565b600061197684846001600160a01b038516611e79565b60006119798383611f1a565b611b6d8383612021565b6001600160a01b03831660008181526005602090815260408083203380855290835292819020805460ff1916600190811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3611be16000848484611c66565b61066e5760405162461bcd60e51b81526004016105389061296d565b60008281526001840160205260408120548281611c2d5760405162461bcd60e51b8152600401610538919061239e565b5084611c3a6001836129e9565b81548110611c4a57611c4a612917565b9060005260206000209060020201600101549150509392505050565b60006001600160a01b0384163b611c7f575060016114a7565b6000611d00630a85bd0160e11b33888787604051602401611ca39493929190612a2b565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001612a9c603291396001600160a01b0388169190612139565b9050600081806020019051810190611d189190612a68565b6001600160e01b031916630a85bd0160e11b1492505050949350505050565b60008181526001830160205260408120548015611e20576000611d5b6001836129e9565b8554909150600090611d6f906001906129e9565b90506000866000018281548110611d8857611d88612917565b9060005260206000200154905080876000018481548110611dab57611dab612917565b600091825260209091200155611dc283600161281b565b60008281526001890160205260409020558654879080611de457611de4612a85565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610840565b6000915050610840565b6000818152600183016020526040812054611e7157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610840565b506000610840565b600082815260018401602052604081205480611ede575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055611979565b8285611eeb6001846129e9565b81548110611efb57611efb612917565b9060005260206000209060020201600101819055506000915050611979565b60008181526001830160205260408120548015611e20576000611f3e6001836129e9565b8554909150600090611f52906001906129e9565b90506000866000018281548110611f6b57611f6b612917565b9060005260206000209060020201905080876000018481548110611f9157611f91612917565b60009182526020909120825460029092020190815560019182015490820155611fbb90849061281b565b815460009081526001890160205260409020558654879080611fdf57611fdf612a85565b60008281526020808220600260001990940193840201828155600190810183905592909355888152898201909252604082209190915594506108409350505050565b6001600160a01b0382166120775760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610538565b612080816111e7565b156120cd5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610538565b6001600160a01b03821660009081526001602052604090206120ef9082611b35565b506120fc60028284611b41565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060611976848460008585843b6121925760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610538565b600080866001600160a01b031685876040516121ae91906126e8565b60006040518083038185875af1925050503d80600081146121eb576040519150601f19603f3d011682016040523d82523d6000602084013e6121f0565b606091505b509150915061220082828661220b565b979650505050505050565b6060831561221a575081611979565b82511561222a5782518084602001fd5b8160405162461bcd60e51b8152600401610538919061239e565b828054612250906126ad565b90600052602060002090601f01602090048101928261227257600085556122b8565b82601f1061228b57805160ff19168380011785556122b8565b828001600101855582156122b8579182015b828111156122b857825182559160200191906001019061229d565b506122c49291506122fe565b5090565b5080546122d4906126ad565b6000825580601f106122e4575050565b601f01602090049060005260206000209081019061075691905b5b808211156122c457600081556001016122ff565b6001600160e01b03198116811461075657600080fd5b60006020828403121561233b57600080fd5b813561197981612313565b60005b83811015612361578181015183820152602001612349565b83811115610c035750506000910152565b6000815180845261238a816020860160208601612346565b601f01601f19169290920160200192915050565b6020815260006119796020830184612372565b6000602082840312156123c357600080fd5b5035919050565b80356001600160a01b038116811461096857600080fd5b600080604083850312156123f457600080fd5b6123fd836123ca565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561243c5761243c61240b565b604051601f8501601f19908116603f011681019082821181831017156124645761246461240b565b8160405280935085815286868601111561247d57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126124a857600080fd5b61197983833560208501612421565b6000602082840312156124c957600080fd5b813567ffffffffffffffff8111156124e057600080fd5b6114a784828501612497565b60008060006060848603121561250157600080fd5b61250a846123ca565b9250612518602085016123ca565b9150604084013590509250925092565b6000806040838503121561253b57600080fd5b612544836123ca565b9150602083013567ffffffffffffffff81111561256057600080fd5b61256c85828601612497565b9150509250929050565b60006020828403121561258857600080fd5b611979826123ca565b600080604083850312156125a457600080fd5b6125ad836123ca565b9150602083013580151581146125c257600080fd5b809150509250929050565b600080600080608085870312156125e357600080fd5b6125ec856123ca565b93506125fa602086016123ca565b925060408501359150606085013567ffffffffffffffff81111561261d57600080fd5b8501601f8101871361262e57600080fd5b61263d87823560208401612421565b91505092959194509250565b6000806040838503121561265c57600080fd5b82359150602083013567ffffffffffffffff81111561256057600080fd5b6000806040838503121561268d57600080fd5b612696836123ca565b91506126a4602084016123ca565b90509250929050565b600181811c908216806126c157607f821691505b602082108114156126e257634e487b7160e01b600052602260045260246000fd5b50919050565b600082516126fa818460208701612346565b9190910192915050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60208082526024908201527f4552433732313a2063616c6c657220646f65736e2774206f70657261746f7220604082015263726f6c6560e01b606082015260800190565b60208082526019908201527f4552433732313a206e6f6e6578697374656e7420746f6b656e00000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561282e5761282e612805565b500190565b600080835481600182811c91508083168061284f57607f831692505b602080841082141561286f57634e487b7160e01b86526022600452602486fd5b8180156128835760018114612894576128c1565b60ff198616895284890196506128c1565b60008a81526020902060005b868110156128b95781548b8201529085019083016128a0565b505084890196505b509498975050505050505050565b6000602082840312156128e157600080fd5b5051919050565b600083516128fa818460208801612346565b83519083019061290e818360208801612346565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff0382111561294a5761294a612805565b019392505050565b600060001982141561296657612966612805565b5060010190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826129e4576129e46129bf565b500490565b6000828210156129fb576129fb612805565b500390565b600082612a0f57612a0f6129bf565b500690565b600081612a2357612a23612805565b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a5e90830184612372565b9695505050505050565b600060208284031215612a7a57600080fd5b815161197981612313565b634e487b7160e01b600052603160045260246000fdfe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220023957c166006a6208b2e55a14fffdecd6f15393394e21b95ea9ec863333b23e64736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966000000000000000000000000000000000000000000000000000000000000000a426967425369676e656400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a426967425369676e656400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): BigBSigned
Arg [1] : symbol (string): BigBSigned
Arg [2] : tokenURIPrefix (string): https://gateway.pinata.cloud/ipfs/
Arg [3] : _operator (address): 0x98D5A089074Be1Af5c54fd0dda96f92A29246966
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 00000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 426967425369676e656400000000000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [7] : 426967425369676e656400000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000022
Arg [9] : 68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066
Arg [10] : 732f000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
28049:2413:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11404:150;;;;;;:::i;:::-;-1:-1:-1;;;;;;11513:33:0;11489:4;11513:33;;;;;;;;;;;;;;11404:150;;;;565:14:1;;558:22;540:41;;528:2;513:18;11404:150:0;;;;;;;;16538:100;;;:::i;:::-;;;;;;;:::i;17964:221::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1692:32:1;;;1674:51;;1662:2;1647:18;17964:221:0;1528:203:1;17552:404:0;;;;;;:::i;:::-;;:::i;:::-;;25958:137;;;;;;:::i;:::-;;:::i;15093:26::-;;;;;;;;;3642:25:1;;;3630:2;3615:18;15093:26:0;3496:177:1;19308:252:0;;;;;;:::i;:::-;;:::i;30102:207::-;;;;;;:::i;:::-;;:::i;19568:151::-;;;;;;:::i;:::-;;:::i;30321:136::-;;;;;;:::i;:::-;;:::i;29991:101::-;;;;;;:::i;:::-;;:::i;15027:23::-;;;;;-1:-1:-1;;;;;15027:23:0;;;29550:433;;;;;;:::i;:::-;;:::i;16353:177::-;;;;;;:::i;:::-;;:::i;17319:97::-;;;:::i;28725:270::-;;;;;;:::i;:::-;;:::i;15937:221::-;;;;;;:::i;:::-;;:::i;17424:118::-;;;:::i;28088:20::-;;;;;-1:-1:-1;;;;;28088:20:0;;;16646:104;;;:::i;28117:25::-;;;;;;18548:298;;;;;;:::i;:::-;;:::i;29005:267::-;;;;;;:::i;:::-;;:::i;20839:287::-;;;;;;:::i;:::-;;:::i;15128:25::-;;;;;;24961:727;;;;;;:::i;:::-;;:::i;16758:553::-;;;;;;:::i;:::-;;:::i;25700:180::-;;;;;;:::i;:::-;;:::i;19134:166::-;;;;;;:::i;:::-;-1:-1:-1;;;;;19256:25:0;;;19232:4;19256:25;;;:18;:25;;;;;;;;:36;;;;;;;;;;;;;;;19134:166;16538:100;16592:13;16625:5;16618:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16538:100;:::o;17964:221::-;18040:7;18068:16;18076:7;18068;:16::i;:::-;18060:73;;;;-1:-1:-1;;;18060:73:0;;6874:2:1;18060:73:0;;;6856:21:1;6913:2;6893:18;;;6886:30;6952:34;6932:18;;;6925:62;-1:-1:-1;;;7003:18:1;;;6996:42;7055:19;;18060:73:0;;;;;;;;;-1:-1:-1;18153:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;18153:24:0;;17964:221::o;17552:404::-;17633:13;17649:23;17664:7;17649:14;:23::i;:::-;17633:39;;17697:5;-1:-1:-1;;;;;17691:11:0;:2;-1:-1:-1;;;;;17691:11:0;;;17683:57;;;;-1:-1:-1;;;17683:57:0;;7287:2:1;17683:57:0;;;7269:21:1;7326:2;7306:18;;;7299:30;7365:34;7345:18;;;7338:62;-1:-1:-1;;;7416:18:1;;;7409:31;7457:19;;17683:57:0;7085:397:1;17683:57:0;13673:10;-1:-1:-1;;;;;17761:21:0;;;;:69;;-1:-1:-1;17786:44:0;17810:5;13673:10;19134:166;:::i;17786:44::-;17753:161;;;;-1:-1:-1;;;17753:161:0;;7689:2:1;17753:161:0;;;7671:21:1;7728:2;7708:18;;;7701:30;7767:34;7747:18;;;7740:62;7838:26;7818:18;;;7811:54;7882:19;;17753:161:0;7487:420:1;17753:161:0;17927:21;17936:2;17940:7;17927:8;:21::i;:::-;17622:334;17552:404;;:::o;25958:137::-;26029:4;26053:13;26067:19;26075:10;26067:7;:19::i;:::-;26053:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;25958:137;-1:-1:-1;;25958:137:0:o;19308:252::-;19416:41;13673:10;19449:7;19416:18;:41::i;:::-;19408:103;;;;-1:-1:-1;;;19408:103:0;;;;;;;:::i;:::-;19524:28;19534:4;19540:2;19544:7;19524:9;:28::i;30102:207::-;30197:8;;30158:4;;-1:-1:-1;;;;;30197:8:0;30183:10;:22;30175:70;;;;-1:-1:-1;;;30175:70:0;;;;;;;:::i;:::-;-1:-1:-1;30256:10:0;:21;30295:4;;30102:207::o;19568:151::-;19672:39;19689:4;19695:2;19699:7;19672:39;;;;;;;;;;;;:16;:39::i;30321:136::-;30378:16;30386:7;30378;:16::i;:::-;30370:54;;;;-1:-1:-1;;;30370:54:0;;;;;;;:::i;:::-;30435:14;30441:7;30435:5;:14::i;:::-;30321:136;:::o;29991:101::-;28641:5;;-1:-1:-1;;;;;28641:5:0;28650:10;28641:19;28633:64;;;;-1:-1:-1;;;28633:64:0;;;;;;;:::i;:::-;30063:21:::1;30075:8;30063:11;:21::i;29550:433::-:0;29676:8;;29634:7;;-1:-1:-1;;;;;29676:8:0;29662:10;:22;29654:70;;;;-1:-1:-1;;;29654:70:0;;;;;;;:::i;:::-;29758:11;;29744:10;;:25;;29735:70;;;;-1:-1:-1;;;29735:70:0;;9933:2:1;29735:70:0;;;9915:21:1;;;9952:18;;;9945:30;10011:34;9991:18;;;9984:62;10063:18;;29735:70:0;9731:356:1;29735:70:0;29834:10;;29855:27;29865:7;29834:10;29855:9;:27::i;:::-;29893:31;29906:7;29915:8;29893:12;:31::i;:::-;29949:1;29935:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;29968:7:0;;-1:-1:-1;;29550:433:0;;;;;:::o;16353:177::-;16425:7;16452:70;16469:7;16452:70;;;;;;;;;;;;;;;;;:12;;:70;:16;:70::i;17319:97::-;17367:13;17400:8;17393:15;;;;;:::i;28725:270::-;28641:5;;28795:4;;-1:-1:-1;;;;;28641:5:0;28650:10;28641:19;28633:64;;;;-1:-1:-1;;;28633:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28820:22:0;::::1;28812:73;;;::::0;-1:-1:-1;;;28812:73:0;;10559:2:1;28812:73:0::1;::::0;::::1;10541:21:1::0;10598:2;10578:18;;;10571:30;10637:34;10617:18;;;10610:62;-1:-1:-1;;;10688:18:1;;;10681:36;10734:19;;28812:73:0::1;10357:402:1::0;28812:73:0::1;28922:5;::::0;28901:37:::1;::::0;-1:-1:-1;;;;;28901:37:0;;::::1;::::0;28922:5:::1;::::0;28901:37:::1;::::0;28922:5:::1;::::0;28901:37:::1;-1:-1:-1::0;28949:5:0::1;:16:::0;;-1:-1:-1;;;;;;28949:16:0::1;-1:-1:-1::0;;;;;28949:16:0;::::1;;::::0;;-1:-1:-1;28708:1:0::1;28725:270:::0;;;:::o;15937:221::-;16009:7;-1:-1:-1;;;;;16037:19:0;;16029:74;;;;-1:-1:-1;;;16029:74:0;;10966:2:1;16029:74:0;;;10948:21:1;11005:2;10985:18;;;10978:30;11044:34;11024:18;;;11017:62;-1:-1:-1;;;11095:18:1;;;11088:40;11145:19;;16029:74:0;10764:406:1;16029:74:0;-1:-1:-1;;;;;16121:20:0;;;;;;:13;:20;;;;;:29;;:27;:29::i;17424:118::-;17486:7;17513:21;:12;:19;:21::i;:::-;17506:28;;17424:118;:::o;16646:104::-;16702:13;16735:7;16728:14;;;;;:::i;18548:298::-;18652:8;;-1:-1:-1;;;;;18652:8:0;13673:10;18652:24;;18644:62;;;;-1:-1:-1;;;18644:62:0;;11377:2:1;18644:62:0;;;11359:21:1;11416:2;11396:18;;;11389:30;11455:27;11435:18;;;11428:55;11500:18;;18644:62:0;11175:349:1;18644:62:0;13673:10;18719:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;18719:43:0;;;;;;;;;;;;:54;;-1:-1:-1;;18719:54:0;;;;;;;;;;18789:49;;540:41:1;;;18719:43:0;;13673:10;18789:49;;513:18:1;18789:49:0;;;;;;;18548:298;;:::o;29005:267::-;28641:5;;29070:4;;-1:-1:-1;;;;;28641:5:0;28650:10;28641:19;28633:64;;;;-1:-1:-1;;;28633:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29095:22:0;::::1;29087:72;;;::::0;-1:-1:-1;;;29087:72:0;;11731:2:1;29087:72:0::1;::::0;::::1;11713:21:1::0;11770:2;11750:18;;;11743:30;11809:34;11789:18;;;11782:62;-1:-1:-1;;;11860:18:1;;;11853:36;11906:19;;29087:72:0::1;11529:402:1::0;29087:72:0::1;29191:8;::::0;29175:36:::1;::::0;-1:-1:-1;;;;;29175:36:0;;::::1;::::0;29191:8:::1;::::0;29175:36:::1;::::0;29191:8:::1;::::0;29175:36:::1;-1:-1:-1::0;29222:8:0::1;:20:::0;;-1:-1:-1;;;;;29222:20:0;::::1;-1:-1:-1::0;;;;;;29222:20:0;;::::1;;::::0;;;29005:267;;;:::o;20839:287::-;20971:41;13673:10;21004:7;20971:18;:41::i;:::-;20963:103;;;;-1:-1:-1;;;20963:103:0;;;;;;;:::i;:::-;21077:39;21091:4;21097:2;21101:7;21110:5;21077:13;:39::i;:::-;20839:287;;;;:::o;24961:727::-;25061:8;;-1:-1:-1;;;;;25061:8:0;25047:10;:22;25039:79;;;;-1:-1:-1;;;25039:79:0;;12138:2:1;25039:79:0;;;12120:21:1;12177:2;12157:18;;;12150:30;12216:34;12196:18;;;12189:62;-1:-1:-1;;;12267:18:1;;;12260:42;12319:19;;25039:79:0;11936:408:1;25039:79:0;25137:16;25145:7;25137;:16::i;:::-;25129:53;;;;-1:-1:-1;;;25129:53:0;;;;;;;:::i;:::-;25240:19;;;;:10;:19;;;;;;;25227:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25201:22;25214:7;25201:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;25193:108;;;;-1:-1:-1;;;25193:108:0;;14257:2:1;25193:108:0;;;14239:21:1;14296:2;14276:18;;;14269:30;14335:34;14315:18;;;14308:62;-1:-1:-1;;;14386:18:1;;;14379:33;14429:19;;25193:108:0;14055:399:1;25193:108:0;25320:23;25335:7;25320:14;:23::i;:::-;:32;25312:66;;;;-1:-1:-1;;;25312:66:0;;14661:2:1;25312:66:0;;;14643:21:1;14700:2;14680:18;;;14673:30;-1:-1:-1;;;14719:18:1;;;14712:51;14780:18;;25312:66:0;14459:345:1;25312:66:0;25478:1;25448:19;;;:10;:19;;;;;25442:33;;;;;:::i;:::-;;;:37;25438:115;;;25514:19;;;;:10;:19;;;;;25496:45;;;;25514:19;25496:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25535:5;25496:17;:45::i;:::-;25563:32;25581:7;25590:4;25563:17;:32::i;:::-;25606:19;;;;:10;:19;;;;;;;;:29;;;;;;;;:::i;:::-;;25672:7;25651:29;;;;;;:::i;:::-;;;;;;;;;;25663:7;;25651:29;;;;;24961:727;;:::o;16758:553::-;16831:13;16865:16;16873:7;16865;:16::i;:::-;16857:76;;;;-1:-1:-1;;;16857:76:0;;15011:2:1;16857:76:0;;;14993:21:1;15050:2;15030:18;;;15023:30;15089:34;15069:18;;;15062:62;-1:-1:-1;;;15140:18:1;;;15133:45;15195:19;;16857:76:0;14809:411:1;16857:76:0;16946:18;16967:8;16946:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16988:23;17014:10;:19;17025:7;17014:19;;;;;;;;;;;16988:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17056:4;17050:18;17072:1;17050:23;17046:72;;;17097:9;16758:553;-1:-1:-1;;;16758:553:0:o;17046:72::-;17132:23;;:27;17128:108;;17207:4;17213:9;17190:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17176:48;;;;16758:553;;;:::o;17128:108::-;17277:4;17283:18;:7;:16;:18::i;:::-;17260:42;;;;;;;;;:::i;25700:180::-;25756:13;25790:16;25798:7;25790;:16::i;:::-;25782:53;;;;-1:-1:-1;;;25782:53:0;;;;;;;:::i;:::-;25853:19;;;;:10;:19;;;;;25846:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25700:180;;;:::o;21414:127::-;21479:4;21503:30;:12;21525:7;21503:21;:30::i;27542:192::-;27617:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;27617:29:0;-1:-1:-1;;;;;27617:29:0;;;;;;;;:24;;27671:23;27617:24;27671:14;:23::i;:::-;-1:-1:-1;;;;;27662:46:0;;;;;;;;;;;27542:192;;:::o;26414:508::-;26473:13;26498:17;26524:3;26498:30;;26539:19;26571:4;:11;26561:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26561:22:0;;26539:44;;26599:6;26594:289;26615:4;:11;26611:1;:15;26594:289;;;26707:2;26695:4;26700:1;26695:7;;;;;;;;:::i;:::-;;;;;;;26689:20;;;;26688:48;;;26733:2;26721:4;26726:1;26721:7;;;;;;;;:::i;:::-;;;;;;;26715:20;;26688:48;26684:188;;;26782:4;26787:1;26782:7;;;;;;;;:::i;:::-;;;;;;;;;26776:14;;26793:2;26776:19;;;;:::i;:::-;26769:27;;26757:6;26764:1;26757:9;;;;;;;;:::i;:::-;;;;:39;-1:-1:-1;;;;;26757:39:0;;;;;;;;;26684:188;;;26849:4;26854:1;26849:7;;;;;;;;:::i;:::-;;;;;;;;;26837:6;26844:1;26837:9;;;;;;;;:::i;:::-;;;;:19;-1:-1:-1;;;;;26837:19:0;;;;;;;;;26684:188;26628:3;;;;:::i;:::-;;;;26594:289;;;-1:-1:-1;26907:6:0;26414:508;-1:-1:-1;;;26414:508:0:o;21549:355::-;21642:4;21667:16;21675:7;21667;:16::i;:::-;21659:73;;;;-1:-1:-1;;;21659:73:0;;16383:2:1;21659:73:0;;;16365:21:1;16422:2;16402:18;;;16395:30;16461:34;16441:18;;;16434:62;-1:-1:-1;;;16512:18:1;;;16505:42;16564:19;;21659:73:0;16181:408:1;21659:73:0;21743:13;21759:23;21774:7;21759:14;:23::i;:::-;21743:39;;21812:5;-1:-1:-1;;;;;21801:16:0;:7;-1:-1:-1;;;;;21801:16:0;;:51;;;;21845:7;-1:-1:-1;;;;;21821:31:0;:20;21833:7;21821:11;:20::i;:::-;-1:-1:-1;;;;;21821:31:0;;21801:51;:94;;;-1:-1:-1;;;;;;19256:25:0;;;19232:4;19256:25;;;:18;:25;;;;;;;;:36;;;;;;;;;;;;21856:39;21793:103;21549:355;-1:-1:-1;;;;21549:355:0:o;23749:547::-;23874:4;-1:-1:-1;;;;;23847:31:0;:23;23862:7;23847:14;:23::i;:::-;-1:-1:-1;;;;;23847:31:0;;23839:85;;;;-1:-1:-1;;;23839:85:0;;16796:2:1;23839:85:0;;;16778:21:1;16835:2;16815:18;;;16808:30;16874:34;16854:18;;;16847:62;-1:-1:-1;;;16925:18:1;;;16918:39;16974:19;;23839:85:0;16594:405:1;23839:85:0;-1:-1:-1;;;;;23961:16:0;;23953:65;;;;-1:-1:-1;;;23953:65:0;;17206:2:1;23953:65:0;;;17188:21:1;17245:2;17225:18;;;17218:30;17284:34;17264:18;;;17257:62;-1:-1:-1;;;17335:18:1;;;17328:34;17379:19;;23953:65:0;17004:400:1;23953:65:0;24083:29;24100:1;24104:7;24083:8;:29::i;:::-;-1:-1:-1;;;;;24125:19:0;;;;;;:13;:19;;;;;:35;;24152:7;24125:26;:35::i;:::-;-1:-1:-1;;;;;;24171:17:0;;;;;;:13;:17;;;;;:30;;24193:7;24171:21;:30::i;:::-;-1:-1:-1;24214:29:0;:12;24231:7;24240:2;24214:16;:29::i;:::-;;24280:7;24276:2;-1:-1:-1;;;;;24261:27:0;24270:4;-1:-1:-1;;;;;24261:27:0;;;;;;;;;;;23749:547;;;:::o;23098:643::-;23180:16;23188:7;23180;:16::i;:::-;-1:-1:-1;;;;;23166:30:0;:10;-1:-1:-1;;;;;23166:30:0;;23158:87;;;;-1:-1:-1;;;23158:87:0;;17611:2:1;23158:87:0;;;17593:21:1;17650:2;17630:18;;;17623:30;17689:34;17669:18;;;17662:62;-1:-1:-1;;;17740:18:1;;;17733:43;17793:19;;23158:87:0;17409:409:1;23158:87:0;23256:13;23272:23;23287:7;23272:14;:23::i;:::-;23256:39;;23387:29;23404:1;23408:7;23387:8;:29::i;:::-;23439:19;;;;:10;:19;;;;;23433:33;;;;;:::i;:::-;:38;;-1:-1:-1;23429:97:0;;23495:19;;;;:10;:19;;;;;23488:26;;;:::i;:::-;-1:-1:-1;;;;;23538:20:0;;;;;;:13;:20;;;;;:36;;23566:7;23538:27;:36::i;:::-;-1:-1:-1;23587:28:0;:12;23607:7;23587:19;:28::i;:::-;-1:-1:-1;23674:5:0;23650:19;;;:10;:19;;;;;23642:28;;23628:13;;23642:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:28::i;:::-;23628:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:51;;;;;-1:-1:-1;;23628:51:0;;;;;;;;;;23725:7;;23628:43;;-1:-1:-1;;;;;23697:36:0;;;;;23628:43;;23697:36;23147:594;23098:643;:::o;24815:138::-;24888:19;;;;:8;;:19;;;;;:::i;:::-;;24923:22;24936:8;24923:22;;;;;;:::i;:::-;;;;;;;;24815:138;:::o;21912:110::-;21988:26;21998:2;22002:7;21988:26;;;;;;;;;;;;:9;:26::i;:::-;21912:110;;:::o;24552:255::-;24652:16;24660:7;24652;:16::i;:::-;24644:73;;;;-1:-1:-1;;;24644:73:0;;18025:2:1;24644:73:0;;;18007:21:1;18064:2;18044:18;;;18037:30;18103:34;18083:18;;;18076:62;-1:-1:-1;;;18154:18:1;;;18147:42;18206:19;;24644:73:0;17823:408:1;24644:73:0;24728:19;;;;:10;:19;;;;;;;;:31;;;;;;;;:::i;:::-;;24791:7;24776:23;24780:9;24776:23;;;;;;:::i;:::-;;;;;;;;24552:255;;:::o;4901:213::-;5008:7;5059:44;5064:3;5084;5090:12;5059:4;:44::i;:::-;5051:53;-1:-1:-1;4901:213:0;;;;;;:::o;8773:114::-;8833:7;8860:19;8868:3;6451:18;;6368:109;21134:272;21248:28;21258:4;21264:2;21268:7;21248:9;:28::i;:::-;21295:48;21318:4;21324:2;21328:7;21337:5;21295:22;:48::i;:::-;21287:111;;;;-1:-1:-1;;;21287:111:0;;;;;;;:::i;26213:129::-;26325:9;26295:13;26309:12;26317:3;26309:7;:12::i;:::-;26295:27;;;;;;:::i;:::-;;;;;;;;;;;;;;:39;;;;;-1:-1:-1;;26295:39:0;;;;;;;;;-1:-1:-1;;26213:129:0:o;91:557::-;147:13;179:10;175:53;;-1:-1:-1;;206:10:0;;;;;;;;;;;;-1:-1:-1;;;206:10:0;;;;;91:557::o;175:53::-;253:5;238:12;294:78;301:9;;294:78;;327:8;;;;:::i;:::-;;-1:-1:-1;350:10:0;;-1:-1:-1;358:2:0;350:10;;:::i;:::-;;;294:78;;;382:19;414:6;404:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;404:17:0;-1:-1:-1;382:39:0;-1:-1:-1;432:13:0;448:10;457:1;448:6;:10;:::i;:::-;432:26;;476:5;469:12;;492:117;499:9;;492:117;;561:9;568:2;561:4;:9;:::i;:::-;556:14;;:2;:14;:::i;:::-;543:29;;525:6;532:7;;;;:::i;:::-;;;525:15;;;;;;;;:::i;:::-;;;;:47;-1:-1:-1;;;;;525:47:0;;;;;;;;-1:-1:-1;587:10:0;595:2;587:10;;:::i;:::-;;;492:117;;;-1:-1:-1;633:6:0;91:557;-1:-1:-1;;;;91:557:0:o;3938:151::-;4022:4;2129:17;;;:12;;;:17;;;;;;:22;;4046:35;2034:125;8474:137;8544:4;8568:35;8576:3;8596:5;8568:7;:35::i;8335:131::-;8402:4;8426:32;8431:3;8451:5;8426:4;:32::i;3595:185::-;3684:4;3708:64;3713:3;3733;-1:-1:-1;;;;;3747:23:0;;3708:4;:64::i;3788:142::-;3865:4;3889:33;3897:3;3917;3889:7;:33::i;22030:354::-;22126:18;22132:2;22136:7;22126:5;:18::i;:::-;-1:-1:-1;;;;;22155:22:0;;;;;;:18;:22;;;;;;;;22178:10;22155:34;;;;;;;;;;:41;;-1:-1:-1;;22155:41:0;22192:4;22155:41;;;;;;22212:36;;540:41:1;;;22178:10:0;;22155:22;22212:36;;513:18:1;22212:36:0;;;;;;;22267:54;22298:1;22302:2;22306:7;22315:5;22267:22;:54::i;:::-;22259:117;;;;-1:-1:-1;;;22259:117:0;;;;;;;:::i;3207:319::-;3301:7;3340:17;;;:12;;;:17;;;;;;3391:12;3376:13;3368:36;;;;-1:-1:-1;;;3368:36:0;;;;;;;;:::i;:::-;-1:-1:-1;3458:3:0;3471:12;3482:1;3471:8;:12;:::i;:::-;3458:26;;;;;;;;:::i;:::-;;;;;;;;;;;:33;;;3451:40;;;3207:319;;;;;:::o;26930:604::-;27051:4;-1:-1:-1;;;;;27078:13:0;;9183:20;27073:60;;-1:-1:-1;27117:4:0;27110:11;;27073:60;27143:23;27169:252;-1:-1:-1;;;13673:10:0;27309:4;27328:7;27350:5;27185:181;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;27185:181:0;;;;;;;-1:-1:-1;;;;;27185:181:0;;;;;;;;;;;27169:252;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27169:15:0;;;:252;:15;:252::i;:::-;27143:278;;27432:13;27459:10;27448:32;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;27499:26:0;-1:-1:-1;;;27499:26:0;;-1:-1:-1;;;26930:604:0;;;;;;:::o;5552:671::-;5618:4;5656:19;;;:12;;;:19;;;;;;5692:15;;5688:528;;5762:21;5786:14;5799:1;5786:10;:14;:::i;:::-;5835:18;;5762:38;;-1:-1:-1;5815:17:0;;5835:22;;5856:1;;5835:22;:::i;:::-;5815:42;;5872:17;5892:3;:11;;5904:9;5892:22;;;;;;;;:::i;:::-;;;;;;;;;5872:42;;5960:9;5931:3;:11;;5943:13;5931:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;6010:17;:13;6026:1;6010:17;:::i;:::-;5984:23;;;;:12;;;:23;;;;;:43;6071:17;;5984:3;;6071:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6112:3;:12;;:19;6125:5;6112:19;;;;;;;;;;;6105:26;;;6155:4;6148:11;;;;;;;;5688:528;6199:5;6192:12;;;;;5253:291;5316:4;2129:17;;;:12;;;:17;;;;;;5333:204;;-1:-1:-1;5376:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;5436:18;;5414:19;;;:12;;;:19;;;;;;:40;;;;5469:11;;5333:204;-1:-1:-1;5520:5:0;5513:12;;873:470;949:4;985:17;;;:12;;;:17;;;;;;1019:13;1015:321;;-1:-1:-1;;1104:38:0;;;;;;;;;;;;;;;;;;1086:57;;;;;;;;:12;:57;;;;;;;;;;;;;;;;;;;;;;;;1178:19;;1158:17;;;:12;;;:17;;;;;;;:39;1212:11;;1015:321;1292:5;1256:3;1269:12;1280:1;1269:8;:12;:::i;:::-;1256:26;;;;;;;;:::i;:::-;;;;;;;;;;;:33;;:41;;;;1319:5;1312:12;;;;;1351:675;1415:4;1451:17;;;:12;;;:17;;;;;;1485:13;;1481:538;;1551:21;1575:12;1586:1;1575:8;:12;:::i;:::-;1622:19;;1551:36;;-1:-1:-1;1602:17:0;;1622:23;;1644:1;;1622:23;:::i;:::-;1602:43;;1660:26;1689:3;:12;;1702:9;1689:23;;;;;;;;:::i;:::-;;;;;;;;;;;1660:52;;1759:9;1729:3;:12;;1742:13;1729:27;;;;;;;;:::i;:::-;;;;;;;;;:39;;:27;;;;;:39;;;;;;;;;;;;1814:17;;:13;;:17;:::i;:::-;1796:14;;1783:28;;;;:12;;;:28;;;;;:48;1875:18;;1783:3;;1875:18;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1875:18:0;;;;;;;;;;;;;;;;;;;;;1917:17;;;:12;;;:17;;;;;;1910:24;;;;1875:18;-1:-1:-1;1951:11:0;;-1:-1:-1;;;;1951:11:0;22392:421;-1:-1:-1;;;;;22472:16:0;;22464:61;;;;-1:-1:-1;;;22464:61:0;;20398:2:1;22464:61:0;;;20380:21:1;;;20417:18;;;20410:30;20476:34;20456:18;;;20449:62;20528:18;;22464:61:0;20196:356:1;22464:61:0;22545:16;22553:7;22545;:16::i;:::-;22544:17;22536:58;;;;-1:-1:-1;;;22536:58:0;;20759:2:1;22536:58:0;;;20741:21:1;20798:2;20778:18;;;20771:30;20837;20817:18;;;20810:58;20885:18;;22536:58:0;20557:352:1;22536:58:0;-1:-1:-1;;;;;22673:17:0;;;;;;:13;:17;;;;;:30;;22695:7;22673:21;:30::i;:::-;-1:-1:-1;22716:29:0;:12;22733:7;22742:2;22716:16;:29::i;:::-;-1:-1:-1;22763:33:0;;22788:7;;-1:-1:-1;;;;;22763:33:0;;;22780:1;;22763:33;;22780:1;;22763:33;22392:421;;:::o;9246:195::-;9349:12;9381:52;9403:6;9411:4;9417:1;9420:12;9349;9183:20;;9927:60;;;;-1:-1:-1;;;9927:60:0;;21523:2:1;9927:60:0;;;21505:21:1;21562:2;21542:18;;;21535:30;21601:31;21581:18;;;21574:59;21650:18;;9927:60:0;21321:353:1;9927:60:0;10001:12;10015:23;10042:6;-1:-1:-1;;;;;10042:11:0;10062:5;10070:4;10042:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10000:75;;;;10093:52;10111:7;10120:10;10132:12;10093:17;:52::i;:::-;10086:59;9683:470;-1:-1:-1;;;;;;;9683:470:0:o;10161:515::-;10276:12;10305:7;10301:368;;;-1:-1:-1;10336:10:0;10329:17;;10301:368;10383:17;;:21;10379:279;;10486:10;10480:17;10547:15;10534:10;10530:2;10526:19;10519:44;10379:279;10629:12;10622:20;;-1:-1:-1;;;10622:20:0;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:258::-;664:1;674:113;688:6;685:1;682:13;674:113;;;764:11;;;758:18;745:11;;;738:39;710:2;703:10;674:113;;;805:6;802:1;799:13;796:48;;;-1:-1:-1;;840:1:1;822:16;;815:27;592:258::o;855:::-;897:3;935:5;929:12;962:6;957:3;950:19;978:63;1034:6;1027:4;1022:3;1018:14;1011:4;1004:5;1000:16;978:63;:::i;:::-;1095:2;1074:15;-1:-1:-1;;1070:29:1;1061:39;;;;1102:4;1057:50;;855:258;-1:-1:-1;;855:258:1:o;1118:220::-;1267:2;1256:9;1249:21;1230:4;1287:45;1328:2;1317:9;1313:18;1305:6;1287:45;:::i;1343:180::-;1402:6;1455:2;1443:9;1434:7;1430:23;1426:32;1423:52;;;1471:1;1468;1461:12;1423:52;-1:-1:-1;1494:23:1;;1343:180;-1:-1:-1;1343:180:1:o;1736:173::-;1804:20;;-1:-1:-1;;;;;1853:31:1;;1843:42;;1833:70;;1899:1;1896;1889:12;1914:254;1982:6;1990;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;2082:29;2101:9;2082:29;:::i;:::-;2072:39;2158:2;2143:18;;;;2130:32;;-1:-1:-1;;;1914:254:1:o;2173:127::-;2234:10;2229:3;2225:20;2222:1;2215:31;2265:4;2262:1;2255:15;2289:4;2286:1;2279:15;2305:632;2370:5;2400:18;2441:2;2433:6;2430:14;2427:40;;;2447:18;;:::i;:::-;2522:2;2516:9;2490:2;2576:15;;-1:-1:-1;;2572:24:1;;;2598:2;2568:33;2564:42;2552:55;;;2622:18;;;2642:22;;;2619:46;2616:72;;;2668:18;;:::i;:::-;2708:10;2704:2;2697:22;2737:6;2728:15;;2767:6;2759;2752:22;2807:3;2798:6;2793:3;2789:16;2786:25;2783:45;;;2824:1;2821;2814:12;2783:45;2874:6;2869:3;2862:4;2854:6;2850:17;2837:44;2929:1;2922:4;2913:6;2905;2901:19;2897:30;2890:41;;;;2305:632;;;;;:::o;2942:222::-;2985:5;3038:3;3031:4;3023:6;3019:17;3015:27;3005:55;;3056:1;3053;3046:12;3005:55;3078:80;3154:3;3145:6;3132:20;3125:4;3117:6;3113:17;3078:80;:::i;3169:322::-;3238:6;3291:2;3279:9;3270:7;3266:23;3262:32;3259:52;;;3307:1;3304;3297:12;3259:52;3347:9;3334:23;3380:18;3372:6;3369:30;3366:50;;;3412:1;3409;3402:12;3366:50;3435;3477:7;3468:6;3457:9;3453:22;3435:50;:::i;3678:328::-;3755:6;3763;3771;3824:2;3812:9;3803:7;3799:23;3795:32;3792:52;;;3840:1;3837;3830:12;3792:52;3863:29;3882:9;3863:29;:::i;:::-;3853:39;;3911:38;3945:2;3934:9;3930:18;3911:38;:::i;:::-;3901:48;;3996:2;3985:9;3981:18;3968:32;3958:42;;3678:328;;;;;:::o;4011:396::-;4089:6;4097;4150:2;4138:9;4129:7;4125:23;4121:32;4118:52;;;4166:1;4163;4156:12;4118:52;4189:29;4208:9;4189:29;:::i;:::-;4179:39;;4269:2;4258:9;4254:18;4241:32;4296:18;4288:6;4285:30;4282:50;;;4328:1;4325;4318:12;4282:50;4351;4393:7;4384:6;4373:9;4369:22;4351:50;:::i;:::-;4341:60;;;4011:396;;;;;:::o;4412:186::-;4471:6;4524:2;4512:9;4503:7;4499:23;4495:32;4492:52;;;4540:1;4537;4530:12;4492:52;4563:29;4582:9;4563:29;:::i;4603:347::-;4668:6;4676;4729:2;4717:9;4708:7;4704:23;4700:32;4697:52;;;4745:1;4742;4735:12;4697:52;4768:29;4787:9;4768:29;:::i;:::-;4758:39;;4847:2;4836:9;4832:18;4819:32;4894:5;4887:13;4880:21;4873:5;4870:32;4860:60;;4916:1;4913;4906:12;4860:60;4939:5;4929:15;;;4603:347;;;;;:::o;4955:667::-;5050:6;5058;5066;5074;5127:3;5115:9;5106:7;5102:23;5098:33;5095:53;;;5144:1;5141;5134:12;5095:53;5167:29;5186:9;5167:29;:::i;:::-;5157:39;;5215:38;5249:2;5238:9;5234:18;5215:38;:::i;:::-;5205:48;;5300:2;5289:9;5285:18;5272:32;5262:42;;5355:2;5344:9;5340:18;5327:32;5382:18;5374:6;5371:30;5368:50;;;5414:1;5411;5404:12;5368:50;5437:22;;5490:4;5482:13;;5478:27;-1:-1:-1;5468:55:1;;5519:1;5516;5509:12;5468:55;5542:74;5608:7;5603:2;5590:16;5585:2;5581;5577:11;5542:74;:::i;:::-;5532:84;;;4955:667;;;;;;;:::o;5627:390::-;5705:6;5713;5766:2;5754:9;5745:7;5741:23;5737:32;5734:52;;;5782:1;5779;5772:12;5734:52;5818:9;5805:23;5795:33;;5879:2;5868:9;5864:18;5851:32;5906:18;5898:6;5895:30;5892:50;;;5938:1;5935;5928:12;6022:260;6090:6;6098;6151:2;6139:9;6130:7;6126:23;6122:32;6119:52;;;6167:1;6164;6157:12;6119:52;6190:29;6209:9;6190:29;:::i;:::-;6180:39;;6238:38;6272:2;6261:9;6257:18;6238:38;:::i;:::-;6228:48;;6022:260;;;;;:::o;6287:380::-;6366:1;6362:12;;;;6409;;;6430:61;;6484:4;6476:6;6472:17;6462:27;;6430:61;6537:2;6529:6;6526:14;6506:18;6503:38;6500:161;;;6583:10;6578:3;6574:20;6571:1;6564:31;6618:4;6615:1;6608:15;6646:4;6643:1;6636:15;6500:161;;6287:380;;;:::o;7912:276::-;8043:3;8081:6;8075:13;8097:53;8143:6;8138:3;8131:4;8123:6;8119:17;8097:53;:::i;:::-;8166:16;;;;;7912:276;-1:-1:-1;;7912:276:1:o;8193:413::-;8395:2;8377:21;;;8434:2;8414:18;;;8407:30;8473:34;8468:2;8453:18;;8446:62;-1:-1:-1;;;8539:2:1;8524:18;;8517:47;8596:3;8581:19;;8193:413::o;8611:400::-;8813:2;8795:21;;;8852:2;8832:18;;;8825:30;8891:34;8886:2;8871:18;;8864:62;-1:-1:-1;;;8957:2:1;8942:18;;8935:34;9001:3;8986:19;;8611:400::o;9016:349::-;9218:2;9200:21;;;9257:2;9237:18;;;9230:30;9296:27;9291:2;9276:18;;9269:55;9356:2;9341:18;;9016:349::o;9370:356::-;9572:2;9554:21;;;9591:18;;;9584:30;9650:34;9645:2;9630:18;;9623:62;9717:2;9702:18;;9370:356::o;10092:127::-;10153:10;10148:3;10144:20;10141:1;10134:31;10184:4;10181:1;10174:15;10208:4;10205:1;10198:15;10224:128;10264:3;10295:1;10291:6;10288:1;10285:13;10282:39;;;10301:18;;:::i;:::-;-1:-1:-1;10337:9:1;;10224:128::o;12478:1104::-;12608:3;12637:1;12670:6;12664:13;12700:3;12722:1;12750:9;12746:2;12742:18;12732:28;;12810:2;12799:9;12795:18;12832;12822:61;;12876:4;12868:6;12864:17;12854:27;;12822:61;12902:2;12950;12942:6;12939:14;12919:18;12916:38;12913:165;;;-1:-1:-1;;;12977:33:1;;13033:4;13030:1;13023:15;13063:4;12984:3;13051:17;12913:165;13094:18;13121:104;;;;13239:1;13234:323;;;;13087:470;;13121:104;-1:-1:-1;;13154:24:1;;13142:37;;13199:16;;;;-1:-1:-1;13121:104:1;;13234:323;12425:1;12418:14;;;12462:4;12449:18;;13332:1;13346:165;13360:6;13357:1;13354:13;13346:165;;;13438:14;;13425:11;;;13418:35;13481:16;;;;13375:10;;13346:165;;;13350:3;;13540:6;13535:3;13531:16;13524:23;;13087:470;-1:-1:-1;13573:3:1;;12478:1104;-1:-1:-1;;;;;;;;12478:1104:1:o;13587:184::-;13657:6;13710:2;13698:9;13689:7;13685:23;13681:32;13678:52;;;13726:1;13723;13716:12;13678:52;-1:-1:-1;13749:16:1;;13587:184;-1:-1:-1;13587:184:1:o;15225:470::-;15404:3;15442:6;15436:13;15458:53;15504:6;15499:3;15492:4;15484:6;15480:17;15458:53;:::i;:::-;15574:13;;15533:16;;;;15596:57;15574:13;15533:16;15630:4;15618:17;;15596:57;:::i;:::-;15669:20;;15225:470;-1:-1:-1;;;;15225:470:1:o;15700:127::-;15761:10;15756:3;15752:20;15749:1;15742:31;15792:4;15789:1;15782:15;15816:4;15813:1;15806:15;15832:204;15870:3;15906:4;15903:1;15899:12;15938:4;15935:1;15931:12;15973:3;15967:4;15963:14;15958:3;15955:23;15952:49;;;15981:18;;:::i;:::-;16017:13;;15832:204;-1:-1:-1;;;15832:204:1:o;16041:135::-;16080:3;-1:-1:-1;;16101:17:1;;16098:43;;;16121:18;;:::i;:::-;-1:-1:-1;16168:1:1;16157:13;;16041:135::o;18236:414::-;18438:2;18420:21;;;18477:2;18457:18;;;18450:30;18516:34;18511:2;18496:18;;18489:62;-1:-1:-1;;;18582:2:1;18567:18;;18560:48;18640:3;18625:19;;18236:414::o;18655:127::-;18716:10;18711:3;18707:20;18704:1;18697:31;18747:4;18744:1;18737:15;18771:4;18768:1;18761:15;18787:120;18827:1;18853;18843:35;;18858:18;;:::i;:::-;-1:-1:-1;18892:9:1;;18787:120::o;18912:125::-;18952:4;18980:1;18977;18974:8;18971:34;;;18985:18;;:::i;:::-;-1:-1:-1;19022:9:1;;18912:125::o;19042:112::-;19074:1;19100;19090:35;;19105:18;;:::i;:::-;-1:-1:-1;19139:9:1;;19042:112::o;19159:136::-;19198:3;19226:5;19216:39;;19235:18;;:::i;:::-;-1:-1:-1;;;19271:18:1;;19159:136::o;19300:505::-;-1:-1:-1;;;;;19585:15:1;;;19567:34;;19637:15;;19632:2;19617:18;;19610:43;19684:2;19669:18;;19662:34;;;19732:3;19727:2;19712:18;;19705:31;;;19510:4;;19753:46;;19779:19;;19771:6;19753:46;:::i;:::-;19745:54;19300:505;-1:-1:-1;;;;;;19300:505:1:o;19810:249::-;19879:6;19932:2;19920:9;19911:7;19907:23;19903:32;19900:52;;;19948:1;19945;19938:12;19900:52;19980:9;19974:16;19999:30;20023:5;19999:30;:::i;20064:127::-;20125:10;20120:3;20116:20;20113:1;20106:31;20156:4;20153:1;20146:15;20180:4;20177:1;20170:15
Swarm Source
ipfs://023957c166006a6208b2e55a14fffdecd6f15393394e21b95ea9ec863333b23e
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.