Contract 0xe52BBe513922ed6E7EFa7cC67f9F8452bbD3cC3d

Contract Overview

Vending Machines NFT: VMC Token
Balance:
0.00000027 AVAX

AVAX Value:
Less Than $0.01 (@ $14.14/AVAX)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd8b89e8120bd72cbfd3627e3dc11225c6c6faf72baf9965b4a273993993a88a6Set Approval For...228057532022-11-25 2:00:3810 days 6 hrs ago0xab7727c55155234b7a53eda30cead15902cca5e8 IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0x0b0b33eef6492b6dc61b42a9d36f98bfae7759c8431d2f7b3f7361b26f6c7599Set Approval For...228026932022-11-25 0:13:2610 days 7 hrs ago0xfbfbc2ed58848f0870e0b522ddc01ff3695c8d3b IN  Vending Machines NFT: VMC Token0 AVAX0.001262323449 27.2816825
0x577cbd0722e81e0365967cc895e84505535bf20a564d468452eff3c8e6b674e7Set Approval For...227556112022-11-23 21:15:4611 days 10 hrs ago0xb592b00088b7c9bcf9e49fdccb9abf333cba316b IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0xe5e7f2b1f9270f9db0cdf6722d0da16f39b7677d8a0a9be293a2738255c38114Set Approval For...226445882022-11-21 6:02:3714 days 2 hrs ago0xdb1893cee7e4415756f4a09c8227ec80c40b48cd IN  Vending Machines NFT: VMC Token0 AVAX0.001253803724 27.146835064
0xb131066eb32964284e7cd34eaeb0d8f4693448ac2a144b1491e033b3fdc21bfaSet Approval For...226056072022-11-20 7:38:5215 days 29 mins ago0x8bd8b6d135925b4a51f86324ac78361f12064606 IN  Vending Machines NFT: VMC Token0 AVAX0.000772687 26.5
0xb0a955c66978cea3240efe63a61a062d9a3fde096eb92485ec71ca879d322c92Set Approval For...225116412022-11-18 0:40:5117 days 7 hrs ago0xa309e549a70f2aa1b6a403b5364e00517a645ead IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0x36d040555d8d890791c702ed73ec762e37b6572f4f566d8df5e779c81f4e95afAir Drop VM Owne...224759472022-11-17 3:57:0418 days 4 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.005494658 26
0x0f31ce411ffdfa78f9d9c87b4ef3a4ed39d3d91abf08cdb494c6344c9718e16cAir Drop VM Owne...224687902022-11-16 23:47:0518 days 8 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.012470614 26
0x7be6b5f4146f59ea3872461a1a23366aa3cf715ac6a1b044f42c907e343ce274Set Approval For...224680052022-11-16 23:19:3718 days 8 hrs ago0x83923de4ea901cba9d157bef5496d9d0d356867e IN  Vending Machines NFT: VMC Token0 AVAX0.001272425 27.5
0xb2fd650887c9dffff5f155f15a5559dcbcb02fdcd06dd38a82b05a440d2a1197Safe Transfer Fr...222903832022-11-12 17:01:5022 days 15 hrs ago0xe329e52a2da7d3433a8133a240a1d2e7185b7c76 IN  Vending Machines NFT: VMC Token0 AVAX0.00383427 27.5
0x0949d419213f2f2deb556d1f250a31f9db4997b0913cd4bd4832a19be87fa275Safe Transfer Fr...222903772022-11-12 17:01:3822 days 15 hrs ago0xe329e52a2da7d3433a8133a240a1d2e7185b7c76 IN  Vending Machines NFT: VMC Token0 AVAX0.004117355 27.5
0x19fe7eeedd4e0b17d33254c057d67947dbbaea1e829777fff79755aac4375447Safe Transfer Fr...222903702022-11-12 17:01:2422 days 15 hrs ago0xe329e52a2da7d3433a8133a240a1d2e7185b7c76 IN  Vending Machines NFT: VMC Token0 AVAX0.004117355 27.5
0xb690bbb19724b136132508a3960a5b6ad8845aa186a59bc5b55495eb1f35601fSet Approval For...220456022022-11-06 23:16:0528 days 8 hrs ago0xfbe8529277c7db9187fce93a214bcfbab6e8b1c8 IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0x8cd35be2b2f20450a9b7da00b9d596bc6c048f7c18aae9f62d0d42f246362400Set Approval For...220405152022-11-06 20:22:5828 days 11 hrs ago0xfbe8529277c7db9187fce93a214bcfbab6e8b1c8 IN  Vending Machines NFT: VMC Token0 AVAX0.001238674996 26.77058562
0x597a6eb55367e2e3947a5d192318ff734037340622e2dd3e9b93fc351880f835Air Drop VM Owne...220108612022-11-06 3:12:4129 days 4 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.008909836 26
0xf8732bc5acafe12481379419657e262d08fcf5621204f123924042874a54821fSet Approval For...219913062022-11-05 16:01:5229 days 16 hrs ago0x59e9e4a97ede955cbd704546683a4d31c718e205 IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0x0eb74741bba7e005b1cad6ccec38fe99ab411c442ca34c5626d43e162a4ba6d6Air Drop VM Owne...219465402022-11-04 14:33:1630 days 17 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.008909836 26
0xb8fa76b42dd9a0b109271b5928fcf4794621ad0034dcfb5ce95d35fc745af986Air Drop VM Owne...218830452022-11-03 2:25:2432 days 5 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.005494658 26
0xfe5726956b6643e63bb0cfe2dc8eb8723d8916358fdf5816663f9c57abe1e543Air Drop VM Owne...218442132022-11-02 4:24:0633 days 3 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.008909836 26
0x01f442f54935234782f0329dec54a606c6b916b4ad0a41f3d7498fa91ec841cfAir Drop VM Owne...218310852022-11-01 20:55:0733 days 11 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.005494658 26
0x3850faa8c3214387fc2cde805c2f6800aec5d1e517608bab8e6d641453feacdcAir Drop VM Owne...218293912022-11-01 19:57:1133 days 12 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.008909836 26
0x66c0e5cc93db863ef2b79da51c9a9174f7badc9083357ed689f0924a1960e1ffSet Approval For...217999292022-11-01 3:16:2134 days 4 hrs ago0xb592b00088b7c9bcf9e49fdccb9abf333cba316b IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
0x1e92f50b03e4f9df8bcd184b165c02a2fcf7ddb940c11234ac8ca4de78ef9034Air Drop VM Owne...216820992022-10-29 8:31:0436 days 23 hrs agoVending Machines NFT: Deployer IN  Vending Machines NFT: VMC Token0 AVAX0.005494658 26
0x8ecdebcc77528156f3f13183e3b22b82e6aefcec2e3232f48a3a14cfc5206932Set Approval For...216764312022-10-29 5:17:2237 days 2 hrs ago0xb5fcd37cbc95bb636f5b5197857f45da75a74757 IN  Vending Machines NFT: VMC Token0 AVAX0.00120764726.1
0xe82b4ee7a900e8351785cbcb33ed6cf88939351e22dd60c1f2d242aaf6c5f1ddSet Approval For...216758522022-10-29 4:57:4537 days 3 hrs ago0x9f65df530916bf10934cdbb55093b9bfc7c14b07 IN  Vending Machines NFT: VMC Token0 AVAX0.001226155 26.5
[ Download CSV Export 

OVERVIEW

VM Gorillas NFT is your key to play interactive game, and collect in game coins to earn VMGCoins to swap for another crypto.

Latest 22 internal transactions
Parent Txn Hash Block From To Value
0x02603edd2176fd6f643461058bd6c824958a49eb90562378fdf40a1f8eebcabd214347752022-10-23 12:52:5842 days 19 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.00008991 AVAX
0x02603edd2176fd6f643461058bd6c824958a49eb90562378fdf40a1f8eebcabd214347752022-10-23 12:52:5842 days 19 hrs ago Vending Machines NFT: VMC Token0x5b17e6e7e290e77e9fdfee0aad82b570ac9a1c1a0.00008991 AVAX
0x02603edd2176fd6f643461058bd6c824958a49eb90562378fdf40a1f8eebcabd214347752022-10-23 12:52:5842 days 19 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.00008991 AVAX
0x02603edd2176fd6f643461058bd6c824958a49eb90562378fdf40a1f8eebcabd214347752022-10-23 12:52:5842 days 19 hrs ago 0xbf6bfe5d6b86308cf3b7f147dd03ef11f80bfde3 Vending Machines NFT: VMC Token0.00027 AVAX
0xbf0c4853403dbd19039a973fcaa26f1bbde526151a61874a148afdc7638de2db212848702022-10-20 0:00:4046 days 8 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.0000009 AVAX
0xbf0c4853403dbd19039a973fcaa26f1bbde526151a61874a148afdc7638de2db212848702022-10-20 0:00:4046 days 8 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.0000021 AVAX
0x8cd82731630ad85607f9acdc482cbb0c1be66dea928ccc3818bb6594d2162c74211455442022-10-16 16:56:4749 days 15 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.15 AVAX
0x8cd82731630ad85607f9acdc482cbb0c1be66dea928ccc3818bb6594d2162c74211455442022-10-16 16:56:4749 days 15 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.35 AVAX
0x09169fa40e98535d931ab3ac62770db04d28c698a2808573871780d22967febb190953272022-08-25 9:14:27101 days 22 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.075 AVAX
0x09169fa40e98535d931ab3ac62770db04d28c698a2808573871780d22967febb190953272022-08-25 9:14:27101 days 22 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.175 AVAX
0xe41561d64340694d3ebbf00810d21996c6d911747dee6a8ec878c400855bcd94163145672022-06-21 6:20:01167 days 1 hr ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.15 AVAX
0xe41561d64340694d3ebbf00810d21996c6d911747dee6a8ec878c400855bcd94163145672022-06-21 6:20:01167 days 1 hr ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.35 AVAX
0x0d3f02c11c9205842fa9bc15eb66a3721804a739ffd89db46019f036cb4f1a3f160971292022-06-16 6:12:10172 days 1 hr ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.075 AVAX
0x0d3f02c11c9205842fa9bc15eb66a3721804a739ffd89db46019f036cb4f1a3f160971292022-06-16 6:12:10172 days 1 hr ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.175 AVAX
0xbe05b0b8393633c003ae3a619f1c43aba517d40e5bb653dd53309c2c08b7d3ca141844312022-05-02 16:41:38216 days 15 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.001 AVAX
0xbe05b0b8393633c003ae3a619f1c43aba517d40e5bb653dd53309c2c08b7d3ca141844312022-05-02 16:41:38216 days 15 hrs ago Vending Machines NFT: VMC Token0x5b17e6e7e290e77e9fdfee0aad82b570ac9a1c1a0.001 AVAX
0xbe05b0b8393633c003ae3a619f1c43aba517d40e5bb653dd53309c2c08b7d3ca141844312022-05-02 16:41:38216 days 15 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.001 AVAX
0xbe05b0b8393633c003ae3a619f1c43aba517d40e5bb653dd53309c2c08b7d3ca141844312022-05-02 16:41:38216 days 15 hrs ago Vending Machines NFT: VMC Token0x1ddbccffb075f9242720554391d6cab8084ad2fc0.097 AVAX
0x7add82b5a18f530745438ee791420a9ae142f02a5d6917246f90f03a0dab1ec7121991462022-03-16 22:24:54263 days 9 hrs ago Vending Machines NFT: VMC TokenVending Machines NFT: Deployer0.000999 AVAX
0x7add82b5a18f530745438ee791420a9ae142f02a5d6917246f90f03a0dab1ec7121991462022-03-16 22:24:54263 days 9 hrs ago Vending Machines NFT: VMC Token0x5b17e6e7e290e77e9fdfee0aad82b570ac9a1c1a0.000999 AVAX
0x7add82b5a18f530745438ee791420a9ae142f02a5d6917246f90f03a0dab1ec7121991462022-03-16 22:24:54263 days 9 hrs ago Vending Machines NFT: VMC Token0x4057f6d0c49358b88a318dcb230f7d3140fa78de0.000999 AVAX
0x7add82b5a18f530745438ee791420a9ae142f02a5d6917246f90f03a0dab1ec7121991462022-03-16 22:24:54263 days 9 hrs ago 0x11ac3118309a7215c6d87c7c396e2df333ae3a9c Vending Machines NFT: VMC Token0.003 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VMComics

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-03-15
*/

// SPDX-License-Identifier: MIT
// Created by petdomaa100 & modified by xrpant

pragma solidity 0.8.11;


library Strings {
	function toString(uint256 value) internal pure returns(string memory) {
		if (value == 0) return "0";

		uint256 temp = value;
		uint256 digits;

		while (temp != 0) {
			digits++;
			temp /= 10;
		}

		bytes memory buffer = new bytes(digits);

		while (value != 0) {
			digits -= 1;
			buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
			value /= 10;
		}

		return string(buffer);
	}
}

library Address {
	function isContract(address account) internal view returns(bool) {
		return account.code.length > 0;
	}
}

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, "Counter: decrement overflow");

		unchecked {
			counter._value = value - 1;
		}
	}

	function reset(Counter storage counter) internal {
		counter._value = 0;
	}
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,
        address to,
        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 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);
}

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

interface IERC2981Royalties {
	function royaltyInfo(uint256 tokenID, uint256 value) external view returns(address receiver, uint256 royaltyAmount);
}


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

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

abstract contract Ownable is Context {
	address private _owner;

	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


	constructor() {
		_transferOwnership(_msgSender());
	}


	function owner() public view virtual returns(address) {
		return _owner;
	}

	modifier onlyOwner() {
		require(owner() == _msgSender(), "Ownable: caller is not the owner");
		_;
	}


	function transferOwnership(address newOwner) public virtual onlyOwner {
		require(newOwner != address(0), "Ownable: new owner is the zero address");

		_transferOwnership(newOwner);
	}

	function _transferOwnership(address newOwner) internal virtual {
		address oldOwner = _owner;

		_owner = newOwner;

		emit OwnershipTransferred(oldOwner, newOwner);
	}
}

abstract contract ReentrancyGuard {
	uint256 private constant _NOT_ENTERED = 1;
	uint256 private constant _ENTERED = 2;

	uint256 private _status;

	constructor() {
		_status = _NOT_ENTERED;
	}


	modifier nonReentrant() {
		require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

		_status = _ENTERED;

		_;

		_status = _NOT_ENTERED;
	}
}


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

abstract 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 {
		_setApprovalForAll(_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 {
		//solhint-disable-next-line max-line-length
		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);

		_afterTokenTransfer(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);

		_afterTokenTransfer(owner, address(0), tokenID);
	}

	function _transfer(address from, address to, uint256 tokenID) internal virtual {
		require(ERC721.ownerOf(tokenID) == from, "ERC721: transfer from incorrect owner");
		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);

		_afterTokenTransfer(from, to, tokenID);
	}

	function _approve(address to, uint256 tokenID) internal virtual {
		_tokenApprovals[tokenID] = to;

		emit Approval(ERC721.ownerOf(tokenID), to, tokenID);
	}

	function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {
		require(owner != operator, "ERC721: approve to caller");

		_operatorApprovals[owner][operator] = approved;

		emit ApprovalForAll(owner, operator, approved);
	}

	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.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 {}

	function _afterTokenTransfer(address from, address to, uint256 tokenID) internal virtual {}
}

// File @openzeppelin/contracts/token/ERC721/extensions/[email protected]


pragma solidity ^0.8.0;

/**
 * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Enumerable is IERC721 {
    /**
     * @dev Returns the total amount of tokens stored by the contract.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.
     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
     */
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);

    /**
     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.
     * Use along with {totalSupply} to enumerate all tokens.
     */
    function tokenByIndex(uint256 index) external view returns (uint256);
}


// File @openzeppelin/contracts/token/ERC721/extensions/[email protected]


pragma solidity ^0.8.0;


/**
 * @dev This implements an optional extension of {ERC721} defined in the EIP that adds
 * enumerability of all the token ids in the contract as well as all token ids owned by each
 * account.
 */
abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    // Mapping from owner to list of owned token IDs
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;

    // Mapping from token ID to index of the owner tokens list
    mapping(uint256 => uint256) private _ownedTokensIndex;

    // Array with all token ids, used for enumeration
    uint256[] private _allTokens;

    // Mapping from token id to position in the allTokens array
    mapping(uint256 => uint256) private _allTokensIndex;

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {
        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.
     */
    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];
    }

    /**
     * @dev See {IERC721Enumerable-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }

    /**
     * @dev See {IERC721Enumerable-tokenByIndex}.
     */
    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning.
     *
     * Calling conditions:
     *
     * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be
     * transferred to `to`.
     * - When `from` is zero, `tokenId` will be minted for `to`.
     * - When `to` is zero, ``from``'s `tokenId` will be burned.
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    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);
        }
    }

    /**
     * @dev Private function to add a token to this extension's ownership-tracking data structures.
     * @param to address representing the new owner of the given token ID
     * @param tokenId uint256 ID of the token to be added to the tokens list of the given address
     */
    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }

    /**
     * @dev Private function to add a token to this extension's token tracking data structures.
     * @param tokenId uint256 ID of the token to be added to the tokens list
     */
    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    /**
     * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that
     * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for
     * gas optimizations e.g. when performing a transfer operation (avoiding double writes).
     * This has O(1) time complexity, but alters the order of the _ownedTokens array.
     * @param from address representing the previous owner of the given token ID
     * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address
     */
    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and
        // then delete the last slot (swap and pop).

        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];

        // When the token to delete is the last token, the swap operation is unnecessary
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index
        }

        // This also deletes the contents at the last position of the array
        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }

    /**
     * @dev Private function to remove a token from this extension's token tracking data structures.
     * This has O(1) time complexity, but alters the order of the _allTokens array.
     * @param tokenId uint256 ID of the token to be removed from the tokens list
     */
    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and
        // then delete the last slot (swap and pop).

        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];

        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so
        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding
        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)
        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index

        // This also deletes the contents at the last position of the array
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}


contract VMComics is ERC721Enumerable, ReentrancyGuard, Ownable {
	using Counters for Counters.Counter;
	using Strings for uint256;

	IERC20 wavaxContract;

	bool public paused;
	bool public revealed;
	bool public allowListings;
	bool public collectSalesRewardsFromThirdParty;

	string private unrevealedURI;
	string private baseURI;
	string private uriSuffix;

	uint256 public cost;
	uint256 public maxSupply;
	uint256 public reservedSupply;
	uint256 public nextVMAirdrop;

	uint256 public maxMintAmountPerTX;

	uint256 public royalties;
	uint256 public salesRewards;
	uint256 public artistRewards;

	address private artistAddress;
	address private communityAddress;
	address private VMAddr; 
	address private wavaxAddr;

	struct Listing {
		uint256 tokenID;
		uint256 price;
		address seller;
		uint256 timestamp;
	}

	Listing[] private listings;

	Counters.Counter private supply;

	uint256 private constant PERCENTAGE_MULTIPLIER = 10000;

	event NewListing(uint256 indexed tokenID, address indexed seller, uint256 price);
	event WithdrawnListing(uint256 indexed tokenID);
	event TokenSold(uint256 indexed tokenID, address indexed from, address indexed to, uint256 price);

	constructor(string memory _initUnrevealedURI, address _initArtistAddress, address _initCommunityAddress) ERC721("VM Comics", "VMC") {
		paused = true;
		revealed = false;
		allowListings = true;
		collectSalesRewardsFromThirdParty = true;

		cost = 1 ether;
		maxSupply = 15000;
		reservedSupply = 4444;
		maxMintAmountPerTX = 10;

		nextVMAirdrop = 1;

		royalties = 100;
		salesRewards = 100;
		artistRewards = 100;

		artistAddress = _initArtistAddress;
		communityAddress = _initCommunityAddress;
		wavaxAddr = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7;
		VMAddr = 0xBbD9786f178e2AEBb4b4329c41A821921ca05339;

		wavaxContract = IERC20(wavaxAddr);

		setURIsuffix(".json");
		setUnrevealedURI(_initUnrevealedURI);
	}


	function supportsInterface(bytes4 interfaceID) public view override returns(bool) {
		return interfaceID == type(IERC2981Royalties).interfaceId || super.supportsInterface(interfaceID);
	}


	function mint(uint256 amount) public payable nonReentrant {
		require(amount > 0 && amount <= maxMintAmountPerTX, "Invalid mint amount");

		uint256 newSupply = supply.current() + amount;

		require(newSupply <= maxSupply, "Max token supply exceeded");
		require(newSupply <= maxSupply - reservedSupply, "Remaining tokens are reserved");

		require(!paused, "Minting is paused");

		uint256 proceeds = cost * amount;
		require(msg.value == proceeds, "Insufficient funds");

		_mintLoop(_msgSender(), amount);

		uint256 proceeds_10percent = proceeds * 10 / 100;

		(bool success1, ) = payable(communityAddress).call{ value: proceeds_10percent * 7 }("");
		require(success1, "AVAX Transaction: Failed to transfer funds to community wallet!");

		(bool success2, ) = payable(owner()).call{ value: proceeds_10percent * 3 }("");
		require(success2, "AVAX Transaction: Failed to transfer funds to owner wallet!");

	}

	function airDrop(address[] calldata addresses, uint8[] calldata amounts) public onlyOwner {
		assert(addresses.length == amounts.length);
		assert(addresses.length > 0 && amounts.length > 0);


		uint256 totalAmount;
		for (uint256 i = 0; i < amounts.length; i++) totalAmount += amounts[i];

		require(supply.current() + totalAmount <= maxSupply, "Max token supply exceeded");


		for (uint256 i = 0; i < addresses.length; i++) {
			uint8 amount = amounts[i];

			for (uint256 j = 0; j < amount; j++) {
				supply.increment();

				uint256 tokenID = supply.current();

				_safeMint(addresses[i], tokenID);
			}
		}
	}

	function airDropVMOwner(uint256 _lastToken) public onlyOwner {
		require(nextVMAirdrop <= _lastToken, "Token already airdropped!");
		require(_lastToken <= 4444, "Last token must be 4444 or less.");

		IERC721 VMContract = IERC721(VMAddr);

		for (uint256 i = nextVMAirdrop; i <= _lastToken; i++) {

			supply.increment();

			uint256 tokenID = supply.current();

			_safeMint(VMContract.ownerOf(i), tokenID);

			reservedSupply -= 1;

		}

        nextVMAirdrop = _lastToken + 1;
	}


	function flipPausedState() public onlyOwner {
		paused = !paused;
	}

	function flipAllowListingsState() public onlyOwner {
		allowListings = !allowListings;
	}

	function flipCollectSalesRewardsFromThirdParty() public onlyOwner {
		collectSalesRewardsFromThirdParty = !collectSalesRewardsFromThirdParty;
	}

	function reveal(string memory _initBaseURI) public onlyOwner {
		revealed = true;

		setBaseURI(_initBaseURI);
	}

	function withdraw() public onlyOwner {
		uint256 balance_10percent = address(this).balance * 10 / 100;

		(bool success1, ) = payable(communityAddress).call{ value: balance_10percent * 7 }("");
		require(success1, "AVAX Transaction: Failed to transfer funds to community wallet!");

		(bool success2, ) = payable(owner()).call{ value: address(this).balance }("");
		require(success2, "AVAX Transaction: Failed to transfer funds to the owner wallet!");
	}

	function emergencyWithdraw() public payable onlyOwner {
		(bool success, ) = payable(owner()).call{ value: address(this).balance }("");

		require(success, "AVAX Transaction: Failed to transfer funds");
	}

	function royaltyInfo(uint256, uint256 value) external view returns(address receiver, uint256 royaltyAmount) {
		receiver = address(this);

		royaltyAmount = value * (royalties + salesRewards + artistRewards) / PERCENTAGE_MULTIPLIER;
	}

	function createListing(uint256 tokenID, uint256 price) public nonReentrant {
		require(allowListings, "ERC721 Marketplace: Listings are currently disabled");
		require(price > 0, "ERC721 Marketplace: Invalid listing price");
		require(ownerOf(tokenID) == _msgSender(), "ERC721 Marketplace: Caller is not the owner");

		(bool isListed, ) = isTokenListed(tokenID);
		require(!isListed, "ERC721 Marketplace: Token is already listed");

		Listing memory sale = Listing(tokenID, price, _msgSender(), block.timestamp);

		listings.push(sale);

		emit NewListing(tokenID, _msgSender(), price);
	}

	function withdrawListing(uint256 tokenID) public nonReentrant {
		(bool isListed, uint256 listingIndex) = isTokenListed(tokenID);

		require(isListed, "ERC721 Marketplace: Token is not listed");
		require(listings[listingIndex].seller == _msgSender(), "ERC721 Marketplace: Caller is not the owner");

		listings[listingIndex] = listings[listings.length - 1];
		listings.pop();

		emit WithdrawnListing(tokenID);
	}

	function fulfillListing(uint256 tokenID) public payable nonReentrant {
		(bool isListed, uint256 listingIndex) = isTokenListed(tokenID);
		require(isListed, "ERC721 Marketplace: Token is not listed");

		Listing memory listing = listings[listingIndex];

		require(listing.seller != _msgSender(), "ERC721 Marketplace: Buyer and seller must be be different addresses");
		require(msg.value >= listing.price, "ERC721 Marketplace: Insufficient funds");

		uint256 royaltiesValue = msg.value * royalties / PERCENTAGE_MULTIPLIER;
        uint256 artistRewardValue = msg.value * artistRewards / PERCENTAGE_MULTIPLIER;
		uint256 salesRewardValue = msg.value * salesRewards / PERCENTAGE_MULTIPLIER;

		listings[listingIndex] = listings[listings.length - 1];
		listings.pop();

		emit TokenSold(tokenID, listing.seller, _msgSender(), msg.value);

		_safeTransfer(listing.seller, _msgSender(), tokenID, "");

		(bool success1, ) = payable(listing.seller).call{ value: msg.value - (royaltiesValue + salesRewardValue + artistRewardValue) }("");
		require(success1, "AVAX Transaction: Failed to transfer funds");

		(bool success2, ) = payable(communityAddress).call{ value: salesRewardValue }("");
		require(success2, "AVAX Transaction: Failed to transfer funds to community address");

		(bool success3, ) = payable(artistAddress).call{ value: artistRewardValue }("");
		require(success3, "AVAX Transaction: Failed to transfer funds to artist address");

		(bool success4, ) = payable(owner()).call{ value: royaltiesValue }("");
		require(success4, "AVAX Transaction: Failed to transfer funds to owner address");
	}

	function isTokenListed(uint256 tokenID) public view returns(bool isListed, uint256 index) {
		for (uint256 i = 0; i < listings.length; i++) {
			if (listings[i].tokenID != tokenID) continue;

			isListed = true;
			index = i;

			break;
		}
	}

	function getListings() public view returns(Listing[] memory) {
		return listings;
	}

	function getListingByTokenID(uint256 tokenID) public view returns(Listing memory) {
		(bool isListed, uint256 listingIndex) = isTokenListed(tokenID);
		require(isListed, "ERC721 Marketplace: Token is not listed");

		return listings[listingIndex];
	}

	function tokenURI(uint256 tokenID) public view override returns(string memory) {
		require(_exists(tokenID), "ERC721Metadata: URI query for nonexistent token");

		if (!revealed) return unrevealedURI;

		string memory currentBaseURI = _baseURI();

		return bytes(currentBaseURI).length > 0 ? string( abi.encodePacked(currentBaseURI, tokenID.toString(), uriSuffix) ) : "";
	}

	function setBaseURI(string memory newBaseURI) public onlyOwner {
		baseURI = newBaseURI;
	}

	function setUnrevealedURI(string memory newUnrevealedURI) public onlyOwner {
		unrevealedURI = newUnrevealedURI;
	}

	function setURIsuffix(string memory newSuffix) public onlyOwner {
		uriSuffix = newSuffix;
	}

	function setMaxSupply(uint256 newAmount) public onlyOwner {
		maxSupply = newAmount;
	}

	function setReservedSupply(uint256 newAmount) public onlyOwner {
		reservedSupply = newAmount;
	}

	function setMaxMintAmountPerTX(uint256 newAmount) public onlyOwner {
		maxMintAmountPerTX = newAmount;
	}

	function setCost(uint256 newCost) public onlyOwner {
		cost = newCost;
	}

	function setArtistRewards(uint256 newValue) public onlyOwner {
		artistRewards = newValue;
	}

	function setSalesRewards(uint256 newValue) public onlyOwner {
		salesRewards = newValue;
	}

	function setRoyalties(uint256 newValue) public onlyOwner {
		royalties = newValue;
	}

    function setNextVMAirDrop(uint256 newAmount) public onlyOwner {
		nextVMAirdrop = newAmount;
	}

	function setWithdrawAddresses(address newCommunityAddress, address newArtistAddress) public onlyOwner {
		communityAddress = newCommunityAddress;
		artistAddress = newArtistAddress;
	}

    function setVMAddr (address _contract) public onlyOwner {
		VMAddr = _contract;
	}

	function setWavaxAddr (address _contract) public onlyOwner {
		wavaxAddr = _contract;
		wavaxContract = IERC20(wavaxAddr);
	}


	function _baseURI() internal view override returns(string memory) {
		return baseURI;
	}

	function _beforeTokenTransfer(address from, address to, uint256 tokenID) internal override (ERC721Enumerable){
		(bool isListed, ) = isTokenListed(tokenID);
		require(!isListed, "ERC721 Marketplace: Unable to transfer a listed token");


		super._beforeTokenTransfer(from, to, tokenID);
	}

	function _mintLoop(address to, uint256 amount) internal {
		for (uint256 i = 0; i < amount; i++) {
			supply.increment();

			_safeMint(to, supply.current());
		}
	}

	function withdrawWavaxManual(uint256 _amount) public onlyOwner { 
        wavaxContract.transfer(msg.sender, _amount);
    }

	function withdrawWavax() public onlyOwner { 
		uint256 balance = wavaxContract.balanceOf(address(this));
		uint256 balance_fraction = balance * 100 / 100000;

        wavaxContract.transfer(communityAddress, balance_fraction * 333);
		wavaxContract.transfer(artistAddress, balance_fraction * 333);
		wavaxContract.transfer(owner(), balance_fraction * 333);
    }

	receive() external payable {
		
		uint256 fraction = msg.value * 100 / 100000;

		(bool success1, ) = payable(communityAddress).call{ value: fraction * 333 }("");
		require(success1, "AVAX Transaction: Failed to transfer funds to community wallet!");

		(bool success2, ) = payable(artistAddress).call{ value: fraction * 333 }("");
		require(success2, "AVAX Transaction: Failed to transfer funds to artist wallet!");

		(bool success3, ) = payable(owner()).call{ value: fraction * 333 }("");
		require(success3, "AVAX Transaction: Failed to transfer funds to owner wallet!");

	}
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"_initUnrevealedURI","type":"string"},{"internalType":"address","name":"_initArtistAddress","type":"address"},{"internalType":"address","name":"_initCommunityAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenID","type":"uint256"},{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"NewListing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenID","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"TokenSold","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":true,"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"WithdrawnListing","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint8[]","name":"amounts","type":"uint8[]"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lastToken","type":"uint256"}],"name":"airDropVMOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allowListings","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"artistRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectSalesRewardsFromThirdParty","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"createListing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"flipAllowListingsState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipCollectSalesRewardsFromThirdParty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipPausedState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"fulfillListing","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"getListingByTokenID","outputs":[{"components":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct VMComics.Listing","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getListings","outputs":[{"components":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct VMComics.Listing[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"isTokenListed","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmountPerTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextVMAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reservedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_initBaseURI","type":"string"}],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royalties","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"salesRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setArtistRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setMaxMintAmountPerTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setNextVMAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setReservedSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSalesRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSuffix","type":"string"}],"name":"setURIsuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUnrevealedURI","type":"string"}],"name":"setUnrevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"setVMAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"setWavaxAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCommunityAddress","type":"address"},{"internalType":"address","name":"newArtistAddress","type":"address"}],"name":"setWithdrawAddresses","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":[{"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":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"withdrawListing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawWavax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawWavaxManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162004d1938038062004d1983398101604081905262000034916200039c565b6040805180820182526009815268564d20436f6d69637360b81b602080830191825283518085019094526003845262564d4360e81b9084015281519192916200008091600091620002c3565b50805162000096906001906020840190620002c3565b50506001600a5550620000a933620001ae565b600c8054670de0b6b3a7640000601055613a9860115561115c601255600a6014556001601355606460158190556016819055601755601880546001600160a01b038087166001600160a01b0319928316179092556019805492861692821692909217909155601b8054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c7179055601a805490911673bbd9786f178e2aebb4b4329c41a821921ca053391790557701010001b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160c01b0319909116179055604080518082019091526005815264173539b7b760d91b60208201526200019a9062000200565b620001a58362000268565b505050620004dc565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b546001600160a01b031633146200024f5760405162461bcd60e51b8152602060048201819052602482015260008051602062004cf983398151915260448201526064015b60405180910390fd5b80516200026490600f906020840190620002c3565b5050565b600b546001600160a01b03163314620002b35760405162461bcd60e51b8152602060048201819052602482015260008051602062004cf9833981519152604482015260640162000246565b80516200026490600d9060208401905b828054620002d1906200049f565b90600052602060002090601f016020900481019282620002f5576000855562000340565b82601f106200031057805160ff191683800117855562000340565b8280016001018555821562000340579182015b828111156200034057825182559160200191906001019062000323565b506200034e92915062000352565b5090565b5b808211156200034e576000815560010162000353565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200039757600080fd5b919050565b600080600060608486031215620003b257600080fd5b83516001600160401b0380821115620003ca57600080fd5b818601915086601f830112620003df57600080fd5b815181811115620003f457620003f462000369565b604051601f8201601f19908116603f011681019083821181831017156200041f576200041f62000369565b816040528281526020935089848487010111156200043c57600080fd5b600091505b8282101562000460578482018401518183018501529083019062000441565b82821115620004725760008484830101525b9650620004849150508682016200037f565b9350505062000496604085016200037f565b90509250925092565b600181811c90821680620004b457607f821691505b60208210811415620004d657634e487b7160e01b600052602260045260246000fd5b50919050565b61480d80620004ec6000396000f3fe6080604052600436106103b15760003560e01c80636f8b44b0116101e7578063aec6e2731161010d578063e02f3993116100a0578063f1b2d6a31161006f578063f1b2d6a314610ccf578063f2fde38b14610cf1578063f9daade414610d11578063fe2c7fee14610d3157600080fd5b8063e02f399314610c3a578063e65f9cf414610c50578063e985e9c514610c70578063f053dc5c14610cb957600080fd5b8063d5abeb01116100dc578063d5abeb0114610be6578063db2e21bc14610bfc578063dd18ff5014610c04578063ded8a56414610c2457600080fd5b8063aec6e27314610b66578063aff7214114610b86578063b88d4fde14610ba6578063c87b56dd14610bc657600080fd5b806395d89b4111610185578063a17bd78311610154578063a17bd78314610afc578063a22cb46514610b11578063a576055314610b31578063a79123a914610b4657600080fd5b806395d89b4114610a7c5780639b83cddc14610a91578063a0712d6814610ac8578063a0ba1bbf14610adb57600080fd5b806384917f4a116101c157806384917f4a146109fc5780638da5cb5b14610a295780638e6fe1a314610a4757806393eff85114610a6757600080fd5b80636f8b44b01461099c57806370a08231146109bc5780637ef6f656146109dc57600080fd5b80633912fc85116102d75780634e9be7491161026a57806355f804b31161023957806355f804b31461091b57806356fcf95b1461093b5780635c975abb1461095b5780636352211e1461097c57600080fd5b80634e9be749146108995780634f6ccce7146108b95780634f8a1db5146108d957806351830227146108fa57600080fd5b806344d19d2b116102a657806344d19d2b146108235780634501b558146108395780634bbedc29146108595780634c2612471461087957600080fd5b80633912fc85146107bb5780633ccfd60b146107ce57806342842e0e146107e357806344a0d68a1461080357600080fd5b80631beb585b1161034f5780632b80183f1161031e5780632b80183f1461074f5780632dfa9d001461076f5780632f745c59146107855780632f98ea73146107a557600080fd5b80631beb585b146106b05780631e13f86b146106d057806323b872dd146106f05780632a55205a1461071057600080fd5b8063081812fc1161038b578063081812fc1461061f578063095ea7b31461065757806313faede61461067757806318160ddd1461069b57600080fd5b806301ffc9a7146105b157806306fdde03146105e65780630798e5c91461060857600080fd5b366105ac576000620186a06103c7346064613ded565b6103d19190613e22565b6019549091506000906001600160a01b03166103ef8361014d613ded565b604051600081818185875af1925050503d806000811461042b576040519150601f19603f3d011682016040523d82523d6000602084013e610430565b606091505b505090508061045a5760405162461bcd60e51b815260040161045190613e36565b60405180910390fd5b6018546000906001600160a01b03166104758461014d613ded565b604051600081818185875af1925050503d80600081146104b1576040519150601f19603f3d011682016040523d82523d6000602084013e6104b6565b606091505b505090508061051b5760405162461bcd60e51b815260206004820152603c60248201526000805160206147b883398151915260448201527f736665722066756e647320746f206172746973742077616c6c657421000000006064820152608401610451565b600061052f600b546001600160a01b031690565b6001600160a01b03166105448561014d613ded565b604051600081818185875af1925050503d8060008114610580576040519150601f19603f3d011682016040523d82523d6000602084013e610585565b606091505b50509050806105a65760405162461bcd60e51b815260040161045190613e81565b50505050005b600080fd5b3480156105bd57600080fd5b506105d16105cc366004613ee2565b610d51565b60405190151581526020015b60405180910390f35b3480156105f257600080fd5b506105fb610d7c565b6040516105dd9190613f57565b34801561061457600080fd5b5061061d610e0e565b005b34801561062b57600080fd5b5061063f61063a366004613f6a565b610e59565b6040516001600160a01b0390911681526020016105dd565b34801561066357600080fd5b5061061d610672366004613f98565b610eee565b34801561068357600080fd5b5061068d60105481565b6040519081526020016105dd565b3480156106a757600080fd5b5060085461068d565b3480156106bc57600080fd5b5061061d6106cb366004613f6a565b611004565b3480156106dc57600080fd5b5061061d6106eb366004613f6a565b611033565b3480156106fc57600080fd5b5061061d61070b366004613fc4565b611062565b34801561071c57600080fd5b5061073061072b366004614005565b611093565b604080516001600160a01b0390931683526020830191909152016105dd565b34801561075b57600080fd5b5061061d61076a366004613f6a565b6110d6565b34801561077b57600080fd5b5061068d60145481565b34801561079157600080fd5b5061068d6107a0366004613f98565b611105565b3480156107b157600080fd5b5061068d60135481565b61061d6107c9366004613f6a565b61119b565b3480156107da57600080fd5b5061061d6117df565b3480156107ef57600080fd5b5061061d6107fe366004613fc4565b611969565b34801561080f57600080fd5b5061061d61081e366004613f6a565b611984565b34801561082f57600080fd5b5061068d60125481565b34801561084557600080fd5b5061061d610854366004614027565b6119b3565b34801561086557600080fd5b5061061d610874366004613f6a565b6119ff565b34801561088557600080fd5b5061061d6108943660046140d0565b611bb6565b3480156108a557600080fd5b5061061d6108b4366004613f6a565b611bff565b3480156108c557600080fd5b5061068d6108d4366004613f6a565b611c2e565b3480156108e557600080fd5b50600c546105d190600160b81b900460ff1681565b34801561090657600080fd5b50600c546105d190600160a81b900460ff1681565b34801561092757600080fd5b5061061d6109363660046140d0565b611cc1565b34801561094757600080fd5b5061061d610956366004613f6a565b611d02565b34801561096757600080fd5b50600c546105d190600160a01b900460ff1681565b34801561098857600080fd5b5061063f610997366004613f6a565b611d31565b3480156109a857600080fd5b5061061d6109b7366004613f6a565b611da8565b3480156109c857600080fd5b5061068d6109d7366004614027565b611dd7565b3480156109e857600080fd5b5061061d6109f7366004614119565b611e5e565b348015610a0857600080fd5b50610a1c610a17366004613f6a565b611eb6565b6040516105dd9190614152565b348015610a3557600080fd5b50600b546001600160a01b031661063f565b348015610a5357600080fd5b5061061d610a62366004613f6a565b611f7c565b348015610a7357600080fd5b5061061d611fab565b348015610a8857600080fd5b506105fb611ff6565b348015610a9d57600080fd5b50610ab1610aac366004613f6a565b612005565b6040805192151583526020830191909152016105dd565b61061d610ad6366004613f6a565b612069565b348015610ae757600080fd5b50600c546105d190600160b01b900460ff1681565b348015610b0857600080fd5b5061061d612386565b348015610b1d57600080fd5b5061061d610b2c366004614194565b6123d1565b348015610b3d57600080fd5b5061061d6123dc565b348015610b5257600080fd5b5061061d610b61366004614005565b61265b565b348015610b7257600080fd5b5061061d610b81366004613f6a565b612948565b348015610b9257600080fd5b5061061d610ba13660046140d0565b612aff565b348015610bb257600080fd5b5061061d610bc13660046141c2565b612b3c565b348015610bd257600080fd5b506105fb610be1366004613f6a565b612b74565b348015610bf257600080fd5b5061068d60115481565b61061d612cf5565b348015610c1057600080fd5b5061061d610c1f366004614027565b612da3565b348015610c3057600080fd5b5061068d60175481565b348015610c4657600080fd5b5061068d60165481565b348015610c5c57600080fd5b5061061d610c6b366004613f6a565b612df9565b348015610c7c57600080fd5b506105d1610c8b366004614119565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610cc557600080fd5b5061068d60155481565b348015610cdb57600080fd5b50610ce4612e98565b6040516105dd9190614242565b348015610cfd57600080fd5b5061061d610d0c366004614027565b612f22565b348015610d1d57600080fd5b5061061d610d2c366004614303565b612fba565b348015610d3d57600080fd5b5061061d610d4c3660046140d0565b61317c565b60006001600160e01b0319821663152a902d60e11b1480610d765750610d76826131b9565b92915050565b606060008054610d8b9061436f565b80601f0160208091040260200160405190810160405280929190818152602001828054610db79061436f565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050905090565b600b546001600160a01b03163314610e385760405162461bcd60e51b8152600401610451906143aa565b600c805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000818152600260205260408120546001600160a01b0316610ed25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610451565b506000908152600460205260409020546001600160a01b031690565b6000610ef982611d31565b9050806001600160a01b0316836001600160a01b03161415610f675760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610451565b336001600160a01b0382161480610f835750610f838133610c8b565b610ff55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610451565b610fff83836131de565b505050565b600b546001600160a01b0316331461102e5760405162461bcd60e51b8152600401610451906143aa565b601755565b600b546001600160a01b0316331461105d5760405162461bcd60e51b8152600401610451906143aa565b601255565b61106c338261324c565b6110885760405162461bcd60e51b8152600401610451906143df565b610fff838383613343565b6000803091506127106017546016546015546110af9190614430565b6110b99190614430565b6110c39085613ded565b6110cd9190613e22565b90509250929050565b600b546001600160a01b031633146111005760405162461bcd60e51b8152600401610451906143aa565b601555565b600061111083611dd7565b82106111725760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610451565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6002600a5414156111be5760405162461bcd60e51b815260040161045190614448565b6002600a556000806111cf83612005565b91509150816111f05760405162461bcd60e51b81526004016104519061447f565b6000601c8281548110611205576112056144c6565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b031690820152600390910154606082015290506112583390565b6001600160a01b031681604001516001600160a01b031614156112ef5760405162461bcd60e51b815260206004820152604360248201527f455243373231204d61726b6574706c6163653a20427579657220616e6420736560448201527f6c6c6572206d75737420626520626520646966666572656e742061646472657360648201526273657360e81b608482015260a401610451565b80602001513410156113525760405162461bcd60e51b815260206004820152602660248201527f455243373231204d61726b6574706c6163653a20496e73756666696369656e746044820152652066756e647360d01b6064820152608401610451565b6000612710601554346113659190613ded565b61136f9190613e22565b90506000612710601754346113849190613ded565b61138e9190613e22565b90506000612710601654346113a39190613ded565b6113ad9190613e22565b601c8054919250906113c1906001906144dc565b815481106113d1576113d16144c6565b9060005260206000209060040201601c86815481106113f2576113f26144c6565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b03909216919091179055600391820154910155601c805480611451576114516144f3565b600082815260208120600460001990930192830201818155600181018290556002810180546001600160a01b031916905560030155905561148f3390565b6001600160a01b031684604001516001600160a01b0316887f3d5eb834b5d6cadc063c171c3f25f60bca8ea892ba9db25342278927d0af9556346040516114d891815260200190565b60405180910390a461150584604001516114ef3390565b89604051806020016040528060008152506134ea565b60408401516000906001600160a01b0316836115218487614430565b61152b9190614430565b61153590346144dc565b604051600081818185875af1925050503d8060008114611571576040519150601f19603f3d011682016040523d82523d6000602084013e611576565b606091505b50509050806115975760405162461bcd60e51b815260040161045190614509565b6019546040516000916001600160a01b03169084908381818185875af1925050503d80600081146115e4576040519150601f19603f3d011682016040523d82523d6000602084013e6115e9565b606091505b505090508061164e5760405162461bcd60e51b815260206004820152603f60248201526000805160206147b883398151915260448201527f736665722066756e647320746f20636f6d6d756e6974792061646472657373006064820152608401610451565b6018546040516000916001600160a01b03169086908381818185875af1925050503d806000811461169b576040519150601f19603f3d011682016040523d82523d6000602084013e6116a0565b606091505b50509050806117055760405162461bcd60e51b815260206004820152603c60248201526000805160206147b883398151915260448201527f736665722066756e647320746f206172746973742061646472657373000000006064820152608401610451565b6000611719600b546001600160a01b031690565b6001600160a01b03168760405160006040518083038185875af1925050503d8060008114611763576040519150601f19603f3d011682016040523d82523d6000602084013e611768565b606091505b50509050806117cd5760405162461bcd60e51b815260206004820152603b60248201526000805160206147b883398151915260448201527f736665722066756e647320746f206f776e6572206164647265737300000000006064820152608401610451565b50506001600a55505050505050505050565b600b546001600160a01b031633146118095760405162461bcd60e51b8152600401610451906143aa565b6000606461181847600a613ded565b6118229190613e22565b6019549091506000906001600160a01b031661183f836007613ded565b604051600081818185875af1925050503d806000811461187b576040519150601f19603f3d011682016040523d82523d6000602084013e611880565b606091505b50509050806118a15760405162461bcd60e51b815260040161045190613e36565b60006118b5600b546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d80600081146118ff576040519150601f19603f3d011682016040523d82523d6000602084013e611904565b606091505b5050905080610fff5760405162461bcd60e51b815260206004820152603f60248201526000805160206147b883398151915260448201527f736665722066756e647320746f20746865206f776e65722077616c6c657421006064820152608401610451565b610fff83838360405180602001604052806000815250612b3c565b600b546001600160a01b031633146119ae5760405162461bcd60e51b8152600401610451906143aa565b601055565b600b546001600160a01b031633146119dd5760405162461bcd60e51b8152600401610451906143aa565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314611a295760405162461bcd60e51b8152600401610451906143aa565b806013541115611a7b5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20616c72656164792061697264726f7070656421000000000000006044820152606401610451565b61115c811115611acd5760405162461bcd60e51b815260206004820181905260248201527f4c61737420746f6b656e206d7573742062652034343434206f72206c6573732e6044820152606401610451565b601a546013546001600160a01b03909116905b828111611ba357611af5601d80546001019055565b6000611b00601d5490565b6040516331a9108f60e11b815260048101849052909150611b76906001600160a01b03851690636352211e90602401602060405180830381865afa158015611b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b709190614541565b8261351d565b600160126000828254611b8991906144dc565b90915550829150611b9b90508161455e565b915050611ae0565b50611baf826001614430565b6013555050565b600b546001600160a01b03163314611be05760405162461bcd60e51b8152600401610451906143aa565b600c805460ff60a81b1916600160a81b179055611bfc81611cc1565b50565b600b546001600160a01b03163314611c295760405162461bcd60e51b8152600401610451906143aa565b601355565b6000611c3960085490565b8210611c9c5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610451565b60088281548110611caf57611caf6144c6565b90600052602060002001549050919050565b600b546001600160a01b03163314611ceb5760405162461bcd60e51b8152600401610451906143aa565b8051611cfe90600e906020840190613d3e565b5050565b600b546001600160a01b03163314611d2c5760405162461bcd60e51b8152600401610451906143aa565b601655565b6000818152600260205260408120546001600160a01b031680610d765760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610451565b600b546001600160a01b03163314611dd25760405162461bcd60e51b8152600401610451906143aa565b601155565b60006001600160a01b038216611e425760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610451565b506001600160a01b031660009081526003602052604090205490565b600b546001600160a01b03163314611e885760405162461bcd60e51b8152600401610451906143aa565b601980546001600160a01b039384166001600160a01b03199182161790915560188054929093169116179055565b611eea6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b600080611ef684612005565b9150915081611f175760405162461bcd60e51b81526004016104519061447f565b601c8181548110611f2a57611f2a6144c6565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b0316908201526003909101546060820152949350505050565b600b546001600160a01b03163314611fa65760405162461bcd60e51b8152600401610451906143aa565b601455565b600b546001600160a01b03163314611fd55760405162461bcd60e51b8152600401610451906143aa565b600c805460ff60a01b198116600160a01b9182900460ff1615909102179055565b606060018054610d8b9061436f565b60008060005b601c548110156120635783601c8281548110612029576120296144c6565b9060005260206000209060040201600001541461204557612051565b60019250809150612063565b8061205b8161455e565b91505061200b565b50915091565b6002600a54141561208c5760405162461bcd60e51b815260040161045190614448565b6002600a5580158015906120a257506014548111155b6120e45760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b5a5b9d08185b5bdd5b9d606a1b6044820152606401610451565b6000816120f0601d5490565b6120fa9190614430565b905060115481111561214a5760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610451565b60125460115461215a91906144dc565b8111156121a95760405162461bcd60e51b815260206004820152601d60248201527f52656d61696e696e6720746f6b656e73206172652072657365727665640000006044820152606401610451565b600c54600160a01b900460ff16156121f75760405162461bcd60e51b8152602060048201526011602482015270135a5b9d1a5b99c81a5cc81c185d5cd959607a1b6044820152606401610451565b6000826010546122079190613ded565b905080341461224d5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610451565b6122573384613537565b6000606461226683600a613ded565b6122709190613e22565b6019549091506000906001600160a01b031661228d836007613ded565b604051600081818185875af1925050503d80600081146122c9576040519150601f19603f3d011682016040523d82523d6000602084013e6122ce565b606091505b50509050806122ef5760405162461bcd60e51b815260040161045190613e36565b6000612303600b546001600160a01b031690565b6001600160a01b0316612317846003613ded565b604051600081818185875af1925050503d8060008114612353576040519150601f19603f3d011682016040523d82523d6000602084013e612358565b606091505b50509050806123795760405162461bcd60e51b815260040161045190613e81565b50506001600a5550505050565b600b546001600160a01b031633146123b05760405162461bcd60e51b8152600401610451906143aa565b600c805460ff60b01b198116600160b01b9182900460ff1615909102179055565b611cfe338383613574565b600b546001600160a01b031633146124065760405162461bcd60e51b8152600401610451906143aa565b600c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561244f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124739190614579565b90506000620186a0612486836064613ded565b6124909190613e22565b600c546019549192506001600160a01b039081169163a9059cbb91166124b88461014d613ded565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125279190614592565b50600c546018546001600160a01b039182169163a9059cbb911661254d8461014d613ded565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bc9190614592565b50600c546001600160a01b031663a9059cbb6125e0600b546001600160a01b031690565b6125ec8461014d613ded565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612637573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff9190614592565b6002600a54141561267e5760405162461bcd60e51b815260040161045190614448565b6002600a55600c54600160b01b900460ff166126f85760405162461bcd60e51b815260206004820152603360248201527f455243373231204d61726b6574706c6163653a204c697374696e6773206172656044820152720818dd5c9c995b9d1b1e48191a5cd8589b1959606a1b6064820152608401610451565b6000811161275a5760405162461bcd60e51b815260206004820152602960248201527f455243373231204d61726b6574706c6163653a20496e76616c6964206c697374604482015268696e6720707269636560b81b6064820152608401610451565b3361276483611d31565b6001600160a01b03161461278a5760405162461bcd60e51b8152600401610451906145af565b600061279583612005565b50905080156127fa5760405162461bcd60e51b815260206004820152602b60248201527f455243373231204d61726b6574706c6163653a20546f6b656e20697320616c7260448201526a1958591e481b1a5cdd195960aa1b6064820152608401610451565b6000604051806080016040528085815260200184815260200161281a3390565b6001600160a01b03908116825242602092830152601c805460018101825560009190915283517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211600490920291820155918301517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21283015560408301517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a213830180546001600160a01b0319169190921617905560608201517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a214909101559050336001600160a01b0316847fda5118e11956b6ccec7a349074d6efada2b70b987d2eabba029de60d8f67b1aa8560405161293591815260200190565b60405180910390a350506001600a555050565b6002600a54141561296b5760405162461bcd60e51b815260040161045190614448565b6002600a5560008061297c83612005565b915091508161299d5760405162461bcd60e51b81526004016104519061447f565b336001600160a01b0316601c82815481106129ba576129ba6144c6565b60009182526020909120600260049092020101546001600160a01b0316146129f45760405162461bcd60e51b8152600401610451906145af565b601c8054612a04906001906144dc565b81548110612a1457612a146144c6565b9060005260206000209060040201601c8281548110612a3557612a356144c6565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b03909216919091179055600391820154910155601c805480612a9457612a946144f3565b600082815260208120600460001990930192830201818155600181018290556002810180546001600160a01b0319169055600301819055915560405184917fd61f1a8b7be6805af2e554cc25e9395d458bbd556fa7c01c166ffbd9197347de91a250506001600a5550565b600b546001600160a01b03163314612b295760405162461bcd60e51b8152600401610451906143aa565b8051611cfe90600f906020840190613d3e565b612b46338361324c565b612b625760405162461bcd60e51b8152600401610451906143df565b612b6e848484846134ea565b50505050565b6000818152600260205260409020546060906001600160a01b0316612bf35760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610451565b600c54600160a81b900460ff16612c9657600d8054612c119061436f565b80601f0160208091040260200160405190810160405280929190818152602001828054612c3d9061436f565b8015612c8a5780601f10612c5f57610100808354040283529160200191612c8a565b820191906000526020600020905b815481529060010190602001808311612c6d57829003601f168201915b50505050509050919050565b6000612ca0613643565b90506000815111612cc05760405180602001604052806000815250612cee565b80612cca84613652565b600f604051602001612cde939291906145fa565b6040516020818303038152906040525b9392505050565b600b546001600160a01b03163314612d1f5760405162461bcd60e51b8152600401610451906143aa565b6000612d33600b546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114612d7d576040519150601f19603f3d011682016040523d82523d6000602084013e612d82565b606091505b5050905080611bfc5760405162461bcd60e51b815260040161045190614509565b600b546001600160a01b03163314612dcd5760405162461bcd60e51b8152600401610451906143aa565b601b80546001600160a01b039092166001600160a01b03199283168117909155600c8054909216179055565b600b546001600160a01b03163314612e235760405162461bcd60e51b8152600401610451906143aa565b600c5460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015612e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe9190614592565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015612f195760008481526020908190206040805160808101825260048602909201805483526001808201548486015260028201546001600160a01b0316928401929092526003015460608301529083529092019101612ebc565b50505050905090565b600b546001600160a01b03163314612f4c5760405162461bcd60e51b8152600401610451906143aa565b6001600160a01b038116612fb15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610451565b611bfc81613750565b600b546001600160a01b03163314612fe45760405162461bcd60e51b8152600401610451906143aa565b828114612ff357612ff36146be565b821580159061300157508015155b61300d5761300d6146be565b6000805b828110156130615783838281811061302b5761302b6144c6565b905060200201602081019061304091906146d4565b61304d9060ff1683614430565b9150806130598161455e565b915050613011565b506011548161306f601d5490565b6130799190614430565b11156130c35760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610451565b60005b848110156131745760008484838181106130e2576130e26144c6565b90506020020160208101906130f791906146d4565b905060005b8160ff1681101561315f57613115601d80546001019055565b6000613120601d5490565b905061314c898986818110613137576131376144c6565b9050602002016020810190611b709190614027565b50806131578161455e565b9150506130fc565b5050808061316c9061455e565b9150506130c6565b505050505050565b600b546001600160a01b031633146131a65760405162461bcd60e51b8152600401610451906143aa565b8051611cfe90600d906020840190613d3e565b60006001600160e01b0319821663780e9d6360e01b1480610d765750610d76826137a2565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061321382611d31565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166132c55760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610451565b60006132d083611d31565b9050806001600160a01b0316846001600160a01b0316148061330b5750836001600160a01b031661330084610e59565b6001600160a01b0316145b8061333b57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661335682611d31565b6001600160a01b0316146133ba5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610451565b6001600160a01b03821661341c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610451565b6134278383836137f2565b6134326000826131de565b6001600160a01b038316600090815260036020526040812080546001929061345b9084906144dc565b90915550506001600160a01b0382166000908152600360205260408120805460019290613489908490614430565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6134f5848484613343565b61350184848484613877565b612b6e5760405162461bcd60e51b8152600401610451906146f7565b611cfe828260405180602001604052806000815250613975565b60005b81811015610fff57613550601d80546001019055565b6135628361355d601d5490565b61351d565b8061356c8161455e565b91505061353a565b816001600160a01b0316836001600160a01b031614156135d65760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610451565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060600e8054610d8b9061436f565b6060816136765750506040805180820190915260018152600360fc1b602082015290565b8160005b81156136a0578061368a8161455e565b91506136999050600a83613e22565b915061367a565b60008167ffffffffffffffff8111156136bb576136bb614044565b6040519080825280601f01601f1916602001820160405280156136e5576020820181803683370190505b5090505b841561333b576136fa6001836144dc565b9150613707600a86614749565b613712906030614430565b60f81b818381518110613727576137276144c6565b60200101906001600160f81b031916908160001a905350613749600a86613e22565b94506136e9565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160e01b031982166380ac58cd60e01b14806137d357506001600160e01b03198216635b5e139f60e01b145b80610d7657506301ffc9a760e01b6001600160e01b0319831614610d76565b60006137fd82612005565b509050801561386c5760405162461bcd60e51b815260206004820152603560248201527f455243373231204d61726b6574706c6163653a20556e61626c6520746f20747260448201527430b739b332b91030903634b9ba32b2103a37b5b2b760591b6064820152608401610451565b612b6e8484846139a8565b60006001600160a01b0384163b1561396a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906138bb90339089908890889060040161475d565b6020604051808303816000875af19250505080156138f6575060408051601f3d908101601f191682019092526138f39181019061479a565b60015b613950573d808015613924576040519150601f19603f3d011682016040523d82523d6000602084013e613929565b606091505b5080516139485760405162461bcd60e51b8152600401610451906146f7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061333b565b506001949350505050565b61397f8383613a60565b61398c6000848484613877565b610fff5760405162461bcd60e51b8152600401610451906146f7565b6001600160a01b038316613a03576139fe81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b613a26565b816001600160a01b0316836001600160a01b031614613a2657613a268382613bae565b6001600160a01b038216613a3d57610fff81613c4b565b826001600160a01b0316826001600160a01b031614610fff57610fff8282613cfa565b6001600160a01b038216613ab65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610451565b6000818152600260205260409020546001600160a01b031615613b1b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610451565b613b27600083836137f2565b6001600160a01b0382166000908152600360205260408120805460019290613b50908490614430565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001613bbb84611dd7565b613bc591906144dc565b600083815260076020526040902054909150808214613c18576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090613c5d906001906144dc565b60008381526009602052604081205460088054939450909284908110613c8557613c856144c6565b906000526020600020015490508060088381548110613ca657613ca66144c6565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613cde57613cde6144f3565b6001900381819060005260206000200160009055905550505050565b6000613d0583611dd7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b828054613d4a9061436f565b90600052602060002090601f016020900481019282613d6c5760008555613db2565b82601f10613d8557805160ff1916838001178555613db2565b82800160010185558215613db2579182015b82811115613db2578251825591602001919060010190613d97565b50613dbe929150613dc2565b5090565b5b80821115613dbe5760008155600101613dc3565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613e0757613e07613dd7565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613e3157613e31613e0c565b500490565b6020808252603f908201526000805160206147b883398151915260408201527f736665722066756e647320746f20636f6d6d756e6974792077616c6c65742100606082015260800190565b6020808252603b908201526000805160206147b883398151915260408201527f736665722066756e647320746f206f776e65722077616c6c6574210000000000606082015260800190565b6001600160e01b031981168114611bfc57600080fd5b600060208284031215613ef457600080fd5b8135612cee81613ecc565b60005b83811015613f1a578181015183820152602001613f02565b83811115612b6e5750506000910152565b60008151808452613f43816020860160208601613eff565b601f01601f19169290920160200192915050565b602081526000612cee6020830184613f2b565b600060208284031215613f7c57600080fd5b5035919050565b6001600160a01b0381168114611bfc57600080fd5b60008060408385031215613fab57600080fd5b8235613fb681613f83565b946020939093013593505050565b600080600060608486031215613fd957600080fd5b8335613fe481613f83565b92506020840135613ff481613f83565b929592945050506040919091013590565b6000806040838503121561401857600080fd5b50508035926020909101359150565b60006020828403121561403957600080fd5b8135612cee81613f83565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561407557614075614044565b604051601f8501601f19908116603f0116810190828211818310171561409d5761409d614044565b816040528093508581528686860111156140b657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156140e257600080fd5b813567ffffffffffffffff8111156140f957600080fd5b8201601f8101841361410a57600080fd5b61333b8482356020840161405a565b6000806040838503121561412c57600080fd5b823561413781613f83565b9150602083013561414781613f83565b809150509250929050565b81518152602080830151908201526040808301516001600160a01b0316908201526060808301519082015260808101610d76565b8015158114611bfc57600080fd5b600080604083850312156141a757600080fd5b82356141b281613f83565b9150602083013561414781614186565b600080600080608085870312156141d857600080fd5b84356141e381613f83565b935060208501356141f381613f83565b925060408501359150606085013567ffffffffffffffff81111561421657600080fd5b8501601f8101871361422757600080fd5b6142368782356020840161405a565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156142ab5761429883855180518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b928401926080929092019160010161425e565b50909695505050505050565b60008083601f8401126142c957600080fd5b50813567ffffffffffffffff8111156142e157600080fd5b6020830191508360208260051b85010111156142fc57600080fd5b9250929050565b6000806000806040858703121561431957600080fd5b843567ffffffffffffffff8082111561433157600080fd5b61433d888389016142b7565b9096509450602087013591508082111561435657600080fd5b50614363878288016142b7565b95989497509550505050565b600181811c9082168061438357607f821691505b602082108114156143a457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000821982111561444357614443613dd7565b500190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526027908201527f455243373231204d61726b6574706c6163653a20546f6b656e206973206e6f74604082015266081b1a5cdd195960ca1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000828210156144ee576144ee613dd7565b500390565b634e487b7160e01b600052603160045260246000fd5b6020808252602a908201526000805160206147b8833981519152604082015269736665722066756e647360b01b606082015260800190565b60006020828403121561455357600080fd5b8151612cee81613f83565b600060001982141561457257614572613dd7565b5060010190565b60006020828403121561458b57600080fd5b5051919050565b6000602082840312156145a457600080fd5b8151612cee81614186565b6020808252602b908201527f455243373231204d61726b6574706c6163653a2043616c6c6572206973206e6f60408201526a3a103a34329037bbb732b960a91b606082015260800190565b60008451602061460d8285838a01613eff565b8551918401916146208184848a01613eff565b8554920191600090600181811c908083168061463d57607f831692505b85831081141561465b57634e487b7160e01b85526022600452602485fd5b80801561466f5760018114614680576146ad565b60ff198516885283880195506146ad565b60008b81526020902060005b858110156146a55781548a82015290840190880161468c565b505083880195505b50939b9a5050505050505050505050565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156146e657600080fd5b813560ff81168114612cee57600080fd5b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261475857614758613e0c565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061479090830184613f2b565b9695505050505050565b6000602082840312156147ac57600080fd5b8151612cee81613ecc56fe41564158205472616e73616374696f6e3a204661696c656420746f207472616ea26469706673582212209f51732b1575d3bfab0388f7758c4c4d015388e854f723860a9dc78b4ed32af864736f6c634300080b00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e56e66a91881a873e8e7bb4c6aafa26a7ce91c8b0000000000000000000000004057f6d0c49358b88a318dcb230f7d3140fa78de000000000000000000000000000000000000000000000000000000000000002e516d5159587338424a526f7976706d515937795861705335625970577a695470566b66484b447751727a73326634000000000000000000000000000000000000

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

0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e56e66a91881a873e8e7bb4c6aafa26a7ce91c8b0000000000000000000000004057f6d0c49358b88a318dcb230f7d3140fa78de000000000000000000000000000000000000000000000000000000000000002e516d5159587338424a526f7976706d515937795861705335625970577a695470566b66484b447751727a73326634000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _initUnrevealedURI (string): QmQYXs8BJRoyvpmQY7yXapS5bYpWziTpVkfHKDwQrzs2f4
Arg [1] : _initArtistAddress (address): 0xe56e66a91881a873e8e7bb4c6aafa26a7ce91c8b
Arg [2] : _initCommunityAddress (address): 0x4057f6d0c49358b88a318dcb230f7d3140fa78de

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 000000000000000000000000e56e66a91881a873e8e7bb4c6aafa26a7ce91c8b
Arg [2] : 0000000000000000000000004057f6d0c49358b88a318dcb230f7d3140fa78de
Arg [3] : 000000000000000000000000000000000000000000000000000000000000002e
Arg [4] : 516d5159587338424a526f7976706d515937795861705335625970577a695470
Arg [5] : 566b66484b447751727a73326634000000000000000000000000000000000000


Deployed ByteCode Sourcemap

20222:12504:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32167:16;32204:6;32186:15;:9;32198:3;32186:15;:::i;:::-;:24;;;;:::i;:::-;32245:16;;32167:43;;-1:-1:-1;32218:13:0;;-1:-1:-1;;;;;32245:16:0;32276:14;32167:43;32287:3;32276:14;:::i;:::-;32237:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32217:79;;;32309:8;32301:84;;;;-1:-1:-1;;;32301:84:0;;;;;;;:::i;:::-;;;;;;;;;32420:13;;32393;;-1:-1:-1;;;;;32420:13:0;32448:14;:8;32459:3;32448:14;:::i;:::-;32412:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32392:76;;;32481:8;32473:81;;;;-1:-1:-1;;;32473:81:0;;1420:2:1;32473:81:0;;;1402:21:1;1459:2;1439:18;;;1432:30;-1:-1:-1;;;;;;;;;;;1478:18:1;;;1471:62;1569:30;1549:18;;;1542:58;1617:19;;32473:81:0;1218:424:1;32473:81:0;32562:13;32589:7;4170:6;;-1:-1:-1;;;;;4170:6:0;;4104:77;32589:7;-1:-1:-1;;;;;32581:21:0;32611:14;:8;32622:3;32611:14;:::i;:::-;32581:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32561:70;;;32644:8;32636:80;;;;-1:-1:-1;;;32636:80:0;;;;;;;:::i;:::-;32158:565;;;;20222:12504;;;;;22201:189;;;;;;;;;;-1:-1:-1;22201:189:0;;;;;:::i;:::-;;:::i;:::-;;;2626:14:1;;2619:22;2601:41;;2589:2;2574:18;22201:189:0;;;;;;;;6448:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;24662:146::-;;;;;;;;;;;;;:::i;:::-;;7402:205;;;;;;;;;;-1:-1:-1;7402:205:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3753:32:1;;;3735:51;;3723:2;3708:18;7402:205:0;3589:203:1;7050:347:0;;;;;;;;;;-1:-1:-1;7050:347:0;;;;;:::i;:::-;;:::i;20600:19::-;;;;;;;;;;;;;;;;;;;4399:25:1;;;4387:2;4372:18;20600:19:0;4253:177:1;14712:113:0;;;;;;;;;;-1:-1:-1;14800:10:0;:17;14712:113;;30241:95;;;;;;;;;;-1:-1:-1;30241:95:0;;;;;:::i;:::-;;:::i;29945:99::-;;;;;;;;;;-1:-1:-1;29945:99:0;;;;;:::i;:::-;;:::i;7922:284::-;;;;;;;;;;-1:-1:-1;7922:284:0;;;;;:::i;:::-;;:::i;25616:239::-;;;;;;;;;;-1:-1:-1;25616:239:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5341:32:1;;;5323:51;;5405:2;5390:18;;5383:34;;;;5296:18;25616:239:0;5149:274:1;30439:87:0;;;;;;;;;;-1:-1:-1;30439:87:0;;;;;:::i;:::-;;:::i;20718:33::-;;;;;;;;;;;;;;;;14380:256;;;;;;;;;;-1:-1:-1;14380:256:0;;;;;:::i;:::-;;:::i;20684:28::-;;;;;;;;;;;;;;;;26897:1634;;;;;;:::i;:::-;;:::i;24935:462::-;;;;;;;;;;;;;:::i;8211:142::-;;;;;;;;;;-1:-1:-1;8211:142:0;;;;;:::i;:::-;;:::i;30161:75::-;;;;;;;;;;-1:-1:-1;30161:75:0;;;;;:::i;:::-;;:::i;20651:29::-;;;;;;;;;;;;;;;;30831:84;;;;;;;;;;-1:-1:-1;30831:84:0;;;;;:::i;:::-;;:::i;23982:502::-;;;;;;;;;;-1:-1:-1;23982:502:0;;;;;:::i;:::-;;:::i;24813:117::-;;;;;;;;;;-1:-1:-1;24813:117:0;;;;;:::i;:::-;;:::i;30534:97::-;;;;;;;;;;-1:-1:-1;30534:97:0;;;;;:::i;:::-;;:::i;14902:233::-;;;;;;;;;;-1:-1:-1;14902:233:0;;;;;:::i;:::-;;:::i;20461:45::-;;;;;;;;;;-1:-1:-1;20461:45:0;;;;-1:-1:-1;;;20461:45:0;;;;;;20408:20;;;;;;;;;;-1:-1:-1;20408:20:0;;;;-1:-1:-1;;;20408:20:0;;;;;;29531:93;;;;;;;;;;-1:-1:-1;29531:93:0;;;;;:::i;:::-;;:::i;30341:::-;;;;;;;;;;-1:-1:-1;30341:93:0;;;;;:::i;:::-;;:::i;20386:18::-;;;;;;;;;;-1:-1:-1;20386:18:0;;;;-1:-1:-1;;;20386:18:0;;;;;;6222:221;;;;;;;;;;-1:-1:-1;6222:221:0;;;;;:::i;:::-;;:::i;29851:89::-;;;;;;;;;;-1:-1:-1;29851:89:0;;;;;:::i;:::-;;:::i;6023:194::-;;;;;;;;;;-1:-1:-1;6023:194:0;;;;;:::i;:::-;;:::i;30636:187::-;;;;;;;;;;-1:-1:-1;30636:187:0;;;;;:::i;:::-;;:::i;28884:255::-;;;;;;;;;;-1:-1:-1;28884:255:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4104:77::-;;;;;;;;;;-1:-1:-1;4170:6:0;;-1:-1:-1;;;;;4170:6:0;4104:77;;30049:107;;;;;;;;;;-1:-1:-1;30049:107:0;;;;;:::i;:::-;;:::i;24491:70::-;;;;;;;;;;;;;:::i;6543:94::-;;;;;;;;;;;;;:::i;28536:252::-;;;;;;;;;;-1:-1:-1;28536:252:0;;;;;:::i;:::-;;:::i;:::-;;;;8034:14:1;;8027:22;8009:41;;8081:2;8066:18;;8059:34;;;;7982:18;28536:252:0;7841:258:1;22397:935:0;;;;;;:::i;:::-;;:::i;20432:25::-;;;;;;;;;;-1:-1:-1;20432:25:0;;;;-1:-1:-1;;;20432:25:0;;;;;;24566:91;;;;;;;;;;;;;:::i;7612:146::-;;;;;;;;;;-1:-1:-1;7612:146:0;;;;;:::i;:::-;;:::i;31757:369::-;;;;;;;;;;;;;:::i;25860:603::-;;;;;;;;;;-1:-1:-1;25860:603:0;;;;;:::i;:::-;;:::i;26468:424::-;;;;;;;;;;-1:-1:-1;26468:424:0;;;;;:::i;:::-;;:::i;29751:95::-;;;;;;;;;;-1:-1:-1;29751:95:0;;;;;:::i;:::-;;:::i;8358:272::-;;;;;;;;;;-1:-1:-1;8358:272:0;;;;;:::i;:::-;;:::i;29144:382::-;;;;;;;;;;-1:-1:-1;29144:382:0;;;;;:::i;:::-;;:::i;20623:24::-;;;;;;;;;;;;;;;;25402:209;;;:::i;30920:128::-;;;;;;;;;;-1:-1:-1;30920:128:0;;;;;:::i;:::-;;:::i;20816:28::-;;;;;;;;;;;;;;;;20785:27;;;;;;;;;;;;;;;;31626:126;;;;;;;;;;-1:-1:-1;31626:126:0;;;;;:::i;:::-;;:::i;7763:154::-;;;;;;;;;;-1:-1:-1;7763:154:0;;;;;:::i;:::-;-1:-1:-1;;;;;7877:25:0;;;7859:4;7877:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;7763:154;20757:24;;;;;;;;;;;;;;;;28793:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4298:188::-;;;;;;;;;;-1:-1:-1;4298:188:0;;;;;:::i;:::-;;:::i;23337:640::-;;;;;;;;;;-1:-1:-1;23337:640:0;;;;;:::i;:::-;;:::i;29629:117::-;;;;;;;;;;-1:-1:-1;29629:117:0;;;;;:::i;:::-;;:::i;22201:189::-;22277:4;-1:-1:-1;;;;;;22295:50:0;;-1:-1:-1;;;22295:50:0;;:90;;;22349:36;22373:11;22349:23;:36::i;:::-;22288:97;22201:189;-1:-1:-1;;22201:189:0:o;6448:90::-;6501:13;6528:5;6521:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6448:90;:::o;24662:146::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24770:33:::1;::::0;;-1:-1:-1;;;;24733:70:0;::::1;-1:-1:-1::0;;;24770:33:0;;;::::1;;;24769:34;24733:70:::0;;::::1;;::::0;;24662:146::o;7402:205::-;7477:7;8981:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8981:16:0;7491:73;;;;-1:-1:-1;;;7491:73:0;;12218:2:1;7491:73:0;;;12200:21:1;12257:2;12237:18;;;12230:30;12296:34;12276:18;;;12269:62;-1:-1:-1;;;12347:18:1;;;12340:42;12399:19;;7491:73:0;12016:408:1;7491:73:0;-1:-1:-1;7578:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;7578:24:0;;7402:205::o;7050:347::-;7125:13;7141:23;7156:7;7141:14;:23::i;:::-;7125:39;;7183:5;-1:-1:-1;;;;;7177:11:0;:2;-1:-1:-1;;;;;7177:11:0;;;7169:57;;;;-1:-1:-1;;;7169:57:0;;12631:2:1;7169:57:0;;;12613:21:1;12670:2;12650:18;;;12643:30;12709:34;12689:18;;;12682:62;-1:-1:-1;;;12760:18:1;;;12753:31;12801:19;;7169:57:0;12429:397:1;7169:57:0;3763:10;-1:-1:-1;;;;;7241:21:0;;;;:62;;-1:-1:-1;7266:37:0;7283:5;3763:10;7763:154;:::i;7266:37::-;7233:131;;;;-1:-1:-1;;;7233:131:0;;13033:2:1;7233:131:0;;;13015:21:1;13072:2;13052:18;;;13045:30;13111:34;13091:18;;;13084:62;13182:26;13162:18;;;13155:54;13226:19;;7233:131:0;12831:420:1;7233:131:0;7371:21;7380:2;7384:7;7371:8;:21::i;:::-;7120:277;7050:347;;:::o;30241:95::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30307:13:::1;:24:::0;30241:95::o;29945:99::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30013:14:::1;:26:::0;29945:99::o;7922:284::-;8071:41;3763:10;8104:7;8071:18;:41::i;:::-;8063:103;;;;-1:-1:-1;;;8063:103:0;;;;;;;:::i;:::-;8173:28;8183:4;8189:2;8193:7;8173:9;:28::i;25616:239::-;25683:16;25701:21;25748:4;25729:24;;21199:5;25812:13;;25797:12;;25785:9;;:24;;;;:::i;:::-;:40;;;;:::i;:::-;25776:50;;:5;:50;:::i;:::-;:74;;;;:::i;:::-;25760:90;;25616:239;;;;;:::o;30439:87::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30501:9:::1;:20:::0;30439:87::o;14380:256::-;14477:7;14513:23;14530:5;14513:16;:23::i;:::-;14505:5;:31;14497:87;;;;-1:-1:-1;;;14497:87:0;;14009:2:1;14497:87:0;;;13991:21:1;14048:2;14028:18;;;14021:30;14087:34;14067:18;;;14060:62;-1:-1:-1;;;14138:18:1;;;14131:41;14189:19;;14497:87:0;13807:407:1;14497:87:0;-1:-1:-1;;;;;;14602:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;14380:256::o;26897:1634::-;4791:1;4917:7;;:19;;4909:63;;;;-1:-1:-1;;;4909:63:0;;;;;;;:::i;:::-;4791:1;4979:7;:18;26972:13:::1;::::0;27011:22:::1;27025:7:::0;27011:13:::1;:22::i;:::-;26971:62;;;;27046:8;27038:60;;;;-1:-1:-1::0;;;27038:60:0::1;;;;;;;:::i;:::-;27105:22;27130:8;27139:12;27130:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;27105:47:::1;::::0;;::::1;::::0;::::1;::::0;;27130:22:::1;::::0;;::::1;::::0;;::::1;27105:47:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;27105:47:0::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;27185:12:0::1;3763:10:::0;;3690:88;27185:12:::1;-1:-1:-1::0;;;;;27167:30:0::1;:7;:14;;;-1:-1:-1::0;;;;;27167:30:0::1;;;27159:110;;;::::0;-1:-1:-1;;;27159:110:0;;15321:2:1;27159:110:0::1;::::0;::::1;15303:21:1::0;15360:2;15340:18;;;15333:30;15399:34;15379:18;;;15372:62;15470:34;15450:18;;;15443:62;-1:-1:-1;;;15521:19:1;;;15514:34;15565:19;;27159:110:0::1;15119:471:1::0;27159:110:0::1;27295:7;:13;;;27282:9;:26;;27274:77;;;::::0;-1:-1:-1;;;27274:77:0;;15797:2:1;27274:77:0::1;::::0;::::1;15779:21:1::0;15836:2;15816:18;;;15809:30;15875:34;15855:18;;;15848:62;-1:-1:-1;;;15926:18:1;;;15919:36;15972:19;;27274:77:0::1;15595:402:1::0;27274:77:0::1;27358:22;21199:5;27395:9;;27383;:21;;;;:::i;:::-;:45;;;;:::i;:::-;27358:70;;27439:25;21199:5;27479:13;;27467:9;:25;;;;:::i;:::-;:49;;;;:::i;:::-;27439:77;;27521:24;21199:5;27560:12;;27548:9;:24;;;;:::i;:::-;:48;;;;:::i;:::-;27628:8;27637:15:::0;;27521:75;;-1:-1:-1;27628:8:0;27637:19:::1;::::0;27655:1:::1;::::0;27637:19:::1;:::i;:::-;27628:29;;;;;;;;:::i;:::-;;;;;;;;;;;27603:8;27612:12;27603:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:54;;:22:::1;::::0;;::::1;;:54:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;27603:54:0::1;-1:-1:-1::0;;;;;27603:54:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;27662:8:::1;:14:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;27662:14:0;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;27662:14:0::1;::::0;;::::1;;::::0;;;27723:12:::1;3763:10:::0;;3690:88;27723:12:::1;-1:-1:-1::0;;;;;27688:59:0::1;27707:7;:14;;;-1:-1:-1::0;;;;;27688:59:0::1;27698:7;27688:59;27737:9;27688:59;;;;4399:25:1::0;;4387:2;4372:18;;4253:177;27688:59:0::1;;;;;;;;27754:56;27768:7;:14;;;27784:12;3763:10:::0;;3690:88;27784:12:::1;27798:7;27754:56;;;;;;;;;;;::::0;:13:::1;:56::i;:::-;27845:14;::::0;::::1;::::0;27818:13:::1;::::0;-1:-1:-1;;;;;27837:28:0::1;27923:17:::0;27887:33:::1;27904:16:::0;27887:14;:33:::1;:::i;:::-;:53;;;;:::i;:::-;27874:67;::::0;:9:::1;:67;:::i;:::-;27837:110;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27817:130;;;27960:8;27952:63;;;;-1:-1:-1::0;;;27952:63:0::1;;;;;;;:::i;:::-;28050:16;::::0;28042:61:::1;::::0;28023:13:::1;::::0;-1:-1:-1;;;;;28050:16:0::1;::::0;28081;;28023:13;28042:61;28023:13;28042:61;28081:16;28050;28042:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28022:81;;;28116:8;28108:84;;;::::0;-1:-1:-1;;;28108:84:0;;16877:2:1;28108:84:0::1;::::0;::::1;16859:21:1::0;16916:2;16896:18;;;16889:30;-1:-1:-1;;;;;;;;;;;16935:18:1;;;16928:62;17026:33;17006:18;;;16999:61;17077:19;;28108:84:0::1;16675:427:1::0;28108:84:0::1;28227:13;::::0;28219:59:::1;::::0;28200:13:::1;::::0;-1:-1:-1;;;;;28227:13:0::1;::::0;28255:17;;28200:13;28219:59;28200:13;28219:59;28255:17;28227:13;28219:59:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28199:79;;;28291:8;28283:81;;;::::0;-1:-1:-1;;;28283:81:0;;17309:2:1;28283:81:0::1;::::0;::::1;17291:21:1::0;17348:2;17328:18;;;17321:30;-1:-1:-1;;;;;;;;;;;17367:18:1;;;17360:62;17458:30;17438:18;;;17431:58;17506:19;;28283:81:0::1;17107:424:1::0;28283:81:0::1;28372:13;28399:7;4170:6:::0;;-1:-1:-1;;;;;4170:6:0;;4104:77;28399:7:::1;-1:-1:-1::0;;;;;28391:21:0::1;28421:14;28391:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28371:70;;;28454:8;28446:80;;;::::0;-1:-1:-1;;;28446:80:0;;17738:2:1;28446:80:0::1;::::0;::::1;17720:21:1::0;17777:2;17757:18;;;17750:30;-1:-1:-1;;;;;;;;;;;17796:18:1;;;17789:62;17887:29;17867:18;;;17860:57;17934:19;;28446:80:0::1;17536:423:1::0;28446:80:0::1;-1:-1:-1::0;;4750:1:0;5012:7;:22;-1:-1:-1;;;;;;;;;26897:1634:0:o;24935:462::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24977:25:::1;25034:3;25005:26;:21;25029:2;25005:26;:::i;:::-;:32;;;;:::i;:::-;25072:16;::::0;24977:60;;-1:-1:-1;25045:13:0::1;::::0;-1:-1:-1;;;;;25072:16:0::1;25103:21;24977:60:::0;25123:1:::1;25103:21;:::i;:::-;25064:66;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25044:86;;;25143:8;25135:84;;;;-1:-1:-1::0;;;25135:84:0::1;;;;;;;:::i;:::-;25227:13;25254:7;4170:6:::0;;-1:-1:-1;;;;;4170:6:0;;4104:77;25254:7:::1;-1:-1:-1::0;;;;;25246:21:0::1;25276;25246:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25226:77;;;25316:8;25308:84;;;::::0;-1:-1:-1;;;25308:84:0;;18166:2:1;25308:84:0::1;::::0;::::1;18148:21:1::0;18205:2;18185:18;;;18178:30;-1:-1:-1;;;;;;;;;;;18224:18:1;;;18217:62;18315:33;18295:18;;;18288:61;18366:19;;25308:84:0::1;17964:427:1::0;8211:142:0;8309:39;8326:4;8332:2;8336:7;8309:39;;;;;;;;;;;;:16;:39::i;30161:75::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30217:4:::1;:14:::0;30161:75::o;30831:84::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30892:6:::1;:18:::0;;-1:-1:-1;;;;;;30892:18:0::1;-1:-1:-1::0;;;;;30892:18:0;;;::::1;::::0;;;::::1;::::0;;30831:84::o;23982:502::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24073:10:::1;24056:13;;:27;;24048:65;;;::::0;-1:-1:-1;;;24048:65:0;;18598:2:1;24048:65:0::1;::::0;::::1;18580:21:1::0;18637:2;18617:18;;;18610:30;18676:27;18656:18;;;18649:55;18721:18;;24048:65:0::1;18396:349:1::0;24048:65:0::1;24140:4;24126:10;:18;;24118:63;;;::::0;-1:-1:-1;;;24118:63:0;;18952:2:1;24118:63:0::1;::::0;::::1;18934:21:1::0;;;18971:18;;;18964:30;19030:34;19010:18;;;19003:62;19082:18;;24118:63:0::1;18750:356:1::0;24118:63:0::1;24217:6;::::0;24248:13:::1;::::0;-1:-1:-1;;;;;24217:6:0;;::::1;::::0;24231:206:::1;24268:10;24263:1;:15;24231:206;;24293:18;:6;934:19:::0;;952:1;934:19;;;860:103;24293:18:::1;24319:15;24337:16;:6;836:14:::0;;751:104;24337:16:::1;24371:21;::::0;-1:-1:-1;;;24371:21:0;;::::1;::::0;::::1;4399:25:1::0;;;24319:34:0;;-1:-1:-1;24361:41:0::1;::::0;-1:-1:-1;;;;;24371:18:0;::::1;::::0;::::1;::::0;4372::1;;24371:21:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24394:7;24361:9;:41::i;:::-;24428:1;24410:14;;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;24280:3:0;;-1:-1:-1;24280:3:0::1;::::0;-1:-1:-1;24280:3:0;::::1;:::i;:::-;;;;24231:206;;;-1:-1:-1::0;24465:14:0::1;:10:::0;24478:1:::1;24465:14;:::i;:::-;24449:13;:30:::0;-1:-1:-1;;23982:502:0:o;24813:117::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24879:8:::1;:15:::0;;-1:-1:-1;;;;24879:15:0::1;-1:-1:-1::0;;;24879:15:0::1;::::0;;24901:24:::1;24912:12:::0;24901:10:::1;:24::i;:::-;24813:117:::0;:::o;30534:97::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30601:13:::1;:25:::0;30534:97::o;14902:233::-;14977:7;15013:30;14800:10;:17;;14712:113;15013:30;15005:5;:38;14997:95;;;;-1:-1:-1;;;14997:95:0;;19709:2:1;14997:95:0;;;19691:21:1;19748:2;19728:18;;;19721:30;19787:34;19767:18;;;19760:62;-1:-1:-1;;;19838:18:1;;;19831:42;19890:19;;14997:95:0;19507:408:1;14997:95:0;15110:10;15121:5;15110:17;;;;;;;;:::i;:::-;;;;;;;;;15103:24;;14902:233;;;:::o;29531:93::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;29599:20;;::::1;::::0;:7:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;;29531:93:::0;:::o;30341:::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30406:12:::1;:23:::0;30341:93::o;6222:221::-;6293:7;6323:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6323:16:0;6354:19;6346:73;;;;-1:-1:-1;;;6346:73:0;;20122:2:1;6346:73:0;;;20104:21:1;20161:2;20141:18;;;20134:30;20200:34;20180:18;;;20173:62;-1:-1:-1;;;20251:18:1;;;20244:39;20300:19;;6346:73:0;19920:405:1;29851:89:0;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;29914:9:::1;:21:::0;29851:89::o;6023:194::-;6094:7;-1:-1:-1;;;;;6116:19:0;;6108:74;;;;-1:-1:-1;;;6108:74:0;;20532:2:1;6108:74:0;;;20514:21:1;20571:2;20551:18;;;20544:30;20610:34;20590:18;;;20583:62;-1:-1:-1;;;20661:18:1;;;20654:40;20711:19;;6108:74:0;20330:406:1;6108:74:0;-1:-1:-1;;;;;;6196:16:0;;;;;:9;:16;;;;;;;6023:194::o;30636:187::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30743:16:::1;:38:::0;;-1:-1:-1;;;;;30743:38:0;;::::1;-1:-1:-1::0;;;;;;30743:38:0;;::::1;;::::0;;;30786:13:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;30636:187::o;28884:255::-;28950:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28950:14:0;28972:13;28987:20;29011:22;29025:7;29011:13;:22::i;:::-;28971:62;;;;29046:8;29038:60;;;;-1:-1:-1;;;29038:60:0;;;;;;;:::i;:::-;29112:8;29121:12;29112:22;;;;;;;;:::i;:::-;;;;;;;;;;29105:29;;;;;;;;29112:22;;;;;;;29105:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29105:29:0;;;;;;;;;;;;;;;28884:255;-1:-1:-1;;;;28884:255:0:o;30049:107::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30121:18:::1;:30:::0;30049:107::o;24491:70::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24550:6:::1;::::0;;-1:-1:-1;;;;24540:16:0;::::1;-1:-1:-1::0;;;24550:6:0;;;::::1;;;24549:7;24540:16:::0;;::::1;;::::0;;24491:70::o;6543:94::-;6598:13;6625:7;6618:14;;;;;:::i;28536:252::-;28596:13;28611;28636:9;28631:153;28655:8;:15;28651:19;;28631:153;;;28710:7;28687:8;28696:1;28687:11;;;;;;;;:::i;:::-;;;;;;;;;;;:19;;;:30;28683:44;;28719:8;;28683:44;28746:4;28735:15;;28764:1;28756:9;;28773:5;;28631:153;28672:3;;;;:::i;:::-;;;;28631:153;;;;28536:252;;;:::o;22397:935::-;4791:1;4917:7;;:19;;4909:63;;;;-1:-1:-1;;;4909:63:0;;;;;;;:::i;:::-;4791:1;4979:7;:18;22468:10;;;;;:42:::1;;;22492:18;;22482:6;:28;;22468:42;22460:74;;;::::0;-1:-1:-1;;;22460:74:0;;20943:2:1;22460:74:0::1;::::0;::::1;20925:21:1::0;20982:2;20962:18;;;20955:30;-1:-1:-1;;;21001:18:1;;;20994:49;21060:18;;22460:74:0::1;20741:343:1::0;22460:74:0::1;22541:17;22580:6;22561:16;:6;836:14:::0;;751:104;22561:16:::1;:25;;;;:::i;:::-;22541:45;;22614:9;;22601;:22;;22593:60;;;::::0;-1:-1:-1;;;22593:60:0;;21291:2:1;22593:60:0::1;::::0;::::1;21273:21:1::0;21330:2;21310:18;;;21303:30;-1:-1:-1;;;21349:18:1;;;21342:55;21414:18;;22593:60:0::1;21089:349:1::0;22593:60:0::1;22691:14;;22679:9;;:26;;;;:::i;:::-;22666:9;:39;;22658:81;;;::::0;-1:-1:-1;;;22658:81:0;;21645:2:1;22658:81:0::1;::::0;::::1;21627:21:1::0;21684:2;21664:18;;;21657:30;21723:31;21703:18;;;21696:59;21772:18;;22658:81:0::1;21443:353:1::0;22658:81:0::1;22755:6;::::0;-1:-1:-1;;;22755:6:0;::::1;;;22754:7;22746:37;;;::::0;-1:-1:-1;;;22746:37:0;;22003:2:1;22746:37:0::1;::::0;::::1;21985:21:1::0;22042:2;22022:18;;;22015:30;-1:-1:-1;;;22061:18:1;;;22054:47;22118:18;;22746:37:0::1;21801:341:1::0;22746:37:0::1;22790:16;22816:6;22809:4;;:13;;;;:::i;:::-;22790:32;;22848:8;22835:9;:21;22827:52;;;::::0;-1:-1:-1;;;22827:52:0;;22349:2:1;22827:52:0::1;::::0;::::1;22331:21:1::0;22388:2;22368:18;;;22361:30;-1:-1:-1;;;22407:18:1;;;22400:48;22465:18;;22827:52:0::1;22147:342:1::0;22827:52:0::1;22886:31;3763:10:::0;22910:6:::1;22886:9;:31::i;:::-;22924:26;22969:3;22953:13;:8:::0;22964:2:::1;22953:13;:::i;:::-;:19;;;;:::i;:::-;23007:16;::::0;22924:48;;-1:-1:-1;22980:13:0::1;::::0;-1:-1:-1;;;;;23007:16:0::1;23038:22;22924:48:::0;23059:1:::1;23038:22;:::i;:::-;22999:67;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22979:87;;;23079:8;23071:84;;;;-1:-1:-1::0;;;23071:84:0::1;;;;;;;:::i;:::-;23163:13;23190:7;4170:6:::0;;-1:-1:-1;;;;;4170:6:0;;4104:77;23190:7:::1;-1:-1:-1::0;;;;;23182:21:0::1;23212:22;:18:::0;23233:1:::1;23212:22;:::i;:::-;23182:58;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23162:78;;;23253:8;23245:80;;;;-1:-1:-1::0;;;23245:80:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;4750:1:0;5012:7;:22;-1:-1:-1;;;;22397:935:0:o;24566:91::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;24639:13:::1;::::0;;-1:-1:-1;;;;24622:30:0;::::1;-1:-1:-1::0;;;24639:13:0;;;::::1;;;24638:14;24622:30:::0;;::::1;;::::0;;24566:91::o;7612:146::-;7701:52;3763:10;7734:8;7744;7701:18;:52::i;31757:369::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;31823:13:::1;::::0;:38:::1;::::0;-1:-1:-1;;;31823:38:0;;31855:4:::1;31823:38;::::0;::::1;3735:51:1::0;31805:15:0::1;::::0;-1:-1:-1;;;;;31823:13:0::1;::::0;:23:::1;::::0;3708:18:1;;31823:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31805:56:::0;-1:-1:-1;31866:24:0::1;31909:6;31893:13;31805:56:::0;31903:3:::1;31893:13;:::i;:::-;:22;;;;:::i;:::-;31928:13;::::0;31951:16:::1;::::0;31866:49;;-1:-1:-1;;;;;;31928:13:0;;::::1;::::0;:22:::1;::::0;31951:16:::1;31969:22;31866:49:::0;31988:3:::1;31969:22;:::i;:::-;31928:64;::::0;-1:-1:-1;;;;;;31928:64:0::1;::::0;;;;;;-1:-1:-1;;;;;5341:32:1;;;31928:64:0::1;::::0;::::1;5323:51:1::0;5390:18;;;5383:34;5296:18;;31928:64:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;31997:13:0::1;::::0;32020::::1;::::0;-1:-1:-1;;;;;31997:13:0;;::::1;::::0;:22:::1;::::0;32020:13:::1;32035:22;:16:::0;32054:3:::1;32035:22;:::i;:::-;31997:61;::::0;-1:-1:-1;;;;;;31997:61:0::1;::::0;;;;;;-1:-1:-1;;;;;5341:32:1;;;31997:61:0::1;::::0;::::1;5323:51:1::0;5390:18;;;5383:34;5296:18;;31997:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;32063:13:0::1;::::0;-1:-1:-1;;;;;32063:13:0::1;:22;32086:7;4170:6:::0;;-1:-1:-1;;;;;4170:6:0;;4104:77;32086:7:::1;32095:22;:16:::0;32114:3:::1;32095:22;:::i;:::-;32063:55;::::0;-1:-1:-1;;;;;;32063:55:0::1;::::0;;;;;;-1:-1:-1;;;;;5341:32:1;;;32063:55:0::1;::::0;::::1;5323:51:1::0;5390:18;;;5383:34;5296:18;;32063:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25860:603::-:0;4791:1;4917:7;;:19;;4909:63;;;;-1:-1:-1;;;4909:63:0;;;;;;;:::i;:::-;4791:1;4979:7;:18;25948:13:::1;::::0;-1:-1:-1;;;25948:13:0;::::1;;;25940:77;;;::::0;-1:-1:-1;;;25940:77:0;;23135:2:1;25940:77:0::1;::::0;::::1;23117:21:1::0;23174:2;23154:18;;;23147:30;23213:34;23193:18;;;23186:62;-1:-1:-1;;;23264:18:1;;;23257:49;23323:19;;25940:77:0::1;22933:415:1::0;25940:77:0::1;26038:1;26030:5;:9;26022:63;;;::::0;-1:-1:-1;;;26022:63:0;;23555:2:1;26022:63:0::1;::::0;::::1;23537:21:1::0;23594:2;23574:18;;;23567:30;23633:34;23613:18;;;23606:62;-1:-1:-1;;;23684:18:1;;;23677:39;23733:19;;26022:63:0::1;23353:405:1::0;26022:63:0::1;3763:10:::0;26098:16:::1;26106:7:::0;26098::::1;:16::i;:::-;-1:-1:-1::0;;;;;26098:32:0::1;;26090:88;;;;-1:-1:-1::0;;;26090:88:0::1;;;;;;;:::i;:::-;26186:13;26205:22;26219:7;26205:13;:22::i;:::-;26185:42;;;26241:8;26240:9;26232:65;;;::::0;-1:-1:-1;;;26232:65:0;;24377:2:1;26232:65:0::1;::::0;::::1;24359:21:1::0;24416:2;24396:18;;;24389:30;24455:34;24435:18;;;24428:62;-1:-1:-1;;;24506:18:1;;;24499:41;24557:19;;26232:65:0::1;24175:407:1::0;26232:65:0::1;26304:19;26326:54;;;;;;;;26334:7;26326:54;;;;26343:5;26326:54;;;;26350:12;3763:10:::0;;3690:88;26350:12:::1;-1:-1:-1::0;;;;;26326:54:0;;::::1;::::0;;26364:15:::1;26326:54;::::0;;::::1;::::0;26387:8:::1;:19:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;26387:19:0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;;;;;26387:19:0::1;::::0;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;3763:10:0;-1:-1:-1;;;;;26418:40:0::1;26429:7;26418:40;26452:5;26418:40;;;;4399:25:1::0;;4387:2;4372:18;;4253:177;26418:40:0::1;;;;;;;;-1:-1:-1::0;;4750:1:0;5012:7;:22;-1:-1:-1;;25860:603:0:o;26468:424::-;4791:1;4917:7;;:19;;4909:63;;;;-1:-1:-1;;;4909:63:0;;;;;;;:::i;:::-;4791:1;4979:7;:18;26536:13:::1;::::0;26575:22:::1;26589:7:::0;26575:13:::1;:22::i;:::-;26535:62;;;;26612:8;26604:60;;;;-1:-1:-1::0;;;26604:60:0::1;;;;;;;:::i;:::-;3763:10:::0;-1:-1:-1;;;;;26677:45:0::1;:8;26686:12;26677:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:29:::1;:22;::::0;;::::1;;:29;::::0;-1:-1:-1;;;;;26677:29:0::1;:45;26669:101;;;;-1:-1:-1::0;;;26669:101:0::1;;;;;;;:::i;:::-;26802:8;26811:15:::0;;:19:::1;::::0;26829:1:::1;::::0;26811:19:::1;:::i;:::-;26802:29;;;;;;;;:::i;:::-;;;;;;;;;;;26777:8;26786:12;26777:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:54;;:22:::1;::::0;;::::1;;:54:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;26777:54:0::1;-1:-1:-1::0;;;;;26777:54:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;26836:8:::1;:14:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;26836:14:0;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;26836:14:0::1;::::0;;::::1;;::::0;;;;;26862:25:::1;::::0;26879:7;;26862:25:::1;::::0;::::1;-1:-1:-1::0;;4750:1:0;5012:7;:22;-1:-1:-1;26468:424:0:o;29751:95::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;29820:21;;::::1;::::0;:9:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;8358:272::-:0;8484:41;3763:10;8517:7;8484:18;:41::i;:::-;8476:103;;;;-1:-1:-1;;;8476:103:0;;;;;;;:::i;:::-;8586:39;8600:4;8606:2;8610:7;8619:5;8586:13;:39::i;:::-;8358:272;;;;:::o;29144:382::-;8963:4;8981:16;;;:7;:16;;;;;;29208:13;;-1:-1:-1;;;;;8981:16:0;29228:76;;;;-1:-1:-1;;;29228:76:0;;24789:2:1;29228:76:0;;;24771:21:1;24828:2;24808:18;;;24801:30;24867:34;24847:18;;;24840:62;-1:-1:-1;;;24918:18:1;;;24911:45;24973:19;;29228:76:0;24587:411:1;29228:76:0;29316:8;;-1:-1:-1;;;29316:8:0;;;;29311:35;;29333:13;29326:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29144:382;;;:::o;29311:35::-;29353:28;29384:10;:8;:10::i;:::-;29353:41;;29439:1;29414:14;29408:28;:32;:113;;;;;;;;;;;;;;;;;29468:14;29484:18;:7;:16;:18::i;:::-;29504:9;29451:63;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;29408:113;29401:120;29144:382;-1:-1:-1;;;29144:382:0:o;25402:209::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;25462:12:::1;25488:7;4170:6:::0;;-1:-1:-1;;;;;4170:6:0;;4104:77;25488:7:::1;-1:-1:-1::0;;;;;25480:21:0::1;25510;25480:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25461:76;;;25552:7;25544:62;;;;-1:-1:-1::0;;;25544:62:0::1;;;;;;;:::i;30920:128::-:0;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;30984:9:::1;:21:::0;;-1:-1:-1;;;;;30984:21:0;;::::1;-1:-1:-1::0;;;;;;30984:21:0;;::::1;::::0;::::1;::::0;;;31010:13:::1;:33:::0;;;;::::1;;::::0;;30920:128::o;31626:126::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;31701:13:::1;::::0;:43:::1;::::0;-1:-1:-1;;;31701:43:0;;31724:10:::1;31701:43;::::0;::::1;5323:51:1::0;5390:18;;;5383:34;;;-1:-1:-1;;;;;31701:13:0;;::::1;::::0;:22:::1;::::0;5296:18:1;;31701:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28793:86::-:0;28836:16;28866:8;28859:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28859:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28793:86;:::o;4298:188::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4381:22:0;::::1;4373:73;;;::::0;-1:-1:-1;;;4373:73:0;;26863:2:1;4373:73:0::1;::::0;::::1;26845:21:1::0;26902:2;26882:18;;;26875:30;26941:34;26921:18;;;26914:62;-1:-1:-1;;;26992:18:1;;;26985:36;27038:19;;4373:73:0::1;26661:402:1::0;4373:73:0::1;4453:28;4472:8;4453:18;:28::i;23337:640::-:0;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;23439:34;;::::1;23432:42;;;;:::i;:::-;23486:20:::0;;;;;:42:::1;;-1:-1:-1::0;23510:18:0;;;23486:42:::1;23479:50;;;;:::i;:::-;23538:19;::::0;23562:70:::1;23582:18:::0;;::::1;23562:70;;;23622:7;;23630:1;23622:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23607:25;::::0;::::1;;::::0;::::1;:::i;:::-;::::0;-1:-1:-1;23602:3:0;::::1;::::0;::::1;:::i;:::-;;;;23562:70;;;;23681:9;;23666:11;23647:16;:6;836:14:::0;;751:104;23647:16:::1;:30;;;;:::i;:::-;:43;;23639:81;;;::::0;-1:-1:-1;;;23639:81:0;;21291:2:1;23639:81:0::1;::::0;::::1;21273:21:1::0;21330:2;21310:18;;;21303:30;-1:-1:-1;;;21349:18:1;;;21342:55;21414:18;;23639:81:0::1;21089:349:1::0;23639:81:0::1;23734:9;23729:244;23749:20:::0;;::::1;23729:244;;;23782:12;23797:7;;23805:1;23797:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23782:25;;23820:9;23815:153;23839:6;23835:10;;:1;:10;23815:153;;;23859:18;:6;934:19:::0;;952:1;934:19;;;860:103;23859:18:::1;23886:15;23904:16;:6;836:14:::0;;751:104;23904:16:::1;23886:34;;23929:32;23939:9;;23949:1;23939:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;23929:32::-;-1:-1:-1::0;23847:3:0;::::1;::::0;::::1;:::i;:::-;;;;23815:153;;;;23776:197;23771:3;;;;;:::i;:::-;;;;23729:244;;;;23427:550;23337:640:::0;;;;:::o;29629:117::-;4170:6;;-1:-1:-1;;;;;4170:6:0;3763:10;4220:23;4212:68;;;;-1:-1:-1;;;4212:68:0;;;;;;;:::i;:::-;29709:32;;::::1;::::0;:13:::1;::::0;:32:::1;::::0;::::1;::::0;::::1;:::i;14072:224::-:0;14174:4;-1:-1:-1;;;;;;14198:50:0;;-1:-1:-1;;;14198:50:0;;:90;;;14252:36;14276:11;14252:23;:36::i;10938:161::-;11007:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11007:29:0;-1:-1:-1;;;;;11007:29:0;;;;;;;;:24;;11057:23;11007:24;11057:14;:23::i;:::-;-1:-1:-1;;;;;11048:46:0;;;;;;;;;;;10938:161;;:::o;9021:330::-;9113:4;8981:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8981:16:0;9124:73;;;;-1:-1:-1;;;9124:73:0;;27676:2:1;9124:73:0;;;27658:21:1;27715:2;27695:18;;;27688:30;27754:34;27734:18;;;27727:62;-1:-1:-1;;;27805:18:1;;;27798:42;27857:19;;9124:73:0;27474:408:1;9124:73:0;9204:13;9220:23;9235:7;9220:14;:23::i;:::-;9204:39;;9269:5;-1:-1:-1;;;;;9258:16:0;:7;-1:-1:-1;;;;;9258:16:0;;:51;;;;9302:7;-1:-1:-1;;;;;9278:31:0;:20;9290:7;9278:11;:20::i;:::-;-1:-1:-1;;;;;9278:31:0;;9258:51;:87;;;-1:-1:-1;;;;;;7877:25:0;;;7859:4;7877:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;9313:32;9250:96;9021:330;-1:-1:-1;;;;9021:330:0:o;10453:480::-;10572:4;-1:-1:-1;;;;;10545:31:0;:23;10560:7;10545:14;:23::i;:::-;-1:-1:-1;;;;;10545:31:0;;10537:81;;;;-1:-1:-1;;;10537:81:0;;28089:2:1;10537:81:0;;;28071:21:1;28128:2;28108:18;;;28101:30;28167:34;28147:18;;;28140:62;-1:-1:-1;;;28218:18:1;;;28211:35;28263:19;;10537:81:0;27887:401:1;10537:81:0;-1:-1:-1;;;;;10631:16:0;;10623:65;;;;-1:-1:-1;;;10623:65:0;;28495:2:1;10623:65:0;;;28477:21:1;28534:2;28514:18;;;28507:30;28573:34;28553:18;;;28546:62;-1:-1:-1;;;28624:18:1;;;28617:34;28668:19;;10623:65:0;28293:400:1;10623:65:0;10695:39;10716:4;10722:2;10726:7;10695:20;:39::i;:::-;10739:29;10756:1;10760:7;10739:8;:29::i;:::-;-1:-1:-1;;;;;10775:15:0;;;;;;:9;:15;;;;;:20;;10794:1;;10775:15;:20;;10794:1;;10775:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10800:13:0;;;;;;:9;:13;;;;;:18;;10817:1;;10800:13;:18;;10817:1;;10800:18;:::i;:::-;;;;-1:-1:-1;;10823:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10823:21:0;-1:-1:-1;;;;;10823:21:0;;;;;;;;;10856:27;;10823:16;;10856:27;;;;;;;7120:277;7050:347;;:::o;8635:259::-;8743:28;8753:4;8759:2;8763:7;8743:9;:28::i;:::-;8786:48;8809:4;8815:2;8819:7;8828:5;8786:22;:48::i;:::-;8778:111;;;;-1:-1:-1;;;8778:111:0;;;;;;;:::i;9356:101::-;9426:26;9436:2;9440:7;9426:26;;;;;;;;;;;;:9;:26::i;31450:171::-;31516:9;31511:106;31535:6;31531:1;:10;31511:106;;;31554:18;:6;934:19;;952:1;934:19;;;860:103;31554:18;31580:31;31590:2;31594:16;:6;836:14;;751:104;31594:16;31580:9;:31::i;:::-;31543:3;;;;:::i;:::-;;;;31511:106;;11104:264;11219:8;-1:-1:-1;;;;;11210:17:0;:5;-1:-1:-1;;;;;11210:17:0;;;11202:55;;;;-1:-1:-1;;;11202:55:0;;29319:2:1;11202:55:0;;;29301:21:1;29358:2;29338:18;;;29331:30;29397:27;29377:18;;;29370:55;29442:18;;11202:55:0;29117:349:1;11202:55:0;-1:-1:-1;;;;;11264:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11264:46:0;;;;;;;;;;11322:41;;2601::1;;;11322::0;;2574:18:1;11322:41:0;;;;;;;11104:264;;;:::o;31055:90::-;31106:13;31133:7;31126:14;;;;;:::i;132:413::-;187:13;211:10;207:26;;-1:-1:-1;;223:10:0;;;;;;;;;;;;-1:-1:-1;;;223:10:0;;;;;132:413::o;207:26::-;255:5;240:12;286:54;293:9;;286:54;;310:8;;;;:::i;:::-;;-1:-1:-1;324:10:0;;-1:-1:-1;332:2:0;324:10;;:::i;:::-;;;286:54;;;346:19;378:6;368:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:17:0;;346:39;;392:121;399:10;;392:121;;417:11;427:1;417:11;;:::i;:::-;;-1:-1:-1;477:10:0;485:2;477:5;:10;:::i;:::-;464:24;;:2;:24;:::i;:::-;451:39;;434:6;441;434:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;434:56:0;;;;;;;;-1:-1:-1;496:11:0;505:2;496:11;;:::i;:::-;;;392:121;;4491:174;4578:6;;;-1:-1:-1;;;;;4591:17:0;;;-1:-1:-1;;;;;;4591:17:0;;;;;;;4620:40;;4578:6;;;4591:17;4578:6;;4620:40;;4559:16;;4620:40;4554:111;4491:174;:::o;5762:256::-;5863:4;-1:-1:-1;;;;;;5881:40:0;;-1:-1:-1;;;5881:40:0;;:92;;-1:-1:-1;;;;;;;5925:48:0;;-1:-1:-1;;;5925:48:0;5881:92;:132;;;-1:-1:-1;;;;;;;;;;5190:40:0;;;5977:36;5088:147;31150:295;31265:13;31284:22;31298:7;31284:13;:22::i;:::-;31264:42;;;31320:8;31319:9;31311:75;;;;-1:-1:-1;;;31311:75:0;;29790:2:1;31311:75:0;;;29772:21:1;29829:2;29809:18;;;29802:30;29868:34;29848:18;;;29841:62;-1:-1:-1;;;29919:18:1;;;29912:51;29980:19;;31311:75:0;29588:417:1;31311:75:0;31395:45;31422:4;31428:2;31432:7;31395:26;:45::i;11373:572::-;11484:4;-1:-1:-1;;;;;11499:13:0;;649:19;:23;11495:445;;11526:72;;-1:-1:-1;;;11526:72:0;;-1:-1:-1;;;;;11526:36:0;;;;;:72;;3763:10;;11577:4;;11583:7;;11592:5;;11526:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11526:72:0;;;;;;;;-1:-1:-1;;11526:72:0;;;;;;;;;;;;:::i;:::-;;;11522:391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11734:13:0;;11730:177;;11754:60;;-1:-1:-1;;;11754:60:0;;;;;;;:::i;11730:177::-;11884:6;11878:13;11869:6;11865:2;11861:15;11854:38;11522:391;-1:-1:-1;;;;;;11636:51:0;-1:-1:-1;;;11636:51:0;;-1:-1:-1;11629:58:0;;11495:445;-1:-1:-1;11936:4:0;11373:572;;;;;;:::o;9462:237::-;9552:18;9558:2;9562:7;9552:5;:18::i;:::-;9585:54;9616:1;9620:2;9624:7;9633:5;9585:22;:54::i;:::-;9577:117;;;;-1:-1:-1;;;9577:117:0;;;;;;;:::i;15748:589::-;-1:-1:-1;;;;;15954:18:0;;15950:187;;15989:40;16021:7;17164:10;:17;;17137:24;;;;:15;:24;;;;;:44;;;17192:24;;;;;;;;;;;;17060:164;15989:40;15950:187;;;16059:2;-1:-1:-1;;;;;16051:10:0;:4;-1:-1:-1;;;;;16051:10:0;;16047:90;;16078:47;16111:4;16117:7;16078:32;:47::i;:::-;-1:-1:-1;;;;;16151:16:0;;16147:183;;16184:45;16221:7;16184:36;:45::i;16147:183::-;16257:4;-1:-1:-1;;;;;16251:10:0;:2;-1:-1:-1;;;;;16251:10:0;;16247:83;;16278:40;16306:2;16310:7;16278:27;:40::i;9704:394::-;-1:-1:-1;;;;;9778:16:0;;9770:61;;;;-1:-1:-1;;;9770:61:0;;30960:2:1;9770:61:0;;;30942:21:1;;;30979:18;;;30972:30;31038:34;31018:18;;;31011:62;31090:18;;9770:61:0;30758:356:1;9770:61:0;8963:4;8981:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8981:16:0;:30;9836:58;;;;-1:-1:-1;;;9836:58:0;;31321:2:1;9836:58:0;;;31303:21:1;31360:2;31340:18;;;31333:30;31399;31379:18;;;31372:58;31447:18;;9836:58:0;31119:352:1;9836:58:0;9901:45;9930:1;9934:2;9938:7;9901:20;:45::i;:::-;-1:-1:-1;;;;;9953:13:0;;;;;;:9;:13;;;;;:18;;9970:1;;9953:13;:18;;9970:1;;9953:18;:::i;:::-;;;;-1:-1:-1;;9976:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9976:21:0;-1:-1:-1;;;;;9976:21:0;;;;;;;;10009:33;;9976:16;;;10009:33;;9976:16;;10009:33;29599:20:::1;29531:93:::0;:::o;17851:988::-;18117:22;18167:1;18142:22;18159:4;18142:16;:22::i;:::-;:26;;;;:::i;:::-;18179:18;18200:26;;;:17;:26;;;;;;18117:51;;-1:-1:-1;18333:28:0;;;18329:328;;-1:-1:-1;;;;;18400:18:0;;18378:19;18400:18;;;:12;:18;;;;;;;;:34;;;;;;;;;18451:30;;;;;;:44;;;18568:30;;:17;:30;;;;;:43;;;18329:328;-1:-1:-1;18753:26:0;;;;:17;:26;;;;;;;;18746:33;;;-1:-1:-1;;;;;18797:18:0;;;;;:12;:18;;;;;:34;;;;;;;18790:41;17851:988::o;19134:1079::-;19412:10;:17;19387:22;;19412:21;;19432:1;;19412:21;:::i;:::-;19444:18;19465:24;;;:15;:24;;;;;;19838:10;:26;;19387:46;;-1:-1:-1;19465:24:0;;19387:46;;19838:26;;;;;;:::i;:::-;;;;;;;;;19816:48;;19902:11;19877:10;19888;19877:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;19982:28;;;:15;:28;;;;;;;:41;;;20154:24;;;;;20147:31;20189:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19205:1008;;;19134:1079;:::o;16638:221::-;16723:14;16740:20;16757:2;16740:16;:20::i;:::-;-1:-1:-1;;;;;16771:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;16816:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;16638:221:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:1;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:168;186:7;252:1;248;244:6;240:14;237:1;234:21;229:1;222:9;215:17;211:45;208:71;;;259:18;;:::i;:::-;-1:-1:-1;299:9:1;;146:168::o;319:127::-;380:10;375:3;371:20;368:1;361:31;411:4;408:1;401:15;435:4;432:1;425:15;451:120;491:1;517;507:35;;522:18;;:::i;:::-;-1:-1:-1;556:9:1;;451:120::o;786:427::-;988:2;970:21;;;1027:2;1007:18;;;1000:30;-1:-1:-1;;;;;;;;;;;1061:2:1;1046:18;;1039:62;1137:33;1132:2;1117:18;;1110:61;1203:3;1188:19;;786:427::o;1647:423::-;1849:2;1831:21;;;1888:2;1868:18;;;1861:30;-1:-1:-1;;;;;;;;;;;1922:2:1;1907:18;;1900:62;1998:29;1993:2;1978:18;;1971:57;2060:3;2045:19;;1647:423::o;2075:131::-;-1:-1:-1;;;;;;2149:32:1;;2139:43;;2129:71;;2196:1;2193;2186:12;2211:245;2269:6;2322:2;2310:9;2301:7;2297:23;2293:32;2290:52;;;2338:1;2335;2328:12;2290:52;2377:9;2364:23;2396:30;2420:5;2396:30;:::i;2653:258::-;2725:1;2735:113;2749:6;2746:1;2743:13;2735:113;;;2825:11;;;2819:18;2806:11;;;2799:39;2771:2;2764:10;2735:113;;;2866:6;2863:1;2860:13;2857:48;;;-1:-1:-1;;2901:1:1;2883:16;;2876:27;2653:258::o;2916:::-;2958:3;2996:5;2990:12;3023:6;3018:3;3011:19;3039:63;3095:6;3088:4;3083:3;3079:14;3072:4;3065:5;3061:16;3039:63;:::i;:::-;3156:2;3135:15;-1:-1:-1;;3131:29:1;3122:39;;;;3163:4;3118:50;;2916:258;-1:-1:-1;;2916:258:1:o;3179:220::-;3328:2;3317:9;3310:21;3291:4;3348:45;3389:2;3378:9;3374:18;3366:6;3348:45;:::i;3404:180::-;3463:6;3516:2;3504:9;3495:7;3491:23;3487:32;3484:52;;;3532:1;3529;3522:12;3484:52;-1:-1:-1;3555:23:1;;3404:180;-1:-1:-1;3404:180:1:o;3797:131::-;-1:-1:-1;;;;;3872:31:1;;3862:42;;3852:70;;3918:1;3915;3908:12;3933:315;4001:6;4009;4062:2;4050:9;4041:7;4037:23;4033:32;4030:52;;;4078:1;4075;4068:12;4030:52;4117:9;4104:23;4136:31;4161:5;4136:31;:::i;:::-;4186:5;4238:2;4223:18;;;;4210:32;;-1:-1:-1;;;3933:315:1:o;4435:456::-;4512:6;4520;4528;4581:2;4569:9;4560:7;4556:23;4552:32;4549:52;;;4597:1;4594;4587:12;4549:52;4636:9;4623:23;4655:31;4680:5;4655:31;:::i;:::-;4705:5;-1:-1:-1;4762:2:1;4747:18;;4734:32;4775:33;4734:32;4775:33;:::i;:::-;4435:456;;4827:7;;-1:-1:-1;;;4881:2:1;4866:18;;;;4853:32;;4435:456::o;4896:248::-;4964:6;4972;5025:2;5013:9;5004:7;5000:23;4996:32;4993:52;;;5041:1;5038;5031:12;4993:52;-1:-1:-1;;5064:23:1;;;5134:2;5119:18;;;5106:32;;-1:-1:-1;4896:248:1:o;5428:247::-;5487:6;5540:2;5528:9;5519:7;5515:23;5511:32;5508:52;;;5556:1;5553;5546:12;5508:52;5595:9;5582:23;5614:31;5639:5;5614:31;:::i;5680:127::-;5741:10;5736:3;5732:20;5729:1;5722:31;5772:4;5769:1;5762:15;5796:4;5793:1;5786:15;5812:632;5877:5;5907:18;5948:2;5940:6;5937:14;5934:40;;;5954:18;;:::i;:::-;6029:2;6023:9;5997:2;6083:15;;-1:-1:-1;;6079:24:1;;;6105:2;6075:33;6071:42;6059:55;;;6129:18;;;6149:22;;;6126:46;6123:72;;;6175:18;;:::i;:::-;6215:10;6211:2;6204:22;6244:6;6235:15;;6274:6;6266;6259:22;6314:3;6305:6;6300:3;6296:16;6293:25;6290:45;;;6331:1;6328;6321:12;6290:45;6381:6;6376:3;6369:4;6361:6;6357:17;6344:44;6436:1;6429:4;6420:6;6412;6408:19;6404:30;6397:41;;;;5812:632;;;;;:::o;6449:451::-;6518:6;6571:2;6559:9;6550:7;6546:23;6542:32;6539:52;;;6587:1;6584;6577:12;6539:52;6627:9;6614:23;6660:18;6652:6;6649:30;6646:50;;;6692:1;6689;6682:12;6646:50;6715:22;;6768:4;6760:13;;6756:27;-1:-1:-1;6746:55:1;;6797:1;6794;6787:12;6746:55;6820:74;6886:7;6881:2;6868:16;6863:2;6859;6855:11;6820:74;:::i;6905:388::-;6973:6;6981;7034:2;7022:9;7013:7;7009:23;7005:32;7002:52;;;7050:1;7047;7040:12;7002:52;7089:9;7076:23;7108:31;7133:5;7108:31;:::i;:::-;7158:5;-1:-1:-1;7215:2:1;7200:18;;7187:32;7228:33;7187:32;7228:33;:::i;:::-;7280:7;7270:17;;;6905:388;;;;;:::o;7589:247::-;7371:12;;7359:25;;7433:4;7422:16;;;7416:23;7400:14;;;7393:47;7493:4;7482:16;;;7476:23;-1:-1:-1;;;;;7472:49:1;7456:14;;;7449:73;7571:4;7560:16;;;7554:23;7538:14;;;7531:47;7773:3;7758:19;;7786:44;7298:286;8104:118;8190:5;8183:13;8176:21;8169:5;8166:32;8156:60;;8212:1;8209;8202:12;8227:382;8292:6;8300;8353:2;8341:9;8332:7;8328:23;8324:32;8321:52;;;8369:1;8366;8359:12;8321:52;8408:9;8395:23;8427:31;8452:5;8427:31;:::i;:::-;8477:5;-1:-1:-1;8534:2:1;8519:18;;8506:32;8547:30;8506:32;8547:30;:::i;8614:795::-;8709:6;8717;8725;8733;8786:3;8774:9;8765:7;8761:23;8757:33;8754:53;;;8803:1;8800;8793:12;8754:53;8842:9;8829:23;8861:31;8886:5;8861:31;:::i;:::-;8911:5;-1:-1:-1;8968:2:1;8953:18;;8940:32;8981:33;8940:32;8981:33;:::i;:::-;9033:7;-1:-1:-1;9087:2:1;9072:18;;9059:32;;-1:-1:-1;9142:2:1;9127:18;;9114:32;9169:18;9158:30;;9155:50;;;9201:1;9198;9191:12;9155:50;9224:22;;9277:4;9269:13;;9265:27;-1:-1:-1;9255:55:1;;9306:1;9303;9296:12;9255:55;9329:74;9395:7;9390:2;9377:16;9372:2;9368;9364:11;9329:74;:::i;:::-;9319:84;;;8614:795;;;;;;;:::o;9414:703::-;9635:2;9687:21;;;9757:13;;9660:18;;;9779:22;;;9606:4;;9635:2;9858:15;;;;9832:2;9817:18;;;9606:4;9901:190;9915:6;9912:1;9909:13;9901:190;;;9964:45;10005:3;9996:6;9990:13;7371:12;;7359:25;;7433:4;7422:16;;;7416:23;7400:14;;;7393:47;7493:4;7482:16;;;7476:23;-1:-1:-1;;;;;7472:49:1;7456:14;;;7449:73;7571:4;7560:16;;;7554:23;7538:14;;7531:47;7298:286;9964:45;10066:15;;;;10038:4;10029:14;;;;;9937:1;9930:9;9901:190;;;-1:-1:-1;10108:3:1;;9414:703;-1:-1:-1;;;;;;9414:703:1:o;10122:367::-;10185:8;10195:6;10249:3;10242:4;10234:6;10230:17;10226:27;10216:55;;10267:1;10264;10257:12;10216:55;-1:-1:-1;10290:20:1;;10333:18;10322:30;;10319:50;;;10365:1;10362;10355:12;10319:50;10402:4;10394:6;10390:17;10378:29;;10462:3;10455:4;10445:6;10442:1;10438:14;10430:6;10426:27;10422:38;10419:47;10416:67;;;10479:1;10476;10469:12;10416:67;10122:367;;;;;:::o;10494:771::-;10614:6;10622;10630;10638;10691:2;10679:9;10670:7;10666:23;10662:32;10659:52;;;10707:1;10704;10697:12;10659:52;10747:9;10734:23;10776:18;10817:2;10809:6;10806:14;10803:34;;;10833:1;10830;10823:12;10803:34;10872:70;10934:7;10925:6;10914:9;10910:22;10872:70;:::i;:::-;10961:8;;-1:-1:-1;10846:96:1;-1:-1:-1;11049:2:1;11034:18;;11021:32;;-1:-1:-1;11065:16:1;;;11062:36;;;11094:1;11091;11084:12;11062:36;;11133:72;11197:7;11186:8;11175:9;11171:24;11133:72;:::i;:::-;10494:771;;;;-1:-1:-1;11224:8:1;-1:-1:-1;;;;10494:771:1:o;11270:380::-;11349:1;11345:12;;;;11392;;;11413:61;;11467:4;11459:6;11455:17;11445:27;;11413:61;11520:2;11512:6;11509:14;11489:18;11486:38;11483:161;;;11566:10;11561:3;11557:20;11554:1;11547:31;11601:4;11598:1;11591:15;11629:4;11626:1;11619:15;11483:161;;11270:380;;;:::o;11655:356::-;11857:2;11839:21;;;11876:18;;;11869:30;11935:34;11930:2;11915:18;;11908:62;12002:2;11987:18;;11655:356::o;13256:413::-;13458:2;13440:21;;;13497:2;13477:18;;;13470:30;13536:34;13531:2;13516:18;;13509:62;-1:-1:-1;;;13602:2:1;13587:18;;13580:47;13659:3;13644:19;;13256:413::o;13674:128::-;13714:3;13745:1;13741:6;13738:1;13735:13;13732:39;;;13751:18;;:::i;:::-;-1:-1:-1;13787:9:1;;13674:128::o;14219:355::-;14421:2;14403:21;;;14460:2;14440:18;;;14433:30;14499:33;14494:2;14479:18;;14472:61;14565:2;14550:18;;14219:355::o;14579:403::-;14781:2;14763:21;;;14820:2;14800:18;;;14793:30;14859:34;14854:2;14839:18;;14832:62;-1:-1:-1;;;14925:2:1;14910:18;;14903:37;14972:3;14957:19;;14579:403::o;14987:127::-;15048:10;15043:3;15039:20;15036:1;15029:31;15079:4;15076:1;15069:15;15103:4;15100:1;15093:15;16002:125;16042:4;16070:1;16067;16064:8;16061:34;;;16075:18;;:::i;:::-;-1:-1:-1;16112:9:1;;16002:125::o;16132:127::-;16193:10;16188:3;16184:20;16181:1;16174:31;16224:4;16221:1;16214:15;16248:4;16245:1;16238:15;16264:406;16466:2;16448:21;;;16505:2;16485:18;;;16478:30;-1:-1:-1;;;;;;;;;;;16539:2:1;16524:18;;16517:62;-1:-1:-1;;;16610:2:1;16595:18;;16588:40;16660:3;16645:19;;16264:406::o;19111:251::-;19181:6;19234:2;19222:9;19213:7;19209:23;19205:32;19202:52;;;19250:1;19247;19240:12;19202:52;19282:9;19276:16;19301:31;19326:5;19301:31;:::i;19367:135::-;19406:3;-1:-1:-1;;19427:17:1;;19424:43;;;19447:18;;:::i;:::-;-1:-1:-1;19494:1:1;19483:13;;19367:135::o;22494:184::-;22564:6;22617:2;22605:9;22596:7;22592:23;22588:32;22585:52;;;22633:1;22630;22623:12;22585:52;-1:-1:-1;22656:16:1;;22494:184;-1:-1:-1;22494:184:1:o;22683:245::-;22750:6;22803:2;22791:9;22782:7;22778:23;22774:32;22771:52;;;22819:1;22816;22809:12;22771:52;22851:9;22845:16;22870:28;22892:5;22870:28;:::i;23763:407::-;23965:2;23947:21;;;24004:2;23984:18;;;23977:30;24043:34;24038:2;24023:18;;24016:62;-1:-1:-1;;;24109:2:1;24094:18;;24087:41;24160:3;24145:19;;23763:407::o;25129:1527::-;25353:3;25391:6;25385:13;25417:4;25430:51;25474:6;25469:3;25464:2;25456:6;25452:15;25430:51;:::i;:::-;25544:13;;25503:16;;;;25566:55;25544:13;25503:16;25588:15;;;25566:55;:::i;:::-;25710:13;;25643:20;;;25683:1;;25770;25792:18;;;;25845;;;;25872:93;;25950:4;25940:8;25936:19;25924:31;;25872:93;26013:2;26003:8;26000:16;25980:18;25977:40;25974:167;;;-1:-1:-1;;;26040:33:1;;26096:4;26093:1;26086:15;26126:4;26047:3;26114:17;25974:167;26157:18;26184:110;;;;26308:1;26303:328;;;;26150:481;;26184:110;-1:-1:-1;;26219:24:1;;26205:39;;26264:20;;;;-1:-1:-1;26184:110:1;;26303:328;25076:1;25069:14;;;25113:4;25100:18;;26398:1;26412:169;26426:8;26423:1;26420:15;26412:169;;;26508:14;;26493:13;;;26486:37;26551:16;;;;26443:10;;26412:169;;;26416:3;;26612:8;26605:5;26601:20;26594:27;;26150:481;-1:-1:-1;26647:3:1;;25129:1527;-1:-1:-1;;;;;;;;;;;25129:1527:1:o;27068:127::-;27129:10;27124:3;27120:20;27117:1;27110:31;27160:4;27157:1;27150:15;27184:4;27181:1;27174:15;27200:269;27257:6;27310:2;27298:9;27289:7;27285:23;27281:32;27278:52;;;27326:1;27323;27316:12;27278:52;27365:9;27352:23;27415:4;27408:5;27404:16;27397:5;27394:27;27384:55;;27435:1;27432;27425:12;28698:414;28900:2;28882:21;;;28939:2;28919:18;;;28912:30;28978:34;28973:2;28958:18;;28951:62;-1:-1:-1;;;29044:2:1;29029:18;;29022:48;29102:3;29087:19;;28698:414::o;29471:112::-;29503:1;29529;29519:35;;29534:18;;:::i;:::-;-1:-1:-1;29568:9:1;;29471:112::o;30010:489::-;-1:-1:-1;;;;;30279:15:1;;;30261:34;;30331:15;;30326:2;30311:18;;30304:43;30378:2;30363:18;;30356:34;;;30426:3;30421:2;30406:18;;30399:31;;;30204:4;;30447:46;;30473:19;;30465:6;30447:46;:::i;:::-;30439:54;30010:489;-1:-1:-1;;;;;;30010:489:1:o;30504:249::-;30573:6;30626:2;30614:9;30605:7;30601:23;30597:32;30594:52;;;30642:1;30639;30632:12;30594:52;30674:9;30668:16;30693:30;30717:5;30693:30;:::i

Swarm Source

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