Token Pixel City
Overview CRC721
Total Supply:
702 PC
Holders:
257 addresses
Contract:
Balance
2 PC
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Pixel_City_NFT
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-02-26 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly {size := extcodesize(account)} return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(''); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, 'Address: low-level static call failed'); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library Counters { struct Counter { uint256 _value; } function current(Counter storage counter) internal view returns (uint256) { return counter._value; } function increment(Counter storage counter) internal { unchecked { counter._value += 1; } } function decrement(Counter storage counter) internal { uint256 value = counter._value; require(value > 0, "Counters: decrement overflow"); unchecked { counter._value = value - 1; } } } library Strings { bytes16 private constant alphabet = '0123456789abcdef'; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return '0'; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return '0x00'; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = '0'; buffer[1] = 'x'; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = alphabet[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } abstract contract Pausable is Context { event Paused(address account); event Unpaused(address account); bool private _paused; constructor() { _paused = false; } function paused() public view virtual returns (bool) { return _paused; } modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IST20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom(address from, address to, uint256 tokenId) external; function transferFrom(address from, address to, uint256 tokenId) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; } interface IERC721Receiver { function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4); } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ''; } function _baseURI() internal view virtual returns (string memory) { return ''; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require(_msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all"); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom(address from, address to, uint256 tokenId) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override { safeTransferFrom(from, to, tokenId, ''); } function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ''); } function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual { _mint(to, tokenId); require(_checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer(address from, address to, uint256 tokenId) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual {} } interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function tokenByIndex(uint256 index) external view returns (uint256); } abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(uint256 => uint256) private _ownedTokensIndex; uint256[] private _allTokens; mapping(uint256 => uint256) private _allTokensIndex; function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; _ownedTokens[from][tokenIndex] = lastTokenId; _ownedTokensIndex[lastTokenId] = tokenIndex; } delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; uint256 lastTokenId = _allTokens[lastTokenIndex]; _allTokens[tokenIndex] = lastTokenId; _allTokensIndex[lastTokenId] = tokenIndex; delete _allTokensIndex[tokenId]; _allTokens.pop(); } } abstract contract ERC721URIStorage is ERC721 { using Strings for uint256; mapping(uint256 => string) private _tokenURIs; function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token"); string memory _tokenURI = _tokenURIs[tokenId]; string memory base = _baseURI(); if (bytes(base).length == 0) { return _tokenURI; } if (bytes(_tokenURI).length > 0) { return string(abi.encodePacked(base, _tokenURI)); } return super.tokenURI(tokenId); } function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token"); _tokenURIs[tokenId] = _tokenURI; } function _burn(uint256 tokenId) internal virtual override { super._burn(tokenId); if (bytes(_tokenURIs[tokenId]).length != 0) { delete _tokenURIs[tokenId]; } } } abstract contract ERC721Burnable is Context, ERC721 { function burn(uint256 tokenId) public virtual { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); _burn(tokenId); } } contract Pixel_City_NFT is Ownable, Pausable, ERC721, ERC721Enumerable, ERC721URIStorage, ERC721Burnable { using Counters for Counters.Counter; Counters.Counter private _tokenIdCounter; mapping(address => bool) public whitelistedAddress; uint256 public mintPrice; uint256 public whitelistMintPrice; uint256 public maxNFT; string public baseURI; string private _name; string private _symbol; bool public mintStarted = false; constructor(string memory _name, string memory _symbol, uint256 _mintPrice, uint256 _maxNFT, uint256 _whitelistMintPrice) ERC721 (_name, _symbol) payable public { mintPrice = _mintPrice; maxNFT = _maxNFT; whitelistMintPrice = _whitelistMintPrice; } receive() external payable {} function _baseURI() internal view override returns (string memory) { return baseURI; } function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) { return string(abi.encodePacked(super.tokenURI(tokenId), ".json")); } function supportsInterface(bytes4 interfaceId) public view override(ERC721, ERC721Enumerable) returns (bool) { return super.supportsInterface(interfaceId); } function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) { super._burn(tokenId); } function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal override(ERC721, ERC721Enumerable) whenNotPaused { super._beforeTokenTransfer(from, to, tokenId); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function toggleMint() public onlyOwner { mintStarted = !mintStarted; } function setMintPrice(uint256 _mintPrice) public onlyOwner { mintPrice = _mintPrice; } function setBaseURI(string memory _baseURI) public onlyOwner { baseURI = _baseURI; } function internalMint(address to) internal { _safeMint(to, _tokenIdCounter.current()); _tokenIdCounter.increment(); } function ownerMintNFT(uint256 amount) public onlyOwner { require(amount <= maxNFT, "NFT: Max NFT limit exceeded!"); for (uint256 i = 0; i < amount; i++) { internalMint(msg.sender); } } function addBatchToWhitelisted(address[] calldata _addresses) public onlyOwner { for (uint256 i = 0; i < _addresses.length; i++) { whitelistedAddress[_addresses[i]] = true; } } function addToWhitelisted(address _address) public onlyOwner { require(!whitelistedAddress[_address], "NFT: Address is already whitelisted!"); whitelistedAddress[_address] = true; } function removeFromWhitelisted(address _address) public onlyOwner { require(whitelistedAddress[_address], "NFT: Address is not whitelisted!"); whitelistedAddress[_address] = false; } function mintNFT(uint256 amount) public payable { if (whitelistedAddress[msg.sender] = true) { require(msg.value >= whitelistMintPrice * amount, "NFT: Insufficient mint fees!"); require(amount <= maxNFT, "NFT: Max NFT limit exceeded!"); for (uint256 i = 0; i < amount; i++) { internalMint(msg.sender); } } else { require(mintStarted == true, "NFT: Mint not started yet!"); require(msg.value >= mintPrice * amount, "NFT: Insufficient mint fees!"); require(amount <= maxNFT, "NFT: Max NFT limit exceeded!"); for (uint256 i = 0; i < amount; i++) { internalMint(msg.sender); } } } // ------------------------------------------------------------------------ // Function to Withdraw Coins sent by mistake to the Token Contract Address. // Only the Contract owner can withdraw the Coins. // ------------------------------------------------------------------------ function withdrawCoins() public onlyOwner { payable(msg.sender).transfer(address(this).balance); } // ------------------------------------------------------------------------ // Function to Withdraw Tokens sent by mistake to the Token Contract Address. // Only the Contract owner can withdraw the Tokens. // ------------------------------------------------------------------------ function WithdrawTokens(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner { IST20(tokenAddress).transfer(owner(), tokenAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_mintPrice","type":"uint256"},{"internalType":"uint256","name":"_maxNFT","type":"uint256"},{"internalType":"uint256","name":"_whitelistMintPrice","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"WithdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addBatchToWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addToWhitelisted","outputs":[],"stateMutability":"nonpayable","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"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintNFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerMintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistMintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawCoins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060408190526014805460ff1916905562003080388190039081908339810160408190526200002f916200022c565b848460006200003d620000d7565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000a9906001906020850190620000db565b508051620000bf906002906020840190620000db565b505050600e92909255601055600f5550620003019050565b3390565b828054620000e990620002ae565b90600052602060002090601f0160209004810192826200010d576000855562000158565b82601f106200012857805160ff191683800117855562000158565b8280016001018555821562000158579182015b82811115620001585782518255916020019190600101906200013b565b50620001669291506200016a565b5090565b5b808211156200016657600081556001016200016b565b600082601f83011262000192578081fd5b81516001600160401b0380821115620001af57620001af620002eb565b6040516020601f8401601f1916820181018381118382101715620001d757620001d7620002eb565b6040528382528584018101871015620001ee578485fd5b8492505b83831015620002115785830181015182840182015291820191620001f2565b838311156200022257848185840101525b5095945050505050565b600080600080600060a0868803121562000244578081fd5b85516001600160401b03808211156200025b578283fd5b6200026989838a0162000181565b965060208801519150808211156200027f578283fd5b506200028e8882890162000181565b60408801516060890151608090990151979a919950979695509350505050565b600281046001821680620002c357607f821691505b60208210811415620002e557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612d6f80620003116000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063b88d4fde116100ab578063e46c15071161006f578063e46c150714610618578063e985e9c514610638578063f2fde38b14610658578063f4a0a52814610678578063ffbb62a3146106985761023b565b8063b88d4fde1461058e578063c30796ab146105ae578063c87b56dd146105ce578063d3dd5fe0146105ee578063e456b01c146106035761023b565b806392642744116100f2578063926427441461051157806395d89b41146105245780639e61d43114610539578063a22cb46514610559578063a9722cf3146105795761023b565b806370a0823114610492578063715018a6146104b25780637206e3e5146104c75780638456cb59146104e75780638da5cb5b146104fc5761023b565b806342842e0e116101bc5780635c975abb116101805780635c975abb146104135780636352211e14610428578063680f2e4f146104485780636817c76c146104685780636c0360eb1461047d5761023b565b806342842e0e1461037357806342966c68146103935780634f6ccce7146103b357806355e03be3146103d357806355f804b3146103f35761023b565b806318160ddd1161020357806318160ddd146102e757806323b872dd146103095780632f745c591461032957806335c6aaf8146103495780633f4ba83a1461035e5761023b565b806301ffc9a71461024057806306fdde0314610276578063081812fc14610298578063095ea7b3146102c55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004612353565b6106ad565b60405161026d91906124d7565b60405180910390f35b34801561028257600080fd5b5061028b6106c0565b60405161026d91906124e2565b3480156102a457600080fd5b506102b86102b33660046123d1565b610752565b60405161026d919061246d565b3480156102d157600080fd5b506102e56102e036600461229f565b61079e565b005b3480156102f357600080fd5b506102fc610836565b60405161026d9190612bd2565b34801561031557600080fd5b506102e56103243660046121b5565b61083c565b34801561033557600080fd5b506102fc61034436600461229f565b610874565b34801561035557600080fd5b506102fc6108c6565b34801561036a57600080fd5b506102e56108cc565b34801561037f57600080fd5b506102e561038e3660046121b5565b610915565b34801561039f57600080fd5b506102e56103ae3660046123d1565b610930565b3480156103bf57600080fd5b506102fc6103ce3660046123d1565b610963565b3480156103df57600080fd5b506102e56103ee3660046122c8565b6109be565b3480156103ff57600080fd5b506102e561040e36600461238b565b610a7d565b34801561041f57600080fd5b50610260610ad3565b34801561043457600080fd5b506102b86104433660046123d1565b610ae3565b34801561045457600080fd5b506102e561046336600461229f565b610b18565b34801561047457600080fd5b506102fc610bde565b34801561048957600080fd5b5061028b610be4565b34801561049e57600080fd5b506102fc6104ad366004612169565b610c72565b3480156104be57600080fd5b506102e5610cb6565b3480156104d357600080fd5b506102e56104e23660046123d1565b610d3f565b3480156104f357600080fd5b506102e5610dc6565b34801561050857600080fd5b506102b8610e0d565b6102e561051f3660046123d1565b610e1c565b34801561053057600080fd5b5061028b610ed4565b34801561054557600080fd5b506102e5610554366004612169565b610ee3565b34801561056557600080fd5b506102e5610574366004612269565b610f7b565b34801561058557600080fd5b50610260611049565b34801561059a57600080fd5b506102e56105a93660046121f0565b611052565b3480156105ba57600080fd5b506102606105c9366004612169565b611091565b3480156105da57600080fd5b5061028b6105e93660046123d1565b6110a6565b3480156105fa57600080fd5b506102e56110d7565b34801561060f57600080fd5b506102fc61112a565b34801561062457600080fd5b506102e5610633366004612169565b611130565b34801561064457600080fd5b50610260610653366004612183565b6111cc565b34801561066457600080fd5b506102e5610673366004612169565b6111fa565b34801561068457600080fd5b506102e56106933660046123d1565b6112ba565b3480156106a457600080fd5b506102e56112fe565b60006106b882611369565b90505b919050565b6060600180546106cf90612c69565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90612c69565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061075d8261138e565b6107825760405162461bcd60e51b8152600401610779906128a4565b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b60006107a982610ae3565b9050806001600160a01b0316836001600160a01b031614156107dd5760405162461bcd60e51b8152600401610779906129bd565b806001600160a01b03166107ef6113ab565b6001600160a01b0316148061080b575061080b816106536113ab565b6108275760405162461bcd60e51b81526004016107799061272e565b61083183836113af565b505050565b60095490565b61084d6108476113ab565b8261141d565b6108695760405162461bcd60e51b8152600401610779906129fe565b6108318383836114a2565b600061087f83610c72565b821061089d5760405162461bcd60e51b815260040161077990612523565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b600f5481565b6108d46113ab565b6001600160a01b03166108e5610e0d565b6001600160a01b03161461090b5760405162461bcd60e51b8152600401610779906128f0565b6109136115cf565b565b61083183838360405180602001604052806000815250611052565b61093b6108476113ab565b6109575760405162461bcd60e51b815260040161077990612b82565b61096081611640565b50565b600061096d610836565b821061098b5760405162461bcd60e51b815260040161077990612aff565b600982815481106109ac57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6109c66113ab565b6001600160a01b03166109d7610e0d565b6001600160a01b0316146109fd5760405162461bcd60e51b8152600401610779906128f0565b60005b81811015610831576001600d6000858585818110610a2e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a439190612169565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a7581612ca4565b915050610a00565b610a856113ab565b6001600160a01b0316610a96610e0d565b6001600160a01b031614610abc5760405162461bcd60e51b8152600401610779906128f0565b8051610acf906011906020840190612011565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106b85760405162461bcd60e51b8152600401610779906127d5565b610b206113ab565b6001600160a01b0316610b31610e0d565b6001600160a01b031614610b575760405162461bcd60e51b8152600401610779906128f0565b816001600160a01b031663a9059cbb610b6e610e0d565b836040518363ffffffff1660e01b8152600401610b8c9291906124be565b602060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612337565b600e5481565b60118054610bf190612c69565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90612c69565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505081565b60006001600160a01b038216610c9a5760405162461bcd60e51b81526004016107799061278b565b506001600160a01b031660009081526004602052604090205490565b610cbe6113ab565b6001600160a01b0316610ccf610e0d565b6001600160a01b031614610cf55760405162461bcd60e51b8152600401610779906128f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610d476113ab565b6001600160a01b0316610d58610e0d565b6001600160a01b031614610d7e5760405162461bcd60e51b8152600401610779906128f0565b601054811115610da05760405162461bcd60e51b815260040161077990612b4b565b60005b81811015610acf57610db433611649565b80610dbe81612ca4565b915050610da3565b610dce6113ab565b6001600160a01b0316610ddf610e0d565b6001600160a01b031614610e055760405162461bcd60e51b8152600401610779906128f0565b610913611666565b6000546001600160a01b031690565b336000908152600d60205260409020805460ff1916600117905580600f54610e449190612c07565b341015610e635760405162461bcd60e51b815260040161077990612a4f565b601054811115610e855760405162461bcd60e51b815260040161077990612b4b565b60005b81811015610eab57610e9933611649565b80610ea381612ca4565b915050610e88565b50610960565b81811015610acf57610ec233611649565b80610ecc81612ca4565b915050610eb1565b6060600280546106cf90612c69565b610eeb6113ab565b6001600160a01b0316610efc610e0d565b6001600160a01b031614610f225760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b0381166000908152600d602052604090205460ff16610f5a5760405162461bcd60e51b815260040161077990612aca565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b610f836113ab565b6001600160a01b0316826001600160a01b03161415610fb45760405162461bcd60e51b815260040161077990612681565b8060066000610fc16113ab565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556110056113ab565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161103d91906124d7565b60405180910390a35050565b60145460ff1681565b61106361105d6113ab565b8361141d565b61107f5760405162461bcd60e51b8152600401610779906129fe565b61108b848484846116c7565b50505050565b600d6020526000908152604090205460ff1681565b60606110b1826116fa565b6040516020016110c19190612444565b6040516020818303038152906040529050919050565b6110df6113ab565b6001600160a01b03166110f0610e0d565b6001600160a01b0316146111165760405162461bcd60e51b8152600401610779906128f0565b6014805460ff19811660ff90911615179055565b60105481565b6111386113ab565b6001600160a01b0316611149610e0d565b6001600160a01b03161461116f5760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b0381166000908152600d602052604090205460ff16156111a85760405162461bcd60e51b815260040161077990612a86565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b6112026113ab565b6001600160a01b0316611213610e0d565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b03811661125f5760405162461bcd60e51b8152600401610779906125c0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6112c26113ab565b6001600160a01b03166112d3610e0d565b6001600160a01b0316146112f95760405162461bcd60e51b8152600401610779906128f0565b600e55565b6113066113ab565b6001600160a01b0316611317610e0d565b6001600160a01b03161461133d5760405162461bcd60e51b8152600401610779906128f0565b60405133904780156108fc02916000818181858888f19350505050158015610960573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b14806106b857506106b882611813565b6000908152600360205260409020546001600160a01b0316151590565b3390565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906113e482610ae3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006114288261138e565b6114445760405162461bcd60e51b8152600401610779906126b8565b600061144f83610ae3565b9050806001600160a01b0316846001600160a01b0316148061148a5750836001600160a01b031661147f84610752565b6001600160a01b0316145b8061149a575061149a81856111cc565b949350505050565b826001600160a01b03166114b582610ae3565b6001600160a01b0316146114db5760405162461bcd60e51b815260040161077990612925565b6001600160a01b0382166115015760405162461bcd60e51b81526004016107799061263d565b61150c838383611853565b6115176000826113af565b6001600160a01b0383166000908152600460205260408120805460019290611540908490612c26565b90915550506001600160a01b038216600090815260046020526040812080546001929061156e908490612bdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6115d7610ad3565b6115f35760405162461bcd60e51b8152600401610779906124f5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6116296113ab565b604051611636919061246d565b60405180910390a1565b61096081611883565b61165c81611657600c6118c3565b6118c7565b610960600c6118e1565b61166e610ad3565b1561168b5760405162461bcd60e51b815260040161077990612704565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116296113ab565b6116d28484846114a2565b6116de848484846118ea565b61108b5760405162461bcd60e51b81526004016107799061256e565b60606117058261138e565b6117215760405162461bcd60e51b815260040161077990612853565b6000828152600b60205260408120805461173a90612c69565b80601f016020809104026020016040519081016040528092919081815260200182805461176690612c69565b80156117b35780601f10611788576101008083540402835291602001916117b3565b820191906000526020600020905b81548152906001019060200180831161179657829003601f168201915b5050505050905060006117c4611a05565b90508051600014156117d8575090506106bb565b81511561180a5780826040516020016117f2929190612415565b604051602081830303815290604052925050506106bb565b61149a84611a14565b60006001600160e01b031982166380ac58cd60e01b148061184457506001600160e01b03198216635b5e139f60e01b145b806106b857506106b882611a97565b61185b610ad3565b156118785760405162461bcd60e51b815260040161077990612704565b610831838383611ab0565b61188c81611b39565b6000818152600b6020526040902080546118a590612c69565b159050610960576000818152600b6020526040812061096091612095565b5490565b610acf828260405180602001604052806000815250611be0565b80546001019055565b60006118fe846001600160a01b0316611c13565b156119fa57836001600160a01b031663150b7a0261191a6113ab565b8786866040518563ffffffff1660e01b815260040161193c9493929190612481565b602060405180830381600087803b15801561195657600080fd5b505af1925050508015611986575060408051601f3d908101601f191682019092526119839181019061236f565b60015b6119e0573d8080156119b4576040519150601f19603f3d011682016040523d82523d6000602084013e6119b9565b606091505b5080516119d85760405162461bcd60e51b81526004016107799061256e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061149a565b506001949350505050565b6060601180546106cf90612c69565b6060611a1f8261138e565b611a3b5760405162461bcd60e51b81526004016107799061296e565b6000611a45611a05565b90506000815111611a655760405180602001604052806000815250611a90565b80611a6f84611c19565b604051602001611a80929190612415565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611abb838383610831565b6001600160a01b038316611ad757611ad281611d34565b611afa565b816001600160a01b0316836001600160a01b031614611afa57611afa8382611d78565b6001600160a01b038216611b1657611b1181611e15565b610831565b826001600160a01b0316826001600160a01b031614610831576108318282611eee565b6000611b4482610ae3565b9050611b5281600084611853565b611b5d6000836113af565b6001600160a01b0381166000908152600460205260408120805460019290611b86908490612c26565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611bea8383611f32565b611bf760008484846118ea565b6108315760405162461bcd60e51b81526004016107799061256e565b3b151590565b606081611c3e57506040805180820190915260018152600360fc1b60208201526106bb565b8160005b8115611c685780611c5281612ca4565b9150611c619050600a83612bf3565b9150611c42565b60008167ffffffffffffffff811115611c9157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611cbb576020820181803683370190505b5090505b841561149a57611cd0600183612c26565b9150611cdd600a86612cbf565b611ce8906030612bdb565b60f81b818381518110611d0b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611d2d600a86612bf3565b9450611cbf565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611d8584610c72565b611d8f9190612c26565b600083815260086020526040902054909150808214611de2576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611e2790600190612c26565b6000838152600a602052604081205460098054939450909284908110611e5d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611e8c57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611ed257634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611ef983610c72565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611f585760405162461bcd60e51b81526004016107799061281e565b611f618161138e565b15611f7e5760405162461bcd60e51b815260040161077990612606565b611f8a60008383611853565b6001600160a01b0382166000908152600460205260408120805460019290611fb3908490612bdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461201d90612c69565b90600052602060002090601f01602090048101928261203f5760008555612085565b82601f1061205857805160ff1916838001178555612085565b82800160010185558215612085579182015b8281111561208557825182559160200191906001019061206a565b506120919291506120cd565b5090565b5080546120a190612c69565b6000825580601f106120b35750610960565b601f01602090049060005260206000209081019061096091905b5b8082111561209157600081556001016120ce565b600067ffffffffffffffff808411156120fd576120fd612cff565b604051601f8501601f19168101602001828111828210171561212157612121612cff565b60405284815291508183850186101561213957600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b03811681146106bb57600080fd5b60006020828403121561217a578081fd5b611a9082612152565b60008060408385031215612195578081fd5b61219e83612152565b91506121ac60208401612152565b90509250929050565b6000806000606084860312156121c9578081fd5b6121d284612152565b92506121e060208501612152565b9150604084013590509250925092565b60008060008060808587031215612205578081fd5b61220e85612152565b935061221c60208601612152565b925060408501359150606085013567ffffffffffffffff81111561223e578182fd5b8501601f8101871361224e578182fd5b61225d878235602084016120e2565b91505092959194509250565b6000806040838503121561227b578182fd5b61228483612152565b9150602083013561229481612d15565b809150509250929050565b600080604083850312156122b1578182fd5b6122ba83612152565b946020939093013593505050565b600080602083850312156122da578182fd5b823567ffffffffffffffff808211156122f1578384fd5b818501915085601f830112612304578384fd5b813581811115612312578485fd5b8660208083028501011115612325578485fd5b60209290920196919550909350505050565b600060208284031215612348578081fd5b8151611a9081612d15565b600060208284031215612364578081fd5b8135611a9081612d23565b600060208284031215612380578081fd5b8151611a9081612d23565b60006020828403121561239c578081fd5b813567ffffffffffffffff8111156123b2578182fd5b8201601f810184136123c2578182fd5b61149a848235602084016120e2565b6000602082840312156123e2578081fd5b5035919050565b60008151808452612401816020860160208601612c3d565b601f01601f19169290920160200192915050565b60008351612427818460208801612c3d565b83519083019061243b818360208801612c3d565b01949350505050565b60008251612456818460208701612c3d565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124b4908301846123e9565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252611a9060208301846123e9565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b60208082526024908201527f4e46543a204164647265737320697320616c72656164792077686974656c69736040820152637465642160e01b606082015260800190565b6020808252818101527f4e46543a2041646472657373206973206e6f742077686974656c697374656421604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b60008219821115612bee57612bee612cd3565b500190565b600082612c0257612c02612ce9565b500490565b6000816000190483118215151615612c2157612c21612cd3565b500290565b600082821015612c3857612c38612cd3565b500390565b60005b83811015612c58578181015183820152602001612c40565b8381111561108b5750506000910152565b600281046001821680612c7d57607f821691505b60208210811415612c9e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612cb857612cb8612cd3565b5060010190565b600082612cce57612cce612ce9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b801515811461096057600080fd5b6001600160e01b03198116811461096057600080fdfea2646970667358221220a1f853636c1a37a30a7bdc66d79d6be09fba04381b042c884849cb4a8077d23a64736f6c6343000800003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000012f939c99edab80000000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000001043561a8829300000000000000000000000000000000000000000000000000000000000000000000a506978656c20436974790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025043000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102345760003560e01c806370a082311161012e578063b88d4fde116100ab578063e46c15071161006f578063e46c150714610618578063e985e9c514610638578063f2fde38b14610658578063f4a0a52814610678578063ffbb62a3146106985761023b565b8063b88d4fde1461058e578063c30796ab146105ae578063c87b56dd146105ce578063d3dd5fe0146105ee578063e456b01c146106035761023b565b806392642744116100f2578063926427441461051157806395d89b41146105245780639e61d43114610539578063a22cb46514610559578063a9722cf3146105795761023b565b806370a0823114610492578063715018a6146104b25780637206e3e5146104c75780638456cb59146104e75780638da5cb5b146104fc5761023b565b806342842e0e116101bc5780635c975abb116101805780635c975abb146104135780636352211e14610428578063680f2e4f146104485780636817c76c146104685780636c0360eb1461047d5761023b565b806342842e0e1461037357806342966c68146103935780634f6ccce7146103b357806355e03be3146103d357806355f804b3146103f35761023b565b806318160ddd1161020357806318160ddd146102e757806323b872dd146103095780632f745c591461032957806335c6aaf8146103495780633f4ba83a1461035e5761023b565b806301ffc9a71461024057806306fdde0314610276578063081812fc14610298578063095ea7b3146102c55761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004612353565b6106ad565b60405161026d91906124d7565b60405180910390f35b34801561028257600080fd5b5061028b6106c0565b60405161026d91906124e2565b3480156102a457600080fd5b506102b86102b33660046123d1565b610752565b60405161026d919061246d565b3480156102d157600080fd5b506102e56102e036600461229f565b61079e565b005b3480156102f357600080fd5b506102fc610836565b60405161026d9190612bd2565b34801561031557600080fd5b506102e56103243660046121b5565b61083c565b34801561033557600080fd5b506102fc61034436600461229f565b610874565b34801561035557600080fd5b506102fc6108c6565b34801561036a57600080fd5b506102e56108cc565b34801561037f57600080fd5b506102e561038e3660046121b5565b610915565b34801561039f57600080fd5b506102e56103ae3660046123d1565b610930565b3480156103bf57600080fd5b506102fc6103ce3660046123d1565b610963565b3480156103df57600080fd5b506102e56103ee3660046122c8565b6109be565b3480156103ff57600080fd5b506102e561040e36600461238b565b610a7d565b34801561041f57600080fd5b50610260610ad3565b34801561043457600080fd5b506102b86104433660046123d1565b610ae3565b34801561045457600080fd5b506102e561046336600461229f565b610b18565b34801561047457600080fd5b506102fc610bde565b34801561048957600080fd5b5061028b610be4565b34801561049e57600080fd5b506102fc6104ad366004612169565b610c72565b3480156104be57600080fd5b506102e5610cb6565b3480156104d357600080fd5b506102e56104e23660046123d1565b610d3f565b3480156104f357600080fd5b506102e5610dc6565b34801561050857600080fd5b506102b8610e0d565b6102e561051f3660046123d1565b610e1c565b34801561053057600080fd5b5061028b610ed4565b34801561054557600080fd5b506102e5610554366004612169565b610ee3565b34801561056557600080fd5b506102e5610574366004612269565b610f7b565b34801561058557600080fd5b50610260611049565b34801561059a57600080fd5b506102e56105a93660046121f0565b611052565b3480156105ba57600080fd5b506102606105c9366004612169565b611091565b3480156105da57600080fd5b5061028b6105e93660046123d1565b6110a6565b3480156105fa57600080fd5b506102e56110d7565b34801561060f57600080fd5b506102fc61112a565b34801561062457600080fd5b506102e5610633366004612169565b611130565b34801561064457600080fd5b50610260610653366004612183565b6111cc565b34801561066457600080fd5b506102e5610673366004612169565b6111fa565b34801561068457600080fd5b506102e56106933660046123d1565b6112ba565b3480156106a457600080fd5b506102e56112fe565b60006106b882611369565b90505b919050565b6060600180546106cf90612c69565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90612c69565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061075d8261138e565b6107825760405162461bcd60e51b8152600401610779906128a4565b60405180910390fd5b506000908152600560205260409020546001600160a01b031690565b60006107a982610ae3565b9050806001600160a01b0316836001600160a01b031614156107dd5760405162461bcd60e51b8152600401610779906129bd565b806001600160a01b03166107ef6113ab565b6001600160a01b0316148061080b575061080b816106536113ab565b6108275760405162461bcd60e51b81526004016107799061272e565b61083183836113af565b505050565b60095490565b61084d6108476113ab565b8261141d565b6108695760405162461bcd60e51b8152600401610779906129fe565b6108318383836114a2565b600061087f83610c72565b821061089d5760405162461bcd60e51b815260040161077990612523565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b600f5481565b6108d46113ab565b6001600160a01b03166108e5610e0d565b6001600160a01b03161461090b5760405162461bcd60e51b8152600401610779906128f0565b6109136115cf565b565b61083183838360405180602001604052806000815250611052565b61093b6108476113ab565b6109575760405162461bcd60e51b815260040161077990612b82565b61096081611640565b50565b600061096d610836565b821061098b5760405162461bcd60e51b815260040161077990612aff565b600982815481106109ac57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6109c66113ab565b6001600160a01b03166109d7610e0d565b6001600160a01b0316146109fd5760405162461bcd60e51b8152600401610779906128f0565b60005b81811015610831576001600d6000858585818110610a2e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a439190612169565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a7581612ca4565b915050610a00565b610a856113ab565b6001600160a01b0316610a96610e0d565b6001600160a01b031614610abc5760405162461bcd60e51b8152600401610779906128f0565b8051610acf906011906020840190612011565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106b85760405162461bcd60e51b8152600401610779906127d5565b610b206113ab565b6001600160a01b0316610b31610e0d565b6001600160a01b031614610b575760405162461bcd60e51b8152600401610779906128f0565b816001600160a01b031663a9059cbb610b6e610e0d565b836040518363ffffffff1660e01b8152600401610b8c9291906124be565b602060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612337565b600e5481565b60118054610bf190612c69565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90612c69565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b505050505081565b60006001600160a01b038216610c9a5760405162461bcd60e51b81526004016107799061278b565b506001600160a01b031660009081526004602052604090205490565b610cbe6113ab565b6001600160a01b0316610ccf610e0d565b6001600160a01b031614610cf55760405162461bcd60e51b8152600401610779906128f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610d476113ab565b6001600160a01b0316610d58610e0d565b6001600160a01b031614610d7e5760405162461bcd60e51b8152600401610779906128f0565b601054811115610da05760405162461bcd60e51b815260040161077990612b4b565b60005b81811015610acf57610db433611649565b80610dbe81612ca4565b915050610da3565b610dce6113ab565b6001600160a01b0316610ddf610e0d565b6001600160a01b031614610e055760405162461bcd60e51b8152600401610779906128f0565b610913611666565b6000546001600160a01b031690565b336000908152600d60205260409020805460ff1916600117905580600f54610e449190612c07565b341015610e635760405162461bcd60e51b815260040161077990612a4f565b601054811115610e855760405162461bcd60e51b815260040161077990612b4b565b60005b81811015610eab57610e9933611649565b80610ea381612ca4565b915050610e88565b50610960565b81811015610acf57610ec233611649565b80610ecc81612ca4565b915050610eb1565b6060600280546106cf90612c69565b610eeb6113ab565b6001600160a01b0316610efc610e0d565b6001600160a01b031614610f225760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b0381166000908152600d602052604090205460ff16610f5a5760405162461bcd60e51b815260040161077990612aca565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b610f836113ab565b6001600160a01b0316826001600160a01b03161415610fb45760405162461bcd60e51b815260040161077990612681565b8060066000610fc16113ab565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556110056113ab565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161103d91906124d7565b60405180910390a35050565b60145460ff1681565b61106361105d6113ab565b8361141d565b61107f5760405162461bcd60e51b8152600401610779906129fe565b61108b848484846116c7565b50505050565b600d6020526000908152604090205460ff1681565b60606110b1826116fa565b6040516020016110c19190612444565b6040516020818303038152906040529050919050565b6110df6113ab565b6001600160a01b03166110f0610e0d565b6001600160a01b0316146111165760405162461bcd60e51b8152600401610779906128f0565b6014805460ff19811660ff90911615179055565b60105481565b6111386113ab565b6001600160a01b0316611149610e0d565b6001600160a01b03161461116f5760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b0381166000908152600d602052604090205460ff16156111a85760405162461bcd60e51b815260040161077990612a86565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b6112026113ab565b6001600160a01b0316611213610e0d565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610779906128f0565b6001600160a01b03811661125f5760405162461bcd60e51b8152600401610779906125c0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6112c26113ab565b6001600160a01b03166112d3610e0d565b6001600160a01b0316146112f95760405162461bcd60e51b8152600401610779906128f0565b600e55565b6113066113ab565b6001600160a01b0316611317610e0d565b6001600160a01b03161461133d5760405162461bcd60e51b8152600401610779906128f0565b60405133904780156108fc02916000818181858888f19350505050158015610960573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b14806106b857506106b882611813565b6000908152600360205260409020546001600160a01b0316151590565b3390565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906113e482610ae3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006114288261138e565b6114445760405162461bcd60e51b8152600401610779906126b8565b600061144f83610ae3565b9050806001600160a01b0316846001600160a01b0316148061148a5750836001600160a01b031661147f84610752565b6001600160a01b0316145b8061149a575061149a81856111cc565b949350505050565b826001600160a01b03166114b582610ae3565b6001600160a01b0316146114db5760405162461bcd60e51b815260040161077990612925565b6001600160a01b0382166115015760405162461bcd60e51b81526004016107799061263d565b61150c838383611853565b6115176000826113af565b6001600160a01b0383166000908152600460205260408120805460019290611540908490612c26565b90915550506001600160a01b038216600090815260046020526040812080546001929061156e908490612bdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6115d7610ad3565b6115f35760405162461bcd60e51b8152600401610779906124f5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6116296113ab565b604051611636919061246d565b60405180910390a1565b61096081611883565b61165c81611657600c6118c3565b6118c7565b610960600c6118e1565b61166e610ad3565b1561168b5760405162461bcd60e51b815260040161077990612704565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116296113ab565b6116d28484846114a2565b6116de848484846118ea565b61108b5760405162461bcd60e51b81526004016107799061256e565b60606117058261138e565b6117215760405162461bcd60e51b815260040161077990612853565b6000828152600b60205260408120805461173a90612c69565b80601f016020809104026020016040519081016040528092919081815260200182805461176690612c69565b80156117b35780601f10611788576101008083540402835291602001916117b3565b820191906000526020600020905b81548152906001019060200180831161179657829003601f168201915b5050505050905060006117c4611a05565b90508051600014156117d8575090506106bb565b81511561180a5780826040516020016117f2929190612415565b604051602081830303815290604052925050506106bb565b61149a84611a14565b60006001600160e01b031982166380ac58cd60e01b148061184457506001600160e01b03198216635b5e139f60e01b145b806106b857506106b882611a97565b61185b610ad3565b156118785760405162461bcd60e51b815260040161077990612704565b610831838383611ab0565b61188c81611b39565b6000818152600b6020526040902080546118a590612c69565b159050610960576000818152600b6020526040812061096091612095565b5490565b610acf828260405180602001604052806000815250611be0565b80546001019055565b60006118fe846001600160a01b0316611c13565b156119fa57836001600160a01b031663150b7a0261191a6113ab565b8786866040518563ffffffff1660e01b815260040161193c9493929190612481565b602060405180830381600087803b15801561195657600080fd5b505af1925050508015611986575060408051601f3d908101601f191682019092526119839181019061236f565b60015b6119e0573d8080156119b4576040519150601f19603f3d011682016040523d82523d6000602084013e6119b9565b606091505b5080516119d85760405162461bcd60e51b81526004016107799061256e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061149a565b506001949350505050565b6060601180546106cf90612c69565b6060611a1f8261138e565b611a3b5760405162461bcd60e51b81526004016107799061296e565b6000611a45611a05565b90506000815111611a655760405180602001604052806000815250611a90565b80611a6f84611c19565b604051602001611a80929190612415565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611abb838383610831565b6001600160a01b038316611ad757611ad281611d34565b611afa565b816001600160a01b0316836001600160a01b031614611afa57611afa8382611d78565b6001600160a01b038216611b1657611b1181611e15565b610831565b826001600160a01b0316826001600160a01b031614610831576108318282611eee565b6000611b4482610ae3565b9050611b5281600084611853565b611b5d6000836113af565b6001600160a01b0381166000908152600460205260408120805460019290611b86908490612c26565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611bea8383611f32565b611bf760008484846118ea565b6108315760405162461bcd60e51b81526004016107799061256e565b3b151590565b606081611c3e57506040805180820190915260018152600360fc1b60208201526106bb565b8160005b8115611c685780611c5281612ca4565b9150611c619050600a83612bf3565b9150611c42565b60008167ffffffffffffffff811115611c9157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611cbb576020820181803683370190505b5090505b841561149a57611cd0600183612c26565b9150611cdd600a86612cbf565b611ce8906030612bdb565b60f81b818381518110611d0b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611d2d600a86612bf3565b9450611cbf565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611d8584610c72565b611d8f9190612c26565b600083815260086020526040902054909150808214611de2576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611e2790600190612c26565b6000838152600a602052604081205460098054939450909284908110611e5d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611e8c57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611ed257634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611ef983610c72565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611f585760405162461bcd60e51b81526004016107799061281e565b611f618161138e565b15611f7e5760405162461bcd60e51b815260040161077990612606565b611f8a60008383611853565b6001600160a01b0382166000908152600460205260408120805460019290611fb3908490612bdb565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461201d90612c69565b90600052602060002090601f01602090048101928261203f5760008555612085565b82601f1061205857805160ff1916838001178555612085565b82800160010185558215612085579182015b8281111561208557825182559160200191906001019061206a565b506120919291506120cd565b5090565b5080546120a190612c69565b6000825580601f106120b35750610960565b601f01602090049060005260206000209081019061096091905b5b8082111561209157600081556001016120ce565b600067ffffffffffffffff808411156120fd576120fd612cff565b604051601f8501601f19168101602001828111828210171561212157612121612cff565b60405284815291508183850186101561213957600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b03811681146106bb57600080fd5b60006020828403121561217a578081fd5b611a9082612152565b60008060408385031215612195578081fd5b61219e83612152565b91506121ac60208401612152565b90509250929050565b6000806000606084860312156121c9578081fd5b6121d284612152565b92506121e060208501612152565b9150604084013590509250925092565b60008060008060808587031215612205578081fd5b61220e85612152565b935061221c60208601612152565b925060408501359150606085013567ffffffffffffffff81111561223e578182fd5b8501601f8101871361224e578182fd5b61225d878235602084016120e2565b91505092959194509250565b6000806040838503121561227b578182fd5b61228483612152565b9150602083013561229481612d15565b809150509250929050565b600080604083850312156122b1578182fd5b6122ba83612152565b946020939093013593505050565b600080602083850312156122da578182fd5b823567ffffffffffffffff808211156122f1578384fd5b818501915085601f830112612304578384fd5b813581811115612312578485fd5b8660208083028501011115612325578485fd5b60209290920196919550909350505050565b600060208284031215612348578081fd5b8151611a9081612d15565b600060208284031215612364578081fd5b8135611a9081612d23565b600060208284031215612380578081fd5b8151611a9081612d23565b60006020828403121561239c578081fd5b813567ffffffffffffffff8111156123b2578182fd5b8201601f810184136123c2578182fd5b61149a848235602084016120e2565b6000602082840312156123e2578081fd5b5035919050565b60008151808452612401816020860160208601612c3d565b601f01601f19169290920160200192915050565b60008351612427818460208801612c3d565b83519083019061243b818360208801612c3d565b01949350505050565b60008251612456818460208701612c3d565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124b4908301846123e9565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252611a9060208301846123e9565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b60208082526024908201527f4e46543a204164647265737320697320616c72656164792077686974656c69736040820152637465642160e01b606082015260800190565b6020808252818101527f4e46543a2041646472657373206973206e6f742077686974656c697374656421604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b60008219821115612bee57612bee612cd3565b500190565b600082612c0257612c02612ce9565b500490565b6000816000190483118215151615612c2157612c21612cd3565b500290565b600082821015612c3857612c38612cd3565b500390565b60005b83811015612c58578181015183820152602001612c40565b8381111561108b5750506000910152565b600281046001821680612c7d57607f821691505b60208210811415612c9e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612cb857612cb8612cd3565b5060010190565b600082612cce57612cce612ce9565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b801515811461096057600080fd5b6001600160e01b03198116811461096057600080fdfea2646970667358221220a1f853636c1a37a30a7bdc66d79d6be09fba04381b042c884849cb4a8077d23a64736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000012f939c99edab80000000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000001043561a8829300000000000000000000000000000000000000000000000000000000000000000000a506978656c20436974790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025043000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Pixel City
Arg [1] : _symbol (string): PC
Arg [2] : _mintPrice (uint256): 350000000000000000000
Arg [3] : _maxNFT (uint256): 5000
Arg [4] : _whitelistMintPrice (uint256): 300000000000000000000
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 000000000000000000000000000000000000000000000012f939c99edab80000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000001388
Arg [4] : 00000000000000000000000000000000000000000000001043561a8829300000
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 506978656c204369747900000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [8] : 5043000000000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
21562:4729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22674:171;;;;;;;;;;-1:-1:-1;22674:171:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11016:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12046:219::-;;;;;;;;;;-1:-1:-1;12046:219:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11670:370::-;;;;;;;;;;-1:-1:-1;11670:370:0;;;;;:::i;:::-;;:::i;:::-;;17907:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12740:250::-;;;;;;;;;;-1:-1:-1;12740:250:0;;;;;:::i;:::-;;:::i;17645:256::-;;;;;;;;;;-1:-1:-1;17645:256:0;;;;;:::i;:::-;;:::i;21851:33::-;;;;;;;;;;;;;:::i;23240:65::-;;;;;;;;;;;;;:::i;12996:151::-;;;;;;;;;;-1:-1:-1;12996:151:0;;;;;:::i;:::-;;:::i;21361:192::-;;;;;;;;;;-1:-1:-1;21361:192:0;;;;;:::i;:::-;;:::i;18026:233::-;;;;;;;;;;-1:-1:-1;18026:233:0;;;;;:::i;:::-;;:::i;23992:212::-;;;;;;;;;;-1:-1:-1;23992:212:0;;;;;:::i;:::-;;:::i;23507:98::-;;;;;;;;;;-1:-1:-1;23507:98:0;;;;;:::i;:::-;;:::i;5793:86::-;;;;;;;;;;;;;:::i;10771:239::-;;;;;;;;;;-1:-1:-1;10771:239:0;;;;;:::i;:::-;;:::i;26127:161::-;;;;;;;;;;-1:-1:-1;26127:161:0;;;;;:::i;:::-;;:::i;21820:24::-;;;;;;;;;;;;;:::i;21919:21::-;;;;;;;;;;;;;:::i;10557:208::-;;;;;;;;;;-1:-1:-1;10557:208:0;;;;;:::i;:::-;;:::i;6877:148::-;;;;;;;;;;;;;:::i;23757:229::-;;;;;;;;;;-1:-1:-1;23757:229:0;;;;;:::i;:::-;;:::i;23173:61::-;;;;;;;;;;;;;:::i;6658:87::-;;;;;;;;;;;;;:::i;24631:759::-;;;;;;:::i;:::-;;:::i;11122:104::-;;;;;;;;;;;;;:::i;24420:205::-;;;;;;;;;;-1:-1:-1;24420:205:0;;;;;:::i;:::-;;:::i;12271:293::-;;;;;;;;;;-1:-1:-1;12271:293:0;;;;;:::i;:::-;;:::i;22003:31::-;;;;;;;;;;;;;:::i;13153:285::-;;;;;;;;;;-1:-1:-1;13153:285:0;;;;;:::i;:::-;;:::i;21763:50::-;;;;;;;;;;-1:-1:-1;21763:50:0;;;;;:::i;:::-;;:::i;22478:190::-;;;;;;;;;;-1:-1:-1;22478:190:0;;;;;:::i;:::-;;:::i;23311:84::-;;;;;;;;;;;;;:::i;21891:21::-;;;;;;;;;;;;;:::i;24210:204::-;;;;;;;;;;-1:-1:-1;24210:204:0;;;;;:::i;:::-;;:::i;12570:164::-;;;;;;;;;;-1:-1:-1;12570:164:0;;;;;:::i;:::-;;:::i;7031:244::-;;;;;;;;;;-1:-1:-1;7031:244:0;;;;;:::i;:::-;;:::i;23401:100::-;;;;;;;;;;-1:-1:-1;23401:100:0;;;;;:::i;:::-;;:::i;25705:112::-;;;;;;;;;;;;;:::i;22674:171::-;22777:4;22801:36;22825:11;22801:23;:36::i;:::-;22794:43;;22674:171;;;;:::o;11016:100::-;11070:13;11103:5;11096:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11016:100;:::o;12046:219::-;12122:7;12150:16;12158:7;12150;:16::i;:::-;12142:73;;;;-1:-1:-1;;;12142:73:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;12233:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12233:24:0;;12046:219::o;11670:370::-;11751:13;11767:23;11782:7;11767:14;:23::i;:::-;11751:39;;11815:5;-1:-1:-1;;;;;11809:11:0;:2;-1:-1:-1;;;;;11809:11:0;;;11801:57;;;;-1:-1:-1;;;11801:57:0;;;;;;;:::i;:::-;11893:5;-1:-1:-1;;;;;11877:21:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11877:21:0;;:62;;;;11902:37;11919:5;11926:12;:10;:12::i;11902:37::-;11869:131;;;;-1:-1:-1;;;11869:131:0;;;;;;;:::i;:::-;12011:21;12020:2;12024:7;12011:8;:21::i;:::-;11670:370;;;:::o;17907:113::-;17995:10;:17;17907:113;:::o;12740:250::-;12848:41;12867:12;:10;:12::i;:::-;12881:7;12848:18;:41::i;:::-;12840:103;;;;-1:-1:-1;;;12840:103:0;;;;;;;:::i;:::-;12954:28;12964:4;12970:2;12974:7;12954:9;:28::i;17645:256::-;17742:7;17778:23;17795:5;17778:16;:23::i;:::-;17770:5;:31;17762:87;;;;-1:-1:-1;;;17762:87:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17867:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;17645:256::o;21851:33::-;;;;:::o;23240:65::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23287:10:::1;:8;:10::i;:::-;23240:65::o:0;12996:151::-;13100:39;13117:4;13123:2;13127:7;13100:39;;;;;;;;;;;;:16;:39::i;21361:192::-;21426:41;21445:12;:10;:12::i;21426:41::-;21418:102;;;;-1:-1:-1;;;21418:102:0;;;;;;;:::i;:::-;21531:14;21537:7;21531:5;:14::i;:::-;21361:192;:::o;18026:233::-;18101:7;18137:30;:28;:30::i;:::-;18129:5;:38;18121:95;;;;-1:-1:-1;;;18121:95:0;;;;;;;:::i;:::-;18234:10;18245:5;18234:17;;;;;;-1:-1:-1;;;18234:17:0;;;;;;;;;;;;;;;;;18227:24;;18026:233;;;:::o;23992:212::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;24087:9:::1;24082:115;24102:21:::0;;::::1;24082:115;;;24181:4;24145:18;:33;24164:10;;24175:1;24164:13;;;;;-1:-1:-1::0;;;24164:13:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24145:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;24145:33:0;:40;;-1:-1:-1;;24145:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24125:3;::::1;::::0;::::1;:::i;:::-;;;;24082:115;;23507:98:::0;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23579:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23507:98:::0;:::o;5793:86::-;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;;5793:86::o;10771:239::-;10843:7;10879:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10879:16:0;10914:19;10906:73;;;;-1:-1:-1;;;10906:73:0;;;;;;;:::i;26127:161::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;26236:12:::1;-1:-1:-1::0;;;;;26230:28:0::1;;26259:7;:5;:7::i;:::-;26268:11;26230:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21820:24::-:0;;;;:::o;21919:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10557:208::-;10629:7;-1:-1:-1;;;;;10657:19:0;;10649:74;;;;-1:-1:-1;;;10649:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10741:16:0;;;;;:9;:16;;;;;;;10557:208::o;6877:148::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;6984:1:::1;6968:6:::0;;6947:40:::1;::::0;-1:-1:-1;;;;;6968:6:0;;::::1;::::0;6947:40:::1;::::0;6984:1;;6947:40:::1;7015:1;6998:19:::0;;-1:-1:-1;;;;;;6998:19:0::1;::::0;;6877:148::o;23757:229::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23841:6:::1;;23831;:16;;23823:57;;;;-1:-1:-1::0;;;23823:57:0::1;;;;;;;:::i;:::-;23896:9;23891:88;23915:6;23911:1;:10;23891:88;;;23943:24;23956:10;23943:12;:24::i;:::-;23923:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23891:88;;23173:61:::0;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23218:8:::1;:6;:8::i;6658:87::-:0;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;6658:87;:::o;24631:759::-;24713:10;24694:30;;;;:18;:30;;;;;:37;;-1:-1:-1;;24694:37:0;24727:4;24694:37;;;24790:6;24769:18;;:27;;;;:::i;:::-;24756:9;:40;;24748:81;;;;-1:-1:-1;;;24748:81:0;;;;;;;:::i;:::-;24862:6;;24852;:16;;24844:57;;;;-1:-1:-1;;;24844:57:0;;;;;;;:::i;:::-;24921:9;24916:96;24940:6;24936:1;:10;24916:96;;;24972:24;24985:10;24972:12;:24::i;:::-;24948:3;;;;:::i;:::-;;;;24916:96;;;;24690:693;;25276:96;25300:6;25296:1;:10;25276:96;;;25332:24;25345:10;25332:12;:24::i;:::-;25308:3;;;;:::i;:::-;;;;25276:96;;11122:104;11178:13;11211:7;11204:14;;;;;:::i;24420:205::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24505:28:0;::::1;;::::0;;;:18:::1;:28;::::0;;;;;::::1;;24497:73;;;;-1:-1:-1::0;;;24497:73:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24581:28:0::1;24612:5;24581:28:::0;;;:18:::1;:28;::::0;;;;:36;;-1:-1:-1;;24581:36:0::1;::::0;;24420:205::o;12271:293::-;12386:12;:10;:12::i;:::-;-1:-1:-1;;;;;12374:24:0;:8;-1:-1:-1;;;;;12374:24:0;;;12366:62;;;;-1:-1:-1;;;12366:62:0;;;;;;;:::i;:::-;12484:8;12439:18;:32;12458:12;:10;:12::i;:::-;-1:-1:-1;;;;;12439:32:0;;;;;;;;;;;;;;;;;-1:-1:-1;12439:32:0;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;12439:53:0;;;;;;;;;;;12523:12;:10;:12::i;:::-;-1:-1:-1;;;;;12508:48:0;;12547:8;12508:48;;;;;;:::i;:::-;;;;;;;;12271:293;;:::o;22003:31::-;;;;;;:::o;13153:285::-;13285:41;13304:12;:10;:12::i;:::-;13318:7;13285:18;:41::i;:::-;13277:103;;;;-1:-1:-1;;;13277:103:0;;;;;;;:::i;:::-;13391:39;13405:4;13411:2;13415:7;13424:5;13391:13;:39::i;:::-;13153:285;;;;:::o;21763:50::-;;;;;;;;;;;;;;;:::o;22478:190::-;22569:13;22626:23;22641:7;22626:14;:23::i;:::-;22609:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;22595:65;;22478:190;;;:::o;23311:84::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23376:11:::1;::::0;;-1:-1:-1;;23361:26:0;::::1;23376:11;::::0;;::::1;23375:12;23361:26;::::0;;23311:84::o;21891:21::-;;;;:::o;24210:204::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24291:28:0;::::1;;::::0;;;:18:::1;:28;::::0;;;;;::::1;;24290:29;24282:78;;;;-1:-1:-1::0;;;24282:78:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24371:28:0::1;;::::0;;;:18:::1;:28;::::0;;;;:35;;-1:-1:-1;;24371:35:0::1;24402:4;24371:35;::::0;;24210:204::o;12570:164::-;-1:-1:-1;;;;;12691:25:0;;;12667:4;12691:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;12570:164::o;7031:244::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7120:22:0;::::1;7112:73;;;;-1:-1:-1::0;;;7112:73:0::1;;;;;;;:::i;:::-;7222:6;::::0;;7201:38:::1;::::0;-1:-1:-1;;;;;7201:38:0;;::::1;::::0;7222:6;::::1;::::0;7201:38:::1;::::0;::::1;7250:6;:17:::0;;-1:-1:-1;;;;;;7250:17:0::1;-1:-1:-1::0;;;;;7250:17:0;;;::::1;::::0;;;::::1;::::0;;7031:244::o;23401:100::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23471:9:::1;:22:::0;23401:100::o;25705:112::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;25758:51:::1;::::0;25766:10:::1;::::0;25787:21:::1;25758:51:::0;::::1;;;::::0;::::1;::::0;;;25787:21;25766:10;25758:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;17415:224:::0;17517:4;-1:-1:-1;;;;;;17541:50:0;;-1:-1:-1;;;17541:50:0;;:90;;;17595:36;17619:11;17595:23;:36::i;13722:127::-;13787:4;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;:30;;;13722:127::o;5366:98::-;5446:10;5366:98;:::o;15783:174::-;15858:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15858:29:0;-1:-1:-1;;;;;15858:29:0;;;;;;;;:24;;15912:23;15858:24;15912:14;:23::i;:::-;-1:-1:-1;;;;;15903:46:0;;;;;;;;;;;15783:174;;:::o;13855:348::-;13948:4;13973:16;13981:7;13973;:16::i;:::-;13965:73;;;;-1:-1:-1;;;13965:73:0;;;;;;;:::i;:::-;14049:13;14065:23;14080:7;14065:14;:23::i;:::-;14049:39;;14118:5;-1:-1:-1;;;;;14107:16:0;:7;-1:-1:-1;;;;;14107:16:0;;:51;;;;14151:7;-1:-1:-1;;;;;14127:31:0;:20;14139:7;14127:11;:20::i;:::-;-1:-1:-1;;;;;14127:31:0;;14107:51;:87;;;;14162:32;14179:5;14186:7;14162:16;:32::i;:::-;14099:96;13855:348;-1:-1:-1;;;;13855:348:0:o;15293:484::-;15418:4;-1:-1:-1;;;;;15391:31:0;:23;15406:7;15391:14;:23::i;:::-;-1:-1:-1;;;;;15391:31:0;;15383:85;;;;-1:-1:-1;;;15383:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15487:16:0;;15479:65;;;;-1:-1:-1;;;15479:65:0;;;;;;;:::i;:::-;15555:39;15576:4;15582:2;15586:7;15555:20;:39::i;:::-;15605:29;15622:1;15626:7;15605:8;:29::i;:::-;-1:-1:-1;;;;;15645:15:0;;;;;;:9;:15;;;;;:20;;15664:1;;15645:15;:20;;15664:1;;15645:20;:::i;:::-;;;;-1:-1:-1;;;;;;;15676:13:0;;;;;;:9;:13;;;;;:18;;15693:1;;15676:13;:18;;15693:1;;15676:18;:::i;:::-;;;;-1:-1:-1;;15705:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;15705:21:0;-1:-1:-1;;;;;15705:21:0;;;;;;;;;15742:27;;15705:16;;15742:27;;;;;;;15293:484;;;:::o;6209:120::-;6026:8;:6;:8::i;:::-;6018:41;;;;-1:-1:-1;;;6018:41:0;;;;;;;:::i;:::-;6278:5:::1;6268:15:::0;;-1:-1:-1;;;;6268:15:0::1;::::0;;6299:22:::1;6308:12;:10;:12::i;:::-;6299:22;;;;;;:::i;:::-;;;;;;;;6209:120::o:0;22851:115::-;22938:20;22950:7;22938:11;:20::i;23611:140::-;23665:40;23675:2;23679:25;:15;:23;:25::i;:::-;23665:9;:40::i;:::-;23716:27;:15;:25;:27::i;6085:118::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;6145:7:::1;:14:::0;;-1:-1:-1;;;;6145:14:0::1;-1:-1:-1::0;;;6145:14:0::1;::::0;;6175:20:::1;6182:12;:10;:12::i;13444:272::-:0;13558:28;13568:4;13574:2;13578:7;13558:9;:28::i;:::-;13605:48;13628:4;13634:2;13638:7;13647:5;13605:22;:48::i;:::-;13597:111;;;;-1:-1:-1;;;13597:111:0;;;;;;;:::i;20338:524::-;20411:13;20445:16;20453:7;20445;:16::i;:::-;20437:78;;;;-1:-1:-1;;;20437:78:0;;;;;;;:::i;:::-;20526:23;20552:19;;;:10;:19;;;;;20526:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:18;20603:10;:8;:10::i;:::-;20582:31;;20634:4;20628:18;20650:1;20628:23;20624:72;;;-1:-1:-1;20675:9:0;-1:-1:-1;20668:16:0;;20624:72;20710:23;;:27;20706:108;;20785:4;20791:9;20768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20754:48;;;;;;20706:108;20831:23;20846:7;20831:14;:23::i;10285:266::-;10387:4;-1:-1:-1;;;;;;10411:40:0;;-1:-1:-1;;;10411:40:0;;:92;;-1:-1:-1;;;;;;;10455:48:0;;-1:-1:-1;;;10455:48:0;10411:92;:132;;;;10507:36;10531:11;10507:23;:36::i;22972:195::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;23114:45:::1;23141:4;23147:2;23151:7;23114:26;:45::i;21091:204::-:0;21160:20;21172:7;21160:11;:20::i;:::-;21201:19;;;;:10;:19;;;;;21195:33;;;;;:::i;:::-;:38;;-1:-1:-1;21191:97:0;;21257:19;;;;:10;:19;;;;;21250:26;;;:::i;3415:114::-;3507:14;;3415:114::o;14209:110::-;14285:26;14295:2;14299:7;14285:26;;;;;;;;;;;;:9;:26::i;3535:127::-;3624:19;;3642:1;3624:19;;;3535:127::o;15963:760::-;16075:4;16096:15;:2;-1:-1:-1;;;;;16096:13:0;;:15::i;:::-;16092:624;;;16148:2;-1:-1:-1;;;;;16132:36:0;;16169:12;:10;:12::i;:::-;16183:4;16189:7;16198:5;16132:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16132:72:0;;;;;;;;-1:-1:-1;;16132:72:0;;;;;;;;;;;;:::i;:::-;;;16128:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16378:13:0;;16374:272;;16421:60;;-1:-1:-1;;;16421:60:0;;;;;;;:::i;16374:272::-;16596:6;16590:13;16581:6;16577:2;16573:15;16566:38;16128:533;-1:-1:-1;;;;;;16255:55:0;-1:-1:-1;;;16255:55:0;;-1:-1:-1;16248:62:0;;16092:624;-1:-1:-1;16700:4:0;15963:760;;;;;;:::o;22372:100::-;22424:13;22457:7;22450:14;;;;;:::i;11232:332::-;11305:13;11339:16;11347:7;11339;:16::i;:::-;11331:76;;;;-1:-1:-1;;;11331:76:0;;;;;;;:::i;:::-;11418:21;11442:10;:8;:10::i;:::-;11418:34;;11494:1;11476:7;11470:21;:25;:86;;;;;;;;;;;;;;;;;11522:7;11531:18;:7;:16;:18::i;:::-;11505:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11470:86;11463:93;11232:332;-1:-1:-1;;;11232:332:0:o;9571:157::-;-1:-1:-1;;;;;;9680:40:0;;-1:-1:-1;;;9680:40:0;9571:157;;;:::o;18265:553::-;18375:45;18402:4;18408:2;18412:7;18375:26;:45::i;:::-;-1:-1:-1;;;;;18435:18:0;;18431:187;;18470:40;18502:7;18470:31;:40::i;:::-;18431:187;;;18540:2;-1:-1:-1;;;;;18532:10:0;:4;-1:-1:-1;;;;;18532:10:0;;18528:90;;18559:47;18592:4;18598:7;18559:32;:47::i;:::-;-1:-1:-1;;;;;18632:16:0;;18628:183;;18665:45;18702:7;18665:36;:45::i;:::-;18628:183;;;18738:4;-1:-1:-1;;;;;18732:10:0;:2;-1:-1:-1;;;;;18732:10:0;;18728:83;;18759:40;18787:2;18791:7;18759:27;:40::i;14963:324::-;15023:13;15039:23;15054:7;15039:14;:23::i;:::-;15023:39;;15073:48;15094:5;15109:1;15113:7;15073:20;:48::i;:::-;15132:29;15149:1;15153:7;15132:8;:29::i;:::-;-1:-1:-1;;;;;15172:16:0;;;;;;:9;:16;;;;;:21;;15192:1;;15172:16;:21;;15192:1;;15172:21;:::i;:::-;;;;-1:-1:-1;;15211:16:0;;;;:7;:16;;;;;;15204:23;;-1:-1:-1;;;;;;15204:23:0;;;15243:36;15219:7;;15211:16;-1:-1:-1;;;;;15243:36:0;;;;;15211:16;;15243:36;14963:324;;:::o;14325:250::-;14421:18;14427:2;14431:7;14421:5;:18::i;:::-;14458:54;14489:1;14493:2;14497:7;14506:5;14458:22;:54::i;:::-;14450:117;;;;-1:-1:-1;;;14450:117:0;;;;;;;:::i;85:172::-;203:20;241:8;;;85:172::o;3995:532::-;4051:13;4081:10;4077:53;;-1:-1:-1;4108:10:0;;;;;;;;;;;;-1:-1:-1;;;4108:10:0;;;;;;4077:53;4155:5;4140:12;4196:78;4203:9;;4196:78;;4229:8;;;;:::i;:::-;;-1:-1:-1;4252:10:0;;-1:-1:-1;4260:2:0;4252:10;;:::i;:::-;;;4196:78;;;4284:19;4316:6;4306:17;;;;;;-1:-1:-1;;;4306:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4306:17:0;;4284:39;;4334:154;4341:10;;4334:154;;4368:11;4378:1;4368:11;;:::i;:::-;;-1:-1:-1;4437:10:0;4445:2;4437:5;:10;:::i;:::-;4424:24;;:2;:24;:::i;:::-;4411:39;;4394:6;4401;4394:14;;;;;;-1:-1:-1;;;4394:14:0;;;;;;;;;;;;:56;-1:-1:-1;;;;;4394:56:0;;;;;;;;-1:-1:-1;4465:11:0;4474:2;4465:11;;:::i;:::-;;;4334:154;;19051:164;19155:10;:17;;19128:24;;;;:15;:24;;;;;:44;;;19183:24;;;;;;;;;;;;19051:164::o;19221:549::-;19313:22;19363:1;19338:22;19355:4;19338:16;:22::i;:::-;:26;;;;:::i;:::-;19375:18;19396:26;;;:17;:26;;;;;;19313:51;;-1:-1:-1;19437:28:0;;;19433:234;;-1:-1:-1;;;;;19504:18:0;;19482:19;19504:18;;;:12;:18;;;;;;;;:34;;;;;;;;;19553:30;;;;;;:44;;;19612:30;;:17;:30;;;;;:43;;;19433:234;-1:-1:-1;19684:26:0;;;;:17;:26;;;;;;;;19677:33;;;-1:-1:-1;;;;;19728:18:0;;;;;:12;:18;;;;;:34;;;;;;;19721:41;19221:549::o;19776:419::-;19883:10;:17;19858:22;;19883:21;;19903:1;;19883:21;:::i;:::-;19915:18;19936:24;;;:15;:24;;;;;;19993:10;:26;;19858:46;;-1:-1:-1;19936:24:0;;19858:46;;19993:26;;;;-1:-1:-1;;;19993:26:0;;;;;;;;;;;;;;;;;19971:48;;20055:11;20030:10;20041;20030:22;;;;;;-1:-1:-1;;;20030:22:0;;;;;;;;;;;;;;;;;;;;:36;;;;20077:28;;;:15;:28;;;;;;;:41;;;20136:24;;;;;20129:31;20171:10;:16;;;;;-1:-1:-1;;;20171:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;19776:419;;;;:::o;18824:221::-;18909:14;18926:20;18943:2;18926:16;:20::i;:::-;-1:-1:-1;;;;;18957:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;19002:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;18824:221:0:o;14581:376::-;-1:-1:-1;;;;;14661:16:0;;14653:61;;;;-1:-1:-1;;;14653:61:0;;;;;;;:::i;:::-;14734:16;14742:7;14734;:16::i;:::-;14733:17;14725:58;;;;-1:-1:-1;;;14725:58:0;;;;;;;:::i;:::-;14794:45;14823:1;14827:2;14831:7;14794:20;:45::i;:::-;-1:-1:-1;;;;;14850:13:0;;;;;;:9;:13;;;;;:18;;14867:1;;14850:13;:18;;14867:1;;14850:18;:::i;:::-;;;;-1:-1:-1;;14879:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14879:21:0;-1:-1:-1;;;;;14879:21:0;;;;;;;;14916:33;;14879:16;;;14916:33;;14879:16;;14916:33;14581:376;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:607:1;;110:18;151:2;143:6;140:14;137:2;;;157:18;;:::i;:::-;206:2;200:9;279:2;256:17;;-1:-1:-1;;252:31:1;240:44;;286:4;236:55;306:18;;;326:22;;;303:46;300:2;;;352:18;;:::i;:::-;388:2;381:22;436;;;421:6;-1:-1:-1;421:6:1;473:16;;;470:25;-1:-1:-1;467:2:1;;;508:1;505;498:12;467:2;558:6;553:3;546:4;538:6;534:17;521:44;613:1;606:4;597:6;589;585:19;581:30;574:41;;;90:531;;;;;:::o;626:175::-;696:20;;-1:-1:-1;;;;;745:31:1;;735:42;;725:2;;791:1;788;781:12;806:198;;918:2;906:9;897:7;893:23;889:32;886:2;;;939:6;931;924:22;886:2;967:31;988:9;967:31;:::i;1009:274::-;;;1138:2;1126:9;1117:7;1113:23;1109:32;1106:2;;;1159:6;1151;1144:22;1106:2;1187:31;1208:9;1187:31;:::i;:::-;1177:41;;1237:40;1273:2;1262:9;1258:18;1237:40;:::i;:::-;1227:50;;1096:187;;;;;:::o;1288:342::-;;;;1434:2;1422:9;1413:7;1409:23;1405:32;1402:2;;;1455:6;1447;1440:22;1402:2;1483:31;1504:9;1483:31;:::i;:::-;1473:41;;1533:40;1569:2;1558:9;1554:18;1533:40;:::i;:::-;1523:50;;1620:2;1609:9;1605:18;1592:32;1582:42;;1392:238;;;;;:::o;1635:702::-;;;;;1807:3;1795:9;1786:7;1782:23;1778:33;1775:2;;;1829:6;1821;1814:22;1775:2;1857:31;1878:9;1857:31;:::i;:::-;1847:41;;1907:40;1943:2;1932:9;1928:18;1907:40;:::i;:::-;1897:50;;1994:2;1983:9;1979:18;1966:32;1956:42;;2049:2;2038:9;2034:18;2021:32;2076:18;2068:6;2065:30;2062:2;;;2113:6;2105;2098:22;2062:2;2141:22;;2194:4;2186:13;;2182:27;-1:-1:-1;2172:2:1;;2228:6;2220;2213:22;2172:2;2256:75;2323:7;2318:2;2305:16;2300:2;2296;2292:11;2256:75;:::i;:::-;2246:85;;;1765:572;;;;;;;:::o;2342:329::-;;;2468:2;2456:9;2447:7;2443:23;2439:32;2436:2;;;2489:6;2481;2474:22;2436:2;2517:31;2538:9;2517:31;:::i;:::-;2507:41;;2598:2;2587:9;2583:18;2570:32;2611:30;2635:5;2611:30;:::i;:::-;2660:5;2650:15;;;2426:245;;;;;:::o;2676:266::-;;;2805:2;2793:9;2784:7;2780:23;2776:32;2773:2;;;2826:6;2818;2811:22;2773:2;2854:31;2875:9;2854:31;:::i;:::-;2844:41;2932:2;2917:18;;;;2904:32;;-1:-1:-1;;;2763:179:1:o;2947:666::-;;;3094:2;3082:9;3073:7;3069:23;3065:32;3062:2;;;3115:6;3107;3100:22;3062:2;3160:9;3147:23;3189:18;3230:2;3222:6;3219:14;3216:2;;;3251:6;3243;3236:22;3216:2;3294:6;3283:9;3279:22;3269:32;;3339:7;3332:4;3328:2;3324:13;3320:27;3310:2;;3366:6;3358;3351:22;3310:2;3411;3398:16;3437:2;3429:6;3426:14;3423:2;;;3458:6;3450;3443:22;3423:2;3517:7;3512:2;3506;3498:6;3494:15;3490:2;3486:24;3482:33;3479:46;3476:2;;;3543:6;3535;3528:22;3476:2;3579;3571:11;;;;;3601:6;;-1:-1:-1;3052:561:1;;-1:-1:-1;;;;3052:561:1:o;3618:257::-;;3738:2;3726:9;3717:7;3713:23;3709:32;3706:2;;;3759:6;3751;3744:22;3706:2;3796:9;3790:16;3815:30;3839:5;3815:30;:::i;3880:257::-;;3991:2;3979:9;3970:7;3966:23;3962:32;3959:2;;;4012:6;4004;3997:22;3959:2;4056:9;4043:23;4075:32;4101:5;4075:32;:::i;4142:261::-;;4264:2;4252:9;4243:7;4239:23;4235:32;4232:2;;;4285:6;4277;4270:22;4232:2;4322:9;4316:16;4341:32;4367:5;4341:32;:::i;4408:482::-;;4530:2;4518:9;4509:7;4505:23;4501:32;4498:2;;;4551:6;4543;4536:22;4498:2;4596:9;4583:23;4629:18;4621:6;4618:30;4615:2;;;4666:6;4658;4651:22;4615:2;4694:22;;4747:4;4739:13;;4735:27;-1:-1:-1;4725:2:1;;4781:6;4773;4766:22;4725:2;4809:75;4876:7;4871:2;4858:16;4853:2;4849;4845:11;4809:75;:::i;4895:190::-;;5007:2;4995:9;4986:7;4982:23;4978:32;4975:2;;;5028:6;5020;5013:22;4975:2;-1:-1:-1;5056:23:1;;4965:120;-1:-1:-1;4965:120:1:o;5090:259::-;;5171:5;5165:12;5198:6;5193:3;5186:19;5214:63;5270:6;5263:4;5258:3;5254:14;5247:4;5240:5;5236:16;5214:63;:::i;:::-;5331:2;5310:15;-1:-1:-1;;5306:29:1;5297:39;;;;5338:4;5293:50;;5141:208;-1:-1:-1;;5141:208:1:o;5354:470::-;;5571:6;5565:13;5587:53;5633:6;5628:3;5621:4;5613:6;5609:17;5587:53;:::i;:::-;5703:13;;5662:16;;;;5725:57;5703:13;5662:16;5759:4;5747:17;;5725:57;:::i;:::-;5798:20;;5541:283;-1:-1:-1;;;;5541:283:1:o;5829:443::-;;6099:6;6093:13;6115:53;6161:6;6156:3;6149:4;6141:6;6137:17;6115:53;:::i;:::-;-1:-1:-1;;;6190:16:1;;6215:22;;;-1:-1:-1;6264:1:1;6253:13;;6069:203;-1:-1:-1;6069:203:1:o;6277:::-;-1:-1:-1;;;;;6441:32:1;;;;6423:51;;6411:2;6396:18;;6378:102::o;6485:490::-;-1:-1:-1;;;;;6754:15:1;;;6736:34;;6806:15;;6801:2;6786:18;;6779:43;6853:2;6838:18;;6831:34;;;6901:3;6896:2;6881:18;;6874:31;;;6485:490;;6922:47;;6949:19;;6941:6;6922:47;:::i;:::-;6914:55;6688:287;-1:-1:-1;;;;;;6688:287:1:o;6980:274::-;-1:-1:-1;;;;;7172:32:1;;;;7154:51;;7236:2;7221:18;;7214:34;7142:2;7127:18;;7109:145::o;7259:187::-;7424:14;;7417:22;7399:41;;7387:2;7372:18;;7354:92::o;7451:221::-;;7600:2;7589:9;7582:21;7620:46;7662:2;7651:9;7647:18;7639:6;7620:46;:::i;7677:344::-;7879:2;7861:21;;;7918:2;7898:18;;;7891:30;-1:-1:-1;;;7952:2:1;7937:18;;7930:50;8012:2;7997:18;;7851:170::o;8026:407::-;8228:2;8210:21;;;8267:2;8247:18;;;8240:30;8306:34;8301:2;8286:18;;8279:62;-1:-1:-1;;;8372:2:1;8357:18;;8350:41;8423:3;8408:19;;8200:233::o;8438:414::-;8640:2;8622:21;;;8679:2;8659:18;;;8652:30;8718:34;8713:2;8698:18;;8691:62;-1:-1:-1;;;8784:2:1;8769:18;;8762:48;8842:3;8827:19;;8612:240::o;8857:402::-;9059:2;9041:21;;;9098:2;9078:18;;;9071:30;9137:34;9132:2;9117:18;;9110:62;-1:-1:-1;;;9203:2:1;9188:18;;9181:36;9249:3;9234:19;;9031:228::o;9619:352::-;9821:2;9803:21;;;9860:2;9840:18;;;9833:30;9899;9894:2;9879:18;;9872:58;9962:2;9947:18;;9793:178::o;9976:400::-;10178:2;10160:21;;;10217:2;10197:18;;;10190:30;10256:34;10251:2;10236:18;;10229:62;-1:-1:-1;;;10322:2:1;10307:18;;10300:34;10366:3;10351:19;;10150:226::o;10381:349::-;10583:2;10565:21;;;10622:2;10602:18;;;10595:30;10661:27;10656:2;10641:18;;10634:55;10721:2;10706:18;;10555:175::o;10735:408::-;10937:2;10919:21;;;10976:2;10956:18;;;10949:30;11015:34;11010:2;10995:18;;10988:62;-1:-1:-1;;;11081:2:1;11066:18;;11059:42;11133:3;11118:19;;10909:234::o;11148:340::-;11350:2;11332:21;;;11389:2;11369:18;;;11362:30;-1:-1:-1;;;11423:2:1;11408:18;;11401:46;11479:2;11464:18;;11322:166::o;11493:420::-;11695:2;11677:21;;;11734:2;11714:18;;;11707:30;11773:34;11768:2;11753:18;;11746:62;11844:26;11839:2;11824:18;;11817:54;11903:3;11888:19;;11667:246::o;11918:406::-;12120:2;12102:21;;;12159:2;12139:18;;;12132:30;12198:34;12193:2;12178:18;;12171:62;-1:-1:-1;;;12264:2:1;12249:18;;12242:40;12314:3;12299:19;;12092:232::o;12329:405::-;12531:2;12513:21;;;12570:2;12550:18;;;12543:30;12609:34;12604:2;12589:18;;12582:62;-1:-1:-1;;;12675:2:1;12660:18;;12653:39;12724:3;12709:19;;12503:231::o;12739:356::-;12941:2;12923:21;;;12960:18;;;12953:30;13019:34;13014:2;12999:18;;12992:62;13086:2;13071:18;;12913:182::o;13100:413::-;13302:2;13284:21;;;13341:2;13321:18;;;13314:30;13380:34;13375:2;13360:18;;13353:62;-1:-1:-1;;;13446:2:1;13431:18;;13424:47;13503:3;13488:19;;13274:239::o;13518:408::-;13720:2;13702:21;;;13759:2;13739:18;;;13732:30;13798:34;13793:2;13778:18;;13771:62;-1:-1:-1;;;13864:2:1;13849:18;;13842:42;13916:3;13901:19;;13692:234::o;13931:356::-;14133:2;14115:21;;;14152:18;;;14145:30;14211:34;14206:2;14191:18;;14184:62;14278:2;14263:18;;14105:182::o;14292:405::-;14494:2;14476:21;;;14533:2;14513:18;;;14506:30;14572:34;14567:2;14552:18;;14545:62;-1:-1:-1;;;14638:2:1;14623:18;;14616:39;14687:3;14672:19;;14466:231::o;14702:411::-;14904:2;14886:21;;;14943:2;14923:18;;;14916:30;14982:34;14977:2;14962:18;;14955:62;-1:-1:-1;;;15048:2:1;15033:18;;15026:45;15103:3;15088:19;;14876:237::o;15118:397::-;15320:2;15302:21;;;15359:2;15339:18;;;15332:30;15398:34;15393:2;15378:18;;15371:62;-1:-1:-1;;;15464:2:1;15449:18;;15442:31;15505:3;15490:19;;15292:223::o;15520:413::-;15722:2;15704:21;;;15761:2;15741:18;;;15734:30;15800:34;15795:2;15780:18;;15773:62;-1:-1:-1;;;15866:2:1;15851:18;;15844:47;15923:3;15908:19;;15694:239::o;15938:352::-;16140:2;16122:21;;;16179:2;16159:18;;;16152:30;16218;16213:2;16198:18;;16191:58;16281:2;16266:18;;16112:178::o;16295:400::-;16497:2;16479:21;;;16536:2;16516:18;;;16509:30;16575:34;16570:2;16555:18;;16548:62;-1:-1:-1;;;16641:2:1;16626:18;;16619:34;16685:3;16670:19;;16469:226::o;16700:356::-;16902:2;16884:21;;;16921:18;;;16914:30;16980:34;16975:2;16960:18;;16953:62;17047:2;17032:18;;16874:182::o;17061:408::-;17263:2;17245:21;;;17302:2;17282:18;;;17275:30;17341:34;17336:2;17321:18;;17314:62;-1:-1:-1;;;17407:2:1;17392:18;;17385:42;17459:3;17444:19;;17235:234::o;17474:352::-;17676:2;17658:21;;;17715:2;17695:18;;;17688:30;17754;17749:2;17734:18;;17727:58;17817:2;17802:18;;17648:178::o;17831:412::-;18033:2;18015:21;;;18072:2;18052:18;;;18045:30;18111:34;18106:2;18091:18;;18084:62;-1:-1:-1;;;18177:2:1;18162:18;;18155:46;18233:3;18218:19;;18005:238::o;18248:177::-;18394:25;;;18382:2;18367:18;;18349:76::o;18430:128::-;;18501:1;18497:6;18494:1;18491:13;18488:2;;;18507:18;;:::i;:::-;-1:-1:-1;18543:9:1;;18478:80::o;18563:120::-;;18629:1;18619:2;;18634:18;;:::i;:::-;-1:-1:-1;18668:9:1;;18609:74::o;18688:168::-;;18794:1;18790;18786:6;18782:14;18779:1;18776:21;18771:1;18764:9;18757:17;18753:45;18750:2;;;18801:18;;:::i;:::-;-1:-1:-1;18841:9:1;;18740:116::o;18861:125::-;;18929:1;18926;18923:8;18920:2;;;18934:18;;:::i;:::-;-1:-1:-1;18971:9:1;;18910:76::o;18991:258::-;19063:1;19073:113;19087:6;19084:1;19081:13;19073:113;;;19163:11;;;19157:18;19144:11;;;19137:39;19109:2;19102:10;19073:113;;;19204:6;19201:1;19198:13;19195:2;;;-1:-1:-1;;19239:1:1;19221:16;;19214:27;19044:205::o;19254:380::-;19339:1;19329:12;;19386:1;19376:12;;;19397:2;;19451:4;19443:6;19439:17;19429:27;;19397:2;19504;19496:6;19493:14;19473:18;19470:38;19467:2;;;19550:10;19545:3;19541:20;19538:1;19531:31;19585:4;19582:1;19575:15;19613:4;19610:1;19603:15;19467:2;;19309:325;;;:::o;19639:135::-;;-1:-1:-1;;19699:17:1;;19696:2;;;19719:18;;:::i;:::-;-1:-1:-1;19766:1:1;19755:13;;19686:88::o;19779:112::-;;19837:1;19827:2;;19842:18;;:::i;:::-;-1:-1:-1;19876:9:1;;19817:74::o;19896:127::-;19957:10;19952:3;19948:20;19945:1;19938:31;19988:4;19985:1;19978:15;20012:4;20009:1;20002:15;20028:127;20089:10;20084:3;20080:20;20077:1;20070:31;20120:4;20117:1;20110:15;20144:4;20141:1;20134:15;20160:127;20221:10;20216:3;20212:20;20209:1;20202:31;20252:4;20249:1;20242:15;20276:4;20273:1;20266:15;20292:120;20380:5;20373:13;20366:21;20359:5;20356:32;20346:2;;20402:1;20399;20392:12;20417:133;-1:-1:-1;;;;;;20493:32:1;;20483:43;;20473:2;;20540:1;20537;20530:12
Swarm Source
ipfs://a1f853636c1a37a30a7bdc66d79d6be09fba04381b042c884849cb4a8077d23a