Contract
0x25a746062B6fe474a47Ef15BDE1317b0aD06847b
1
Contract Overview
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
HardRockNickSociety
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2022-02-19 */ // SPDX-License-Identifier: MIT /* /$$ /$$ /$$ /$$$$$$$ /$$ /$$ /$$ /$$ /$$ /$$$$$$ /$$ /$$ | $$ | $$ | $$ | $$__ $$ | $$ | $$$ | $$|__/ | $$ /$$__ $$ |__/ | $$ | $$ | $$ /$$$$$$ /$$$$$$ /$$$$$$$ | $$ \ $$ /$$$$$$ /$$$$$$$| $$ /$$ | $$$$| $$ /$$ /$$$$$$$| $$ /$$ | $$ \__/ /$$$$$$ /$$$$$$$ /$$ /$$$$$$ /$$$$$$ /$$ /$$ | $$$$$$$$ |____ $$ /$$__ $$ /$$__ $$ | $$$$$$$/ /$$__ $$ /$$_____/| $$ /$$/ | $$ $$ $$| $$ /$$_____/| $$ /$$/ | $$$$$$ /$$__ $$ /$$_____/| $$ /$$__ $$|_ $$_/ | $$ | $$ | $$__ $$ /$$$$$$$| $$ \__/| $$ | $$ | $$__ $$| $$ \ $$| $$ | $$$$$$/ | $$ $$$$| $$| $$ | $$$$$$/ \____ $$| $$ \ $$| $$ | $$| $$$$$$$$ | $$ | $$ | $$ | $$ | $$ /$$__ $$| $$ | $$ | $$ | $$ \ $$| $$ | $$| $$ | $$_ $$ | $$\ $$$| $$| $$ | $$_ $$ /$$ \ $$| $$ | $$| $$ | $$| $$_____/ | $$ /$$| $$ | $$ | $$ | $$| $$$$$$$| $$ | $$$$$$$ | $$ | $$| $$$$$$/| $$$$$$$| $$ \ $$ | $$ \ $$| $$| $$$$$$$| $$ \ $$ | $$$$$$/| $$$$$$/| $$$$$$$| $$| $$$$$$$ | $$$$/| $$$$$$$ |__/ |__/ \_______/|__/ \_______/ |__/ |__/ \______/ \_______/|__/ \__/ |__/ \__/|__/ \_______/|__/ \__/ \______/ \______/ \_______/|__/ \_______/ \___/ \____ $$ /$$ | $$ | $$$$$$/ \______/ */ 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 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 {} } contract HardRockNickSociety is ERC721, ReentrancyGuard, Ownable { using Counters for Counters.Counter; using Strings for uint256; bool public paused; bool public revealed; bool public allowListings; bool public collectSalesRewardsFromThirdParty; string private baseURI; string private uriSuffix; uint256 public cost; uint256 public maxSupply; uint256 public reservedSupply; uint256 public maxMintAmountPerTX; uint256 public royalties; uint256 public dust; uint256 public mintRewards; uint256 public salesRewards; uint256 public mintRewardsIndex; uint256 public salesRewardsIndex; uint256 public totalMintRewardsVault; uint256 public totalSalesRewardsVault; mapping(uint256 => uint256) private lastCollectedMintRewardIndex; mapping(uint256 => uint256) private lastCollectedSalesRewardIndex; address private communityAddress; address private donationAddress; 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); event ClaimedRewards(address indexed wallet, uint256 amount, uint8 indexed rewardType); event DisbursedRewards(uint256 amount); constructor(address _initCommunityAddress, address _initDonationAddress) ERC721("Hard Rock Nick Society", "NICK") { paused = true; revealed = true; allowListings = true; collectSalesRewardsFromThirdParty = true; cost = 1 ether; maxSupply = 1111; reservedSupply = 20; maxMintAmountPerTX = 25; royalties = 140; mintRewards = 2000; salesRewards = 180; dust = 100000000; mintRewardsIndex = 0; salesRewardsIndex = 0; communityAddress = _initCommunityAddress; donationAddress = _initDonationAddress; setURIsuffix(".json"); } 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"); require(msg.value >= cost * amount, "Insufficient funds"); uint256 mintRewardValue = 0; uint256 tokenIndex = supply.current(); _mintLoop(_msgSender(), amount); for (uint256 i = 0; i < amount; i++) { if (tokenIndex > 0) { uint256 individualMintRewardValue = msg.value * mintRewards / PERCENTAGE_MULTIPLIER / amount / tokenIndex; mintRewardValue += individualMintRewardValue * tokenIndex; mintRewardsIndex += individualMintRewardValue; } tokenIndex++; lastCollectedMintRewardIndex[tokenIndex] = mintRewardsIndex; } totalMintRewardsVault += mintRewardValue; } 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); lastCollectedMintRewardIndex[tokenID] = mintRewardsIndex; } } } 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 claimMintRewards() public payable nonReentrant { uint256 reward = getMintRewardsOfAddress(_msgSender()); require(reward > 0, "You don't have any rewards"); uint256[] memory tokens = walletOfOwner(_msgSender()); for (uint256 i = 0; i < tokens.length; i++) { uint256 tokenID = tokens[i]; lastCollectedMintRewardIndex[tokenID] = mintRewardsIndex; } totalMintRewardsVault -= reward; (bool success, ) = payable(_msgSender()).call{ value: reward }(""); require(success, "AVAX Transaction: Failed to transfer funds"); emit ClaimedRewards(_msgSender(), reward, 1); } function claimMintRewardOfToken(uint256 tokenID) public payable nonReentrant { address owner = ownerOf(tokenID); require(_msgSender() == owner, "Only the owner of a token can claim rewards"); uint256 reward = getMintRewardsOfToken(tokenID); require(reward > 0, "You don't have any rewards"); totalMintRewardsVault -= reward; lastCollectedMintRewardIndex[tokenID] = mintRewardsIndex; (bool success, ) = payable(owner).call{ value: reward }(""); require(success, "AVAX Transaction: Failed to transfer funds"); emit ClaimedRewards(owner, reward, 1); } function claimSalesRewards() public payable nonReentrant { uint256 reward = getSalesRewardsOfAddress(_msgSender()); require(reward > 0, "You don't have any rewards"); uint256[] memory tokens = walletOfOwner(_msgSender()); for (uint256 i = 0; i < tokens.length; i++) { uint256 tokenID = tokens[i]; lastCollectedSalesRewardIndex[tokenID] = salesRewardsIndex; } totalSalesRewardsVault -= reward; (bool success, ) = payable(_msgSender()).call{ value: reward }(""); require(success, "AVAX Transaction: Failed to transfer funds"); emit ClaimedRewards(_msgSender(), reward, 2); } function claimSalesRewardOfToken(uint256 tokenID) public payable nonReentrant { address owner = ownerOf(tokenID); require(_msgSender() == owner, "Only the owner of a token can claim rewards"); uint256 reward = getSalesRewardsOfToken(tokenID); require(reward > 0, "You don't have any rewards"); totalSalesRewardsVault -= reward; lastCollectedSalesRewardIndex[tokenID] = salesRewardsIndex; (bool success, ) = payable(owner).call{ value: reward }(""); require(success, "AVAX Transaction: Failed to transfer funds"); emit ClaimedRewards(owner, reward, 2); } function withdraw() public onlyOwner { uint256 totalRewards = totalMintRewardsVault + totalSalesRewardsVault; uint256 balance_10percent = (address(this).balance - totalRewards) * 10 / 100; (bool success1, ) = payable(communityAddress).call{ value: balance_10percent * 3 }(""); require(success1, "AVAX Transaction: Failed to transfer funds to community wallet!"); (bool success2, ) = payable(donationAddress).call{ value: balance_10percent }(""); require(success2, "AVAX Transaction: Failed to transfer funds to donation wallet!"); (bool success3, ) = payable(owner()).call{ value: address(this).balance - (totalRewards + dust) }(""); require(success3, "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 disburseRewards() public payable onlyOwner { uint256 currentSupply = supply.current(); uint256 individualRewardValue = msg.value / currentSupply; uint256 rewardValue = individualRewardValue * currentSupply; mintRewardsIndex += individualRewardValue; totalMintRewardsVault += rewardValue; emit DisbursedRewards(msg.value); } function royaltyInfo(uint256, uint256 value) external view returns(address receiver, uint256 royaltyAmount) { receiver = address(this); royaltyAmount = value * (royalties + salesRewards) / 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 individualSalesRewardValue = msg.value * salesRewards / PERCENTAGE_MULTIPLIER / (supply.current() - 1); uint256 salesRewardValue = individualSalesRewardValue * (supply.current() - 1); listings[listingIndex] = listings[listings.length - 1]; listings.pop(); salesRewardsIndex += individualSalesRewardValue; lastCollectedSalesRewardIndex[tokenID] += individualSalesRewardValue; totalSalesRewardsVault += salesRewardValue; emit TokenSold(tokenID, listing.seller, _msgSender(), msg.value); _safeTransfer(listing.seller, _msgSender(), tokenID, ""); (bool success, ) = payable(listing.seller).call{ value: msg.value - (royaltiesValue + salesRewardValue) }(""); require(success, "AVAX Transaction: Failed to transfer funds"); } 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"); string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string( abi.encodePacked(currentBaseURI, tokenID.toString(), uriSuffix) ) : ""; } function totalSupply() public view returns(uint256) { return supply.current(); } function walletOfOwner(address _address) public view returns(uint256[] memory) { uint256 ownerTokenCount = balanceOf(_address); uint256[] memory ownedTokenIDs = new uint256[](ownerTokenCount); uint256 tokenIndex = 1; uint256 ownedTokenIndex = 0; while (ownedTokenIndex < ownerTokenCount && tokenIndex <= maxSupply) { address owner = ownerOf(tokenIndex); if (owner == _address) { ownedTokenIDs[ownedTokenIndex] = tokenIndex; ownedTokenIndex++; } tokenIndex++; } return ownedTokenIDs; } function getMintRewardsOfAddress(address _address) public view returns(uint256) { uint256[] memory tokens = walletOfOwner(_address); uint256 total = 0; for (uint256 i = 0; i < tokens.length; i++) { total += getMintRewardsOfToken(tokens[i]); } return total; } function getSalesRewardsOfAddress(address _address) public view returns(uint256) { uint256[] memory tokens = walletOfOwner(_address); uint256 total = 0; for (uint256 i = 0; i < tokens.length; i++) { total += getSalesRewardsOfToken(tokens[i]); } return total; } function getMintRewardsOfToken(uint256 tokenID) public view returns(uint256) { require(supply.current() >= tokenID, "Query for nonexistent token"); return mintRewardsIndex - lastCollectedMintRewardIndex[tokenID]; } function getSalesRewardsOfToken(uint256 tokenID) public view returns(uint256) { require(supply.current() >= tokenID, "Query for nonexistent token"); return salesRewardsIndex - lastCollectedSalesRewardIndex[tokenID]; } function setBaseURI(string memory newBaseURI) public onlyOwner { baseURI = newBaseURI; } 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 setMintRewards(uint256 newValue) public onlyOwner { mintRewards = newValue; } function setSalesRewards(uint256 newValue) public onlyOwner { salesRewards = newValue; } function setRoyalties(uint256 newValue) public onlyOwner { royalties = newValue; } function setDust(uint256 newValue) public onlyOwner { dust = newValue; } function setMintRewardsIndex(uint256 newAmount) public onlyOwner { mintRewardsIndex = newAmount; } function setSalesRewardsIndex(uint256 newAmount) public onlyOwner { salesRewardsIndex = newAmount; } function setWithdrawAddresses(address newCommunityAddress, address newDonationAddress) public onlyOwner { communityAddress = newCommunityAddress; donationAddress = newDonationAddress; } function _baseURI() internal view override returns(string memory) { return baseURI; } function _beforeTokenTransfer(address from, address to, uint256 tokenID) internal override { (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()); } } receive() external payable { uint256 currentSupply = supply.current(); if (collectSalesRewardsFromThirdParty == true && currentSupply > 0) { uint256 individualSalesRewardValue = msg.value / (salesRewards + royalties) * salesRewards / currentSupply; uint256 salesRewardValue = individualSalesRewardValue * currentSupply; salesRewardsIndex += individualSalesRewardValue; totalSalesRewardsVault += salesRewardValue; } } }
[{"inputs":[{"internalType":"address","name":"_initCommunityAddress","type":"address"},{"internalType":"address","name":"_initDonationAddress","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":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint8","name":"rewardType","type":"uint8"}],"name":"ClaimedRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DisbursedRewards","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":[],"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":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"claimMintRewardOfToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimMintRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"claimSalesRewardOfToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimSalesRewards","outputs":[],"stateMutability":"payable","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":"disburseRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dust","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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 HardRockNickSociety.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 HardRockNickSociety.Listing[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getMintRewardsOfAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"getMintRewardsOfToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getSalesRewardsOfAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"getSalesRewardsOfToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"mintRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintRewardsIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"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":[],"name":"salesRewardsIndex","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":"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":"newValue","type":"uint256"}],"name":"setDust","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":"newValue","type":"uint256"}],"name":"setMintRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setMintRewardsIndex","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":"uint256","name":"newAmount","type":"uint256"}],"name":"setSalesRewardsIndex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newSuffix","type":"string"}],"name":"setURIsuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCommunityAddress","type":"address"},{"internalType":"address","name":"newDonationAddress","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":"tokenID","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMintRewardsVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSalesRewardsVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"_address","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"withdrawListing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162004923380380620049238339810160408190526200003491620002fe565b604080518082018252601681527f4861726420526f636b204e69636b20536f6369657479000000000000000000006020808301918252835180850190945260048452634e49434b60e01b90840152815191929162000095916000916200023b565b508051620000ab9060019060208401906200023b565b5050600160065550620000be3362000171565b60078054630101010160a01b63ffffffff60a01b19909116179055670de0b6b3a7640000600a55610457600b556014600c556019600d819055608c600e556107d060105560b46011556305f5e100600f5560006012819055601355601880546001600160a01b038086166001600160a01b03199283161790925582549184169116179055604080518082019091526005815264173539b7b760d91b60208201526200016990620001c3565b505062000373565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6007546001600160a01b03163314620002225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620002379060099060208401906200023b565b5050565b828054620002499062000336565b90600052602060002090601f0160209004810192826200026d5760008555620002b8565b82601f106200028857805160ff1916838001178555620002b8565b82800160010185558215620002b8579182015b82811115620002b85782518255916020019190600101906200029b565b50620002c6929150620002ca565b5090565b5b80821115620002c65760008155600101620002cb565b80516001600160a01b0381168114620002f957600080fd5b919050565b600080604083850312156200031257600080fd5b6200031d83620002e1565b91506200032d60208401620002e1565b90509250929050565b600181811c908216806200034b57607f821691505b602082108114156200036d57634e487b7160e01b600052602260045260246000fd5b50919050565b6145a080620003836000396000f3fe6080604052600436106104095760003560e01c80637ef6f65611610213578063b36a206411610123578063dd76cba3116100ab578063f1629d131161007a578063f1629d1314610c38578063f1b2d6a314610c4b578063f2fde38b14610c6d578063f9daade414610c8d578063fad9aba314610cad57600080fd5b8063dd76cba314610bd6578063e02f399314610bec578063e985e9c514610c02578063f053dc5c14610c2257600080fd5b8063c87b56dd116100f2578063c87b56dd14610b62578063d5abeb0114610b82578063d6fb650c14610b98578063db2e21bc14610bb8578063dceb262914610bc057600080fd5b8063b36a206414610b04578063b5350ebf14610b24578063b88d4fde14610b2c578063bf72daad14610b4c57600080fd5b806395d89b41116101a6578063a17bd78311610175578063a17bd78314610a6f578063a22cb46514610a84578063a79123a914610aa4578063aec6e27314610ac4578063aff7214114610ae457600080fd5b806395d89b41146109ef5780639b83cddc14610a04578063a0712d6814610a3b578063a0ba1bbf14610a4e57600080fd5b80638d5190d9116101e25780638d5190d91461097c5780638da5cb5b1461099c5780638e6fe1a3146109ba57806393eff851146109da57600080fd5b80637ef6f65614610907578063825875741461092757806384917f4a1461094757806389ac1fa81461097457600080fd5b80633ccfd60b116103195780634c261247116102a157806356fcf95b1161027057806356fcf95b146108665780635c975abb146108865780636352211e146108a75780636f8b44b0146108c757806370a08231146108e757600080fd5b80634c261247146107e45780634f8a1db514610804578063518302271461082557806355f804b31461084657600080fd5b8063437552c0116102e8578063437552c014610741578063438b63001461076157806344a0d68a1461078e57806344d19d2b146107ae57806347d616bc146107c457600080fd5b80633ccfd60b146106f15780633e57bb141461070657806342842e0e1461070e57806342bba11a1461072e57600080fd5b806318160ddd1161039c57806328e3a0b21161036b57806328e3a0b2146106535780632a55205a146106695780632b80183f146106a85780632dfa9d00146106c85780633912fc85146106de57600080fd5b806318160ddd146105e85780631e13f86b146105fd578063234cb0511461061d57806323b872dd1461063357600080fd5b80630798e5c9116103d85780630798e5c914610563578063081812fc1461057a578063095ea7b3146105b257806313faede6146105d257600080fd5b806301ffc9a7146104be578063048d228b146104f357806305e79db21461052157806306fdde031461054157600080fd5b366104b9576000610419601b5490565b600754909150600160b81b900460ff161515600114801561043a5750600081115b156104b657600081601154600e546011546104559190613bc4565b61045f9034613bf2565b6104699190613c06565b6104739190613bf2565b905060006104818383613c06565b905081601360008282546104959190613bc4565b9250508190555080601560008282546104ae9190613bc4565b909155505050505b50005b600080fd5b3480156104ca57600080fd5b506104de6104d9366004613c3b565b610cc3565b60405190151581526020015b60405180910390f35b3480156104ff57600080fd5b5061051361050e366004613c74565b610cee565b6040519081526020016104ea565b34801561052d57600080fd5b5061051361053c366004613c8f565b610d51565b34801561054d57600080fd5b50610556610dcc565b6040516104ea9190613d00565b34801561056f57600080fd5b50610578610e5e565b005b34801561058657600080fd5b5061059a610595366004613c8f565b610ea9565b6040516001600160a01b0390911681526020016104ea565b3480156105be57600080fd5b506105786105cd366004613d13565b610f3e565b3480156105de57600080fd5b50610513600a5481565b3480156105f457600080fd5b50610513611054565b34801561060957600080fd5b50610578610618366004613c8f565b611064565b34801561062957600080fd5b5061051360105481565b34801561063f57600080fd5b5061057861064e366004613d3d565b611093565b34801561065f57600080fd5b5061051360125481565b34801561067557600080fd5b50610689610684366004613d79565b6110c4565b604080516001600160a01b0390931683526020830191909152016104ea565b3480156106b457600080fd5b506105786106c3366004613c8f565b6110f9565b3480156106d457600080fd5b50610513600d5481565b6105786106ec366004613c8f565b611128565b3480156106fd57600080fd5b5061057861159b565b610578611858565b34801561071a57600080fd5b50610578610729366004613d3d565b6119db565b61057861073c366004613c8f565b6119f6565b34801561074d57600080fd5b5061057861075c366004613c8f565b611b6a565b34801561076d57600080fd5b5061078161077c366004613c74565b611b99565b6040516104ea9190613d9b565b34801561079a57600080fd5b506105786107a9366004613c8f565b611c7a565b3480156107ba57600080fd5b50610513600c5481565b3480156107d057600080fd5b506105786107df366004613c8f565b611ca9565b3480156107f057600080fd5b506105786107ff366004613e6b565b611cd8565b34801561081057600080fd5b506007546104de90600160b81b900460ff1681565b34801561083157600080fd5b506007546104de90600160a81b900460ff1681565b34801561085257600080fd5b50610578610861366004613e6b565b611d21565b34801561087257600080fd5b50610578610881366004613c8f565b611d62565b34801561089257600080fd5b506007546104de90600160a01b900460ff1681565b3480156108b357600080fd5b5061059a6108c2366004613c8f565b611d91565b3480156108d357600080fd5b506105786108e2366004613c8f565b611e08565b3480156108f357600080fd5b50610513610902366004613c74565b611e37565b34801561091357600080fd5b50610578610922366004613eb4565b611ebe565b34801561093357600080fd5b50610513610942366004613c8f565b611f16565b34801561095357600080fd5b50610967610962366004613c8f565b611f8c565b6040516104ea9190613ede565b610578612052565b34801561098857600080fd5b50610578610997366004613c8f565b61218d565b3480156109a857600080fd5b506007546001600160a01b031661059a565b3480156109c657600080fd5b506105786109d5366004613c8f565b6121bc565b3480156109e657600080fd5b506105786121eb565b3480156109fb57600080fd5b50610556612236565b348015610a1057600080fd5b50610a24610a1f366004613c8f565b612245565b6040805192151583526020830191909152016104ea565b610578610a49366004613c8f565b6122a9565b348015610a5a57600080fd5b506007546104de90600160b01b900460ff1681565b348015610a7b57600080fd5b5061057861256b565b348015610a9057600080fd5b50610578610a9f366004613f12565b6125b6565b348015610ab057600080fd5b50610578610abf366004613d79565b6125c1565b348015610ad057600080fd5b50610578610adf366004613c8f565b61289b565b348015610af057600080fd5b50610578610aff366004613e6b565b612a52565b348015610b1057600080fd5b50610513610b1f366004613c74565b612a8f565b610578612aea565b348015610b3857600080fd5b50610578610b47366004613f4e565b612ba5565b348015610b5857600080fd5b5061051360135481565b348015610b6e57600080fd5b50610556610b7d366004613c8f565b612bdd565b348015610b8e57600080fd5b50610513600b5481565b348015610ba457600080fd5b50610578610bb3366004613c8f565b612cbb565b610578612cea565b348015610bcc57600080fd5b5061051360145481565b348015610be257600080fd5b5061051360155481565b348015610bf857600080fd5b5061051360115481565b348015610c0e57600080fd5b506104de610c1d366004613eb4565b612d98565b348015610c2e57600080fd5b50610513600e5481565b610578610c46366004613c8f565b612dc6565b348015610c5757600080fd5b50610c60612f27565b6040516104ea9190613fca565b348015610c7957600080fd5b50610578610c88366004613c74565b612fb1565b348015610c9957600080fd5b50610578610ca836600461407f565b613049565b348015610cb957600080fd5b50610513600f5481565b60006001600160e01b0319821663152a902d60e11b1480610ce85750610ce882613223565b92915050565b600080610cfa83611b99565b90506000805b8251811015610d4957610d2b838281518110610d1e57610d1e6140eb565b6020026020010151610d51565b610d359083613bc4565b915080610d4181614101565b915050610d00565b509392505050565b600081610d5d601b5490565b1015610db05760405162461bcd60e51b815260206004820152601b60248201527f517565727920666f72206e6f6e6578697374656e7420746f6b656e000000000060448201526064015b60405180910390fd5b600082815260176020526040902054601354610ce8919061411c565b606060008054610ddb90614133565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0790614133565b8015610e545780601f10610e2957610100808354040283529160200191610e54565b820191906000526020600020905b815481529060010190602001808311610e3757829003601f168201915b5050505050905090565b6007546001600160a01b03163314610e885760405162461bcd60e51b8152600401610da79061416e565b6007805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000818152600260205260408120546001600160a01b0316610f225760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610da7565b506000908152600460205260409020546001600160a01b031690565b6000610f4982611d91565b9050806001600160a01b0316836001600160a01b03161415610fb75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610da7565b336001600160a01b0382161480610fd35750610fd38133612d98565b6110455760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610da7565b61104f8383613273565b505050565b600061105f601b5490565b905090565b6007546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610da79061416e565b600c55565b61109d33826132e1565b6110b95760405162461bcd60e51b8152600401610da7906141a3565b61104f8383836133b8565b601154600e543091600091612710916110dc91613bc4565b6110e69085613c06565b6110f09190613bf2565b90509250929050565b6007546001600160a01b031633146111235760405162461bcd60e51b8152600401610da79061416e565b600e55565b6002600654141561114b5760405162461bcd60e51b8152600401610da7906141f4565b600260065560008061115c83612245565b915091508161117d5760405162461bcd60e51b8152600401610da79061422b565b6000601a8281548110611192576111926140eb565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b031690820152600390910154606082015290506111e53390565b6001600160a01b031681604001516001600160a01b0316141561127c5760405162461bcd60e51b815260206004820152604360248201527f455243373231204d61726b6574706c6163653a20427579657220616e6420736560448201527f6c6c6572206d75737420626520626520646966666572656e742061646472657360648201526273657360e81b608482015260a401610da7565b80602001513410156112df5760405162461bcd60e51b815260206004820152602660248201527f455243373231204d61726b6574706c6163653a20496e73756666696369656e746044820152652066756e647360d01b6064820152608401610da7565b6000612710600e54346112f29190613c06565b6112fc9190613bf2565b90506000600161130b601b5490565b611315919061411c565b612710601154346113269190613c06565b6113309190613bf2565b61133a9190613bf2565b905060006001611349601b5490565b611353919061411c565b61135d9083613c06565b601a8054919250906113719060019061411c565b81548110611381576113816140eb565b9060005260206000209060040201601a86815481106113a2576113a26140eb565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b03909216919091179055600391820154910155601a80548061140157611401614272565b600082815260208120600460001990930192830201818155600181018290556002810180546001600160a01b031916905560030181905591556013805484929061144c908490613bc4565b90915550506000878152601760205260408120805484929061146f908490613bc4565b9250508190555080601560008282546114889190613bc4565b909155503390506001600160a01b031684604001516001600160a01b0316887f3d5eb834b5d6cadc063c171c3f25f60bca8ea892ba9db25342278927d0af9556346040516114d891815260200190565b60405180910390a461150584604001516114ef3390565b896040518060200160405280600081525061355f565b60408401516000906001600160a01b03166115208386613bc4565b61152a903461411c565b604051600081818185875af1925050503d8060008114611566576040519150601f19603f3d011682016040523d82523d6000602084013e61156b565b606091505b505090508061158c5760405162461bcd60e51b8152600401610da790614288565b50506001600655505050505050565b6007546001600160a01b031633146115c55760405162461bcd60e51b8152600401610da79061416e565b60006015546014546115d79190613bc4565b9050600060646115e7834761411c565b6115f290600a613c06565b6115fc9190613bf2565b6018549091506000906001600160a01b0316611619836003613c06565b604051600081818185875af1925050503d8060008114611655576040519150601f19603f3d011682016040523d82523d6000602084013e61165a565b606091505b50509050806116bf5760405162461bcd60e51b815260206004820152603f602482015260008051602061454b83398151915260448201527f736665722066756e647320746f20636f6d6d756e6974792077616c6c657421006064820152608401610da7565b6019546040516000916001600160a01b03169084908381818185875af1925050503d806000811461170c576040519150601f19603f3d011682016040523d82523d6000602084013e611711565b606091505b50509050806117765760405162461bcd60e51b815260206004820152603e602482015260008051602061454b83398151915260448201527f736665722066756e647320746f20646f6e6174696f6e2077616c6c65742100006064820152608401610da7565b600061178a6007546001600160a01b031690565b6001600160a01b0316600f54866117a19190613bc4565b6117ab904761411c565b604051600081818185875af1925050503d80600081146117e7576040519150601f19603f3d011682016040523d82523d6000602084013e6117ec565b606091505b50509050806118515760405162461bcd60e51b815260206004820152603f602482015260008051602061454b83398151915260448201527f736665722066756e647320746f20746865206f776e65722077616c6c657421006064820152608401610da7565b5050505050565b6002600654141561187b5760405162461bcd60e51b8152600401610da7906141f4565b6002600655600061188b33610cee565b9050600081116118ad5760405162461bcd60e51b8152600401610da7906142c0565b60006118b833611b99565b905060005b815181101561190b5760008282815181106118da576118da6140eb565b602090810291909101810151601354600091825260179092526040902055508061190381614101565b9150506118bd565b50816015600082825461191e919061411c565b9091555050604051600090339084908381818185875af1925050503d8060008114611965576040519150601f19603f3d011682016040523d82523d6000602084013e61196a565b606091505b505090508061198b5760405162461bcd60e51b8152600401610da790614288565b6002335b6001600160a01b03167fd5803ea2a72e3d43ba8dfbcbde26efe91ba6901d868467b86ef6163baa185ba9856040516119c991815260200190565b60405180910390a35050600160065550565b61104f83838360405180602001604052806000815250612ba5565b60026006541415611a195760405162461bcd60e51b8152600401610da7906141f4565b60026006556000611a2982611d91565b9050336001600160a01b03821614611a535760405162461bcd60e51b8152600401610da7906142f7565b6000611a5e83610d51565b905060008111611a805760405162461bcd60e51b8152600401610da7906142c0565b8060156000828254611a92919061411c565b90915550506013546000848152601760205260408082209290925590516001600160a01b0384169083908381818185875af1925050503d8060008114611af4576040519150601f19603f3d011682016040523d82523d6000602084013e611af9565b606091505b5050905080611b1a5760405162461bcd60e51b8152600401610da790614288565b6002836001600160a01b03167fd5803ea2a72e3d43ba8dfbcbde26efe91ba6901d868467b86ef6163baa185ba984604051611b5791815260200190565b60405180910390a3505060016006555050565b6007546001600160a01b03163314611b945760405162461bcd60e51b8152600401610da79061416e565b600f55565b60606000611ba683611e37565b905060008167ffffffffffffffff811115611bc357611bc3613ddf565b604051908082528060200260200182016040528015611bec578160200160208202803683370190505b509050600160005b8381108015611c055750600b548211155b15611c70576000611c1583611d91565b9050866001600160a01b0316816001600160a01b03161415611c5d5782848381518110611c4457611c446140eb565b602090810291909101015281611c5981614101565b9250505b82611c6781614101565b93505050611bf4565b5090949350505050565b6007546001600160a01b03163314611ca45760405162461bcd60e51b8152600401610da79061416e565b600a55565b6007546001600160a01b03163314611cd35760405162461bcd60e51b8152600401610da79061416e565b601255565b6007546001600160a01b03163314611d025760405162461bcd60e51b8152600401610da79061416e565b6007805460ff60a81b1916600160a81b179055611d1e81611d21565b50565b6007546001600160a01b03163314611d4b5760405162461bcd60e51b8152600401610da79061416e565b8051611d5e906008906020840190613b15565b5050565b6007546001600160a01b03163314611d8c5760405162461bcd60e51b8152600401610da79061416e565b601155565b6000818152600260205260408120546001600160a01b031680610ce85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610da7565b6007546001600160a01b03163314611e325760405162461bcd60e51b8152600401610da79061416e565b600b55565b60006001600160a01b038216611ea25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610da7565b506001600160a01b031660009081526003602052604090205490565b6007546001600160a01b03163314611ee85760405162461bcd60e51b8152600401610da79061416e565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b600081611f22601b5490565b1015611f705760405162461bcd60e51b815260206004820152601b60248201527f517565727920666f72206e6f6e6578697374656e7420746f6b656e00000000006044820152606401610da7565b600082815260166020526040902054601254610ce8919061411c565b611fc06040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b600080611fcc84612245565b9150915081611fed5760405162461bcd60e51b8152600401610da79061422b565b601a8181548110612000576120006140eb565b60009182526020918290206040805160808101825260049093029091018054835260018101549383019390935260028301546001600160a01b0316908201526003909101546060820152949350505050565b600260065414156120755760405162461bcd60e51b8152600401610da7906141f4565b6002600655600061208533612a8f565b9050600081116120a75760405162461bcd60e51b8152600401610da7906142c0565b60006120b233611b99565b905060005b81518110156121055760008282815181106120d4576120d46140eb565b60209081029190910181015160125460009182526016909252604090205550806120fd81614101565b9150506120b7565b508160146000828254612118919061411c565b9091555050604051600090339084908381818185875af1925050503d806000811461215f576040519150601f19603f3d011682016040523d82523d6000602084013e612164565b606091505b50509050806121855760405162461bcd60e51b8152600401610da790614288565b60013361198f565b6007546001600160a01b031633146121b75760405162461bcd60e51b8152600401610da79061416e565b601355565b6007546001600160a01b031633146121e65760405162461bcd60e51b8152600401610da79061416e565b600d55565b6007546001600160a01b031633146122155760405162461bcd60e51b8152600401610da79061416e565b6007805460ff60a01b198116600160a01b9182900460ff1615909102179055565b606060018054610ddb90614133565b60008060005b601a548110156122a35783601a8281548110612269576122696140eb565b9060005260206000209060040201600001541461228557612291565b600192508091506122a3565b8061229b81614101565b91505061224b565b50915091565b600260065414156122cc5760405162461bcd60e51b8152600401610da7906141f4565b600260065580158015906122e25750600d548111155b6123245760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b5a5b9d08185b5bdd5b9d606a1b6044820152606401610da7565b600081612330601b5490565b61233a9190613bc4565b9050600b5481111561238a5760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610da7565b600c54600b5461239a919061411c565b8111156123e95760405162461bcd60e51b815260206004820152601d60248201527f52656d61696e696e6720746f6b656e73206172652072657365727665640000006044820152606401610da7565b600754600160a01b900460ff16156124375760405162461bcd60e51b8152602060048201526011602482015270135a5b9d1a5b99c81a5cc81c185d5cd959607a1b6044820152606401610da7565b81600a546124459190613c06565b3410156124895760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610da7565b600080612495601b5490565b90506124a13385613592565b60005b848110156125485781156125165760008286612710601054346124c79190613c06565b6124d19190613bf2565b6124db9190613bf2565b6124e59190613bf2565b90506124f18382613c06565b6124fb9085613bc4565b9350806012600082825461250f9190613bc4565b9091555050505b8161252081614101565b601254600082815260166020526040902055925081905061254081614101565b9150506124a4565b50816014600082825461255b9190613bc4565b9091555050600160065550505050565b6007546001600160a01b031633146125955760405162461bcd60e51b8152600401610da79061416e565b6007805460ff60b01b198116600160b01b9182900460ff1615909102179055565b611d5e3383836135cf565b600260065414156125e45760405162461bcd60e51b8152600401610da7906141f4565b6002600655600754600160b01b900460ff1661265e5760405162461bcd60e51b815260206004820152603360248201527f455243373231204d61726b6574706c6163653a204c697374696e6773206172656044820152720818dd5c9c995b9d1b1e48191a5cd8589b1959606a1b6064820152608401610da7565b600081116126c05760405162461bcd60e51b815260206004820152602960248201527f455243373231204d61726b6574706c6163653a20496e76616c6964206c697374604482015268696e6720707269636560b81b6064820152608401610da7565b336126ca83611d91565b6001600160a01b0316146126f05760405162461bcd60e51b8152600401610da790614342565b60006126fb83612245565b50905080156127605760405162461bcd60e51b815260206004820152602b60248201527f455243373231204d61726b6574706c6163653a20546f6b656e20697320616c7260448201526a1958591e481b1a5cdd195960aa1b6064820152608401610da7565b600060405180608001604052808581526020018481526020016127803390565b6001600160a01b03908116825242602092830152601a805460018101825560009190915283517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e600490920291820155918301517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63f83015560408301517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff640830180546001600160a01b0319169190921617905560608201517f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff641909101559050336001600160a01b0316847fda5118e11956b6ccec7a349074d6efada2b70b987d2eabba029de60d8f67b1aa85604051611b5791815260200190565b600260065414156128be5760405162461bcd60e51b8152600401610da7906141f4565b60026006556000806128cf83612245565b91509150816128f05760405162461bcd60e51b8152600401610da79061422b565b336001600160a01b0316601a828154811061290d5761290d6140eb565b60009182526020909120600260049092020101546001600160a01b0316146129475760405162461bcd60e51b8152600401610da790614342565b601a80546129579060019061411c565b81548110612967576129676140eb565b9060005260206000209060040201601a8281548110612988576129886140eb565b6000918252602090912082546004909202019081556001808301549082015560028083015490820180546001600160a01b0319166001600160a01b03909216919091179055600391820154910155601a8054806129e7576129e7614272565b600082815260208120600460001990930192830201818155600181018290556002810180546001600160a01b0319169055600301819055915560405184917fd61f1a8b7be6805af2e554cc25e9395d458bbd556fa7c01c166ffbd9197347de91a25050600160065550565b6007546001600160a01b03163314612a7c5760405162461bcd60e51b8152600401610da79061416e565b8051611d5e906009906020840190613b15565b600080612a9b83611b99565b90506000805b8251811015610d4957612acc838281518110612abf57612abf6140eb565b6020026020010151611f16565b612ad69083613bc4565b915080612ae281614101565b915050612aa1565b6007546001600160a01b03163314612b145760405162461bcd60e51b8152600401610da79061416e565b6000612b1f601b5490565b90506000612b2d8234613bf2565b90506000612b3b8383613c06565b90508160126000828254612b4f9190613bc4565b925050819055508060146000828254612b689190613bc4565b90915550506040513481527ff47d3b5520326a887c3a79604ff206e16718a200fe11d7f3b555b2a4ddd93faa9060200160405180910390a1505050565b612baf33836132e1565b612bcb5760405162461bcd60e51b8152600401610da7906141a3565b612bd78484848461355f565b50505050565b6000818152600260205260409020546060906001600160a01b0316612c5c5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610da7565b6000612c6661369e565b90506000815111612c865760405180602001604052806000815250612cb4565b80612c90846136ad565b6009604051602001612ca49392919061438d565b6040516020818303038152906040525b9392505050565b6007546001600160a01b03163314612ce55760405162461bcd60e51b8152600401610da79061416e565b601055565b6007546001600160a01b03163314612d145760405162461bcd60e51b8152600401610da79061416e565b6000612d286007546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114612d72576040519150601f19603f3d011682016040523d82523d6000602084013e612d77565b606091505b5050905080611d1e5760405162461bcd60e51b8152600401610da790614288565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60026006541415612de95760405162461bcd60e51b8152600401610da7906141f4565b60026006556000612df982611d91565b9050336001600160a01b03821614612e235760405162461bcd60e51b8152600401610da7906142f7565b6000612e2e83611f16565b905060008111612e505760405162461bcd60e51b8152600401610da7906142c0565b8060146000828254612e62919061411c565b90915550506012546000848152601660205260408082209290925590516001600160a01b0384169083908381818185875af1925050503d8060008114612ec4576040519150601f19603f3d011682016040523d82523d6000602084013e612ec9565b606091505b5050905080612eea5760405162461bcd60e51b8152600401610da790614288565b6001836001600160a01b03167fd5803ea2a72e3d43ba8dfbcbde26efe91ba6901d868467b86ef6163baa185ba984604051611b5791815260200190565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015612fa85760008481526020908190206040805160808101825260048602909201805483526001808201548486015260028201546001600160a01b0316928401929092526003015460608301529083529092019101612f4b565b50505050905090565b6007546001600160a01b03163314612fdb5760405162461bcd60e51b8152600401610da79061416e565b6001600160a01b0381166130405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610da7565b611d1e816137ab565b6007546001600160a01b031633146130735760405162461bcd60e51b8152600401610da79061416e565b82811461308257613082614451565b821580159061309057508015155b61309c5761309c614451565b6000805b828110156130f0578383828181106130ba576130ba6140eb565b90506020020160208101906130cf9190614467565b6130dc9060ff1683613bc4565b9150806130e881614101565b9150506130a0565b50600b54816130fe601b5490565b6131089190613bc4565b11156131525760405162461bcd60e51b815260206004820152601960248201527813585e081d1bdad95b881cdd5c1c1b1e48195e18d959591959603a1b6044820152606401610da7565b60005b8481101561321b576000848483818110613171576131716140eb565b90506020020160208101906131869190614467565b905060005b8160ff16811015613206576131a4601b80546001019055565b60006131af601b5490565b90506131e18989868181106131c6576131c66140eb565b90506020020160208101906131db9190613c74565b826137fd565b60125460009182526016602052604090912055806131fe81614101565b91505061318b565b5050808061321390614101565b915050613155565b505050505050565b60006001600160e01b031982166380ac58cd60e01b148061325457506001600160e01b03198216635b5e139f60e01b145b80610ce857506301ffc9a760e01b6001600160e01b0319831614610ce8565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906132a882611d91565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b031661335a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610da7565b600061336583611d91565b9050806001600160a01b0316846001600160a01b031614806133a05750836001600160a01b031661339584610ea9565b6001600160a01b0316145b806133b057506133b08185612d98565b949350505050565b826001600160a01b03166133cb82611d91565b6001600160a01b03161461342f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610da7565b6001600160a01b0382166134915760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610da7565b61349c838383613817565b6134a7600082613273565b6001600160a01b03831660009081526003602052604081208054600192906134d090849061411c565b90915550506001600160a01b03821660009081526003602052604081208054600192906134fe908490613bc4565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61356a8484846133b8565b61357684848484613896565b612bd75760405162461bcd60e51b8152600401610da79061448a565b60005b8181101561104f576135ab601b80546001019055565b6135bd836135b8601b5490565b6137fd565b806135c781614101565b915050613595565b816001600160a01b0316836001600160a01b031614156136315760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610da7565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606060088054610ddb90614133565b6060816136d15750506040805180820190915260018152600360fc1b602082015290565b8160005b81156136fb57806136e581614101565b91506136f49050600a83613bf2565b91506136d5565b60008167ffffffffffffffff81111561371657613716613ddf565b6040519080825280601f01601f191660200182016040528015613740576020820181803683370190505b5090505b84156133b05761375560018361411c565b9150613762600a866144dc565b61376d906030613bc4565b60f81b818381518110613782576137826140eb565b60200101906001600160f81b031916908160001a9053506137a4600a86613bf2565b9450613744565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611d5e828260405180602001604052806000815250613994565b600061382282612245565b50905080156138915760405162461bcd60e51b815260206004820152603560248201527f455243373231204d61726b6574706c6163653a20556e61626c6520746f20747260448201527430b739b332b91030903634b9ba32b2103a37b5b2b760591b6064820152608401610da7565b612bd7565b60006001600160a01b0384163b1561398957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906138da9033908990889088906004016144f0565b6020604051808303816000875af1925050508015613915575060408051601f3d908101601f191682019092526139129181019061452d565b60015b61396f573d808015613943576040519150601f19603f3d011682016040523d82523d6000602084013e613948565b606091505b5080516139675760405162461bcd60e51b8152600401610da79061448a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506133b0565b506001949350505050565b61399e83836139c7565b6139ab6000848484613896565b61104f5760405162461bcd60e51b8152600401610da79061448a565b6001600160a01b038216613a1d5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610da7565b6000818152600260205260409020546001600160a01b031615613a825760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610da7565b613a8e60008383613817565b6001600160a01b0382166000908152600360205260408120805460019290613ab7908490613bc4565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054613b2190614133565b90600052602060002090601f016020900481019282613b435760008555613b89565b82601f10613b5c57805160ff1916838001178555613b89565b82800160010185558215613b89579182015b82811115613b89578251825591602001919060010190613b6e565b50613b95929150613b99565b5090565b5b80821115613b955760008155600101613b9a565b634e487b7160e01b600052601160045260246000fd5b60008219821115613bd757613bd7613bae565b500190565b634e487b7160e01b600052601260045260246000fd5b600082613c0157613c01613bdc565b500490565b6000816000190483118215151615613c2057613c20613bae565b500290565b6001600160e01b031981168114611d1e57600080fd5b600060208284031215613c4d57600080fd5b8135612cb481613c25565b80356001600160a01b0381168114613c6f57600080fd5b919050565b600060208284031215613c8657600080fd5b612cb482613c58565b600060208284031215613ca157600080fd5b5035919050565b60005b83811015613cc3578181015183820152602001613cab565b83811115612bd75750506000910152565b60008151808452613cec816020860160208601613ca8565b601f01601f19169290920160200192915050565b602081526000612cb46020830184613cd4565b60008060408385031215613d2657600080fd5b613d2f83613c58565b946020939093013593505050565b600080600060608486031215613d5257600080fd5b613d5b84613c58565b9250613d6960208501613c58565b9150604084013590509250925092565b60008060408385031215613d8c57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015613dd357835183529284019291840191600101613db7565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115613e1057613e10613ddf565b604051601f8501601f19908116603f01168101908282118183101715613e3857613e38613ddf565b81604052809350858152868686011115613e5157600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215613e7d57600080fd5b813567ffffffffffffffff811115613e9457600080fd5b8201601f81018413613ea557600080fd5b6133b084823560208401613df5565b60008060408385031215613ec757600080fd5b613ed083613c58565b91506110f060208401613c58565b81518152602080830151908201526040808301516001600160a01b0316908201526060808301519082015260808101610ce8565b60008060408385031215613f2557600080fd5b613f2e83613c58565b915060208301358015158114613f4357600080fd5b809150509250929050565b60008060008060808587031215613f6457600080fd5b613f6d85613c58565b9350613f7b60208601613c58565b925060408501359150606085013567ffffffffffffffff811115613f9e57600080fd5b8501601f81018713613faf57600080fd5b613fbe87823560208401613df5565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015613dd35761402083855180518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b9284019260809290920191600101613fe6565b60008083601f84011261404557600080fd5b50813567ffffffffffffffff81111561405d57600080fd5b6020830191508360208260051b850101111561407857600080fd5b9250929050565b6000806000806040858703121561409557600080fd5b843567ffffffffffffffff808211156140ad57600080fd5b6140b988838901614033565b909650945060208701359150808211156140d257600080fd5b506140df87828801614033565b95989497509550505050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561411557614115613bae565b5060010190565b60008282101561412e5761412e613bae565b500390565b600181811c9082168061414757607f821691505b6020821081141561416857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526027908201527f455243373231204d61726b6574706c6163653a20546f6b656e206973206e6f74604082015266081b1a5cdd195960ca1b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6020808252602a9082015260008051602061454b833981519152604082015269736665722066756e647360b01b606082015260800190565b6020808252601a908201527f596f7520646f6e2774206861766520616e792072657761726473000000000000604082015260600190565b6020808252602b908201527f4f6e6c7920746865206f776e6572206f66206120746f6b656e2063616e20636c60408201526a61696d207265776172647360a81b606082015260800190565b6020808252602b908201527f455243373231204d61726b6574706c6163653a2043616c6c6572206973206e6f60408201526a3a103a34329037bbb732b960a91b606082015260800190565b6000845160206143a08285838a01613ca8565b8551918401916143b38184848a01613ca8565b8554920191600090600181811c90808316806143d057607f831692505b8583108114156143ee57634e487b7160e01b85526022600452602485fd5b808015614402576001811461441357614440565b60ff19851688528388019550614440565b60008b81526020902060005b858110156144385781548a82015290840190880161441f565b505083880195505b50939b9a5050505050505050505050565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561447957600080fd5b813560ff81168114612cb457600080fd5b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826144eb576144eb613bdc565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061452390830184613cd4565b9695505050505050565b60006020828403121561453f57600080fd5b8151612cb481613c2556fe41564158205472616e73616374696f6e3a204661696c656420746f207472616ea2646970667358221220dcaf9c2f38ae033c853b42afc7ce25f35277d62c77c2b4d7a9ad9e418db33baf64736f6c634300080b003300000000000000000000000010bde4a513e26e25b30402458d60febd02c99c8d000000000000000000000000292f22b2fc32dd004e8b76bb058e6324288f8931
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000010bde4a513e26e25b30402458d60febd02c99c8d000000000000000000000000292f22b2fc32dd004e8b76bb058e6324288f8931
-----Decoded View---------------
Arg [0] : _initCommunityAddress (address): 0x10bde4a513e26e25b30402458d60febd02c99c8d
Arg [1] : _initDonationAddress (address): 0x292f22b2fc32dd004e8b76bb058e6324288f8931
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000010bde4a513e26e25b30402458d60febd02c99c8d
Arg [1] : 000000000000000000000000292f22b2fc32dd004e8b76bb058e6324288f8931
Deployed ByteCode Sourcemap
13580:15912:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29072:21;29096:16;:6;2978:14;;2893:104;29096:16;29123:33;;29072:40;;-1:-1:-1;;;;29123:33:0;;;;:41;;29160:4;29123:41;:62;;;;;29184:1;29168:13;:17;29123:62;29119:366;;;29193:34;29286:13;29271:12;;29258:9;;29243:12;;:24;;;;:::i;:::-;29230:38;;:9;:38;:::i;:::-;:53;;;;:::i;:::-;:69;;;;:::i;:::-;29193:106;-1:-1:-1;29305:24:0;29332:42;29361:13;29193:106;29332:42;:::i;:::-;29305:69;;29403:26;29382:17;;:47;;;;;;;:::i;:::-;;;;;;;;29463:16;29437:22;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;29119:366:0;29067:422;13580:15912;;;;;15713:189;;;;;;;;;;-1:-1:-1;15713:189:0;;;;;:::i;:::-;;:::i;:::-;;;1260:14:1;;1253:22;1235:41;;1223:2;1208:18;15713:189:0;;;;;;;;26354:285;;;;;;;;;;-1:-1:-1;26354:285:0;;;;;:::i;:::-;;:::i;:::-;;;1802:25:1;;;1790:2;1775:18;26354:285:0;1656:177:1;26873:227:0;;;;;;;;;;-1:-1:-1;26873:227:0;;;;;:::i;:::-;;:::i;7879:90::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17811:146::-;;;;;;;;;;;;;:::i;:::-;;8833:205;;;;;;;;;;-1:-1:-1;8833:205:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2938:32:1;;;2920:51;;2908:2;2893:18;8833:205:0;2774:203:1;8481:347:0;;;;;;;;;;-1:-1:-1;8481:347:0;;;;;:::i;:::-;;:::i;13903:19::-;;;;;;;;;;;;;;;;25420:85;;;;;;;;;;;;;:::i;27403:99::-;;;;;;;;;;-1:-1:-1;27403:99:0;;;;;:::i;:::-;;:::i;14081:26::-;;;;;;;;;;;;;;;;9353:284;;;;;;;;;;-1:-1:-1;9353:284:0;;;;;:::i;:::-;;:::i;14142:31::-;;;;;;;;;;;;;;;;21877:223;;;;;;;;;;-1:-1:-1;21877:223:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;4019:32:1;;;4001:51;;4083:2;4068:18;;4061:34;;;;3974:18;21877:223:0;3827:274:1;27893:87:0;;;;;;;;;;-1:-1:-1;27893:87:0;;;;;:::i;:::-;;:::i;13989:33::-;;;;;;;;;;;;;;;;23142:1315;;;;;;:::i;:::-;;:::i;20540:753::-;;;;;;;;;;;;;:::i;19307:627::-;;;:::i;9642:142::-;;;;;;;;;;-1:-1:-1;9642:142:0;;;;;:::i;:::-;;:::i;19939:596::-;;;;;;:::i;:::-;;:::i;27985:77::-;;;;;;;;;;-1:-1:-1;27985:77:0;;;;;:::i;:::-;;:::i;25510:551::-;;;;;;;;;;-1:-1:-1;25510:551:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;27619:75::-;;;;;;;;;;-1:-1:-1;27619:75:0;;;;;:::i;:::-;;:::i;13954:29::-;;;;;;;;;;;;;;;;28067:103;;;;;;;;;;-1:-1:-1;28067:103:0;;;;;:::i;:::-;;:::i;17962:117::-;;;;;;;;;;-1:-1:-1;17962:117:0;;;;;:::i;:::-;;:::i;13796:45::-;;;;;;;;;;-1:-1:-1;13796:45:0;;;;-1:-1:-1;;;13796:45:0;;;;;;13743:20;;;;;;;;;;-1:-1:-1;13743:20:0;;;;-1:-1:-1;;;13743:20:0;;;;;;27107:93;;;;;;;;;;-1:-1:-1;27107:93:0;;;;;:::i;:::-;;:::i;27795:::-;;;;;;;;;;-1:-1:-1;27795:93:0;;;;;:::i;:::-;;:::i;13721:18::-;;;;;;;;;;-1:-1:-1;13721:18:0;;;;-1:-1:-1;;;13721:18:0;;;;;;7653:221;;;;;;;;;;-1:-1:-1;7653:221:0;;;;;:::i;:::-;;:::i;27309:89::-;;;;;;;;;;-1:-1:-1;27309:89:0;;;;;:::i;:::-;;:::i;7454:194::-;;;;;;;;;;-1:-1:-1;7454:194:0;;;;;:::i;:::-;;:::i;28285:193::-;;;;;;;;;;-1:-1:-1;28285:193:0;;;;;:::i;:::-;;:::i;26644:224::-;;;;;;;;;;-1:-1:-1;26644:224:0;;;;;:::i;:::-;;:::i;24810:255::-;;;;;;;;;;-1:-1:-1;24810:255:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18084:622::-;;;:::i;28175:105::-;;;;;;;;;;-1:-1:-1;28175:105:0;;;;;:::i;:::-;;:::i;5535:77::-;;;;;;;;;;-1:-1:-1;5601:6:0;;-1:-1:-1;;;;;5601:6:0;5535:77;;27507:107;;;;;;;;;;-1:-1:-1;27507:107:0;;;;;:::i;:::-;;:::i;17640:70::-;;;;;;;;;;;;;:::i;7974:94::-;;;;;;;;;;;;;:::i;24462:252::-;;;;;;;;;;-1:-1:-1;24462:252:0;;;;;:::i;:::-;;:::i;:::-;;;;6969:14:1;;6962:22;6944:41;;7016:2;7001:18;;6994:34;;;;6917:18;24462:252:0;6776:258:1;15909:1014:0;;;;;;:::i;:::-;;:::i;13767:25::-;;;;;;;;;;-1:-1:-1;13767:25:0;;;;-1:-1:-1;;;13767:25:0;;;;;;17715:91;;;;;;;;;;;;;:::i;9043:146::-;;;;;;;;;;-1:-1:-1;9043:146:0;;;;;:::i;:::-;;:::i;22105:603::-;;;;;;;;;;-1:-1:-1;22105:603:0;;;;;:::i;:::-;;:::i;22713:424::-;;;;;;;;;;-1:-1:-1;22713:424:0;;;;;:::i;:::-;;:::i;27209:95::-;;;;;;;;;;-1:-1:-1;27209:95:0;;;;;:::i;:::-;;:::i;26066:283::-;;;;;;;;;;-1:-1:-1;26066:283:0;;;;;:::i;:::-;;:::i;21512:358::-;;;:::i;9789:272::-;;;;;;;;;;-1:-1:-1;9789:272:0;;;;;:::i;:::-;;:::i;14177:32::-;;;;;;;;;;;;;;;;25070:345;;;;;;;;;;-1:-1:-1;25070:345:0;;;;;:::i;:::-;;:::i;13926:24::-;;;;;;;;;;;;;;;;27699:91;;;;;;;;;;-1:-1:-1;27699:91:0;;;;;:::i;:::-;;:::i;21298:209::-;;;:::i;14213:36::-;;;;;;;;;;;;;;;;14253:37;;;;;;;;;;;;;;;;14111:27;;;;;;;;;;;;;;;;9194:154;;;;;;;;;;-1:-1:-1;9194:154:0;;;;;:::i;:::-;;:::i;14028:24::-;;;;;;;;;;;;;;;;18711:591;;;;;;:::i;:::-;;:::i;24719:86::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5729:188::-;;;;;;;;;;-1:-1:-1;5729:188:0;;;;;:::i;:::-;;:::i;16928:705::-;;;;;;;;;;-1:-1:-1;16928:705:0;;;;;:::i;:::-;;:::i;14056:19::-;;;;;;;;;;;;;;;;15713:189;15789:4;-1:-1:-1;;;;;;15807:50:0;;-1:-1:-1;;;15807:50:0;;:90;;;15861:36;15885:11;15861:23;:36::i;:::-;15800:97;15713:189;-1:-1:-1;;15713:189:0:o;26354:285::-;26426:7;26440:23;26466;26480:8;26466:13;:23::i;:::-;26440:49;;26494:13;26523:9;26518:98;26542:6;:13;26538:1;:17;26518:98;;;26577:33;26600:6;26607:1;26600:9;;;;;;;;:::i;:::-;;;;;;;26577:22;:33::i;:::-;26568:42;;;;:::i;:::-;;-1:-1:-1;26557:3:0;;;;:::i;:::-;;;;26518:98;;;-1:-1:-1;26629:5:0;26354:285;-1:-1:-1;;;26354:285:0:o;26873:227::-;26942:7;26984;26964:16;:6;2978:14;;2893:104;26964:16;:27;;26956:67;;;;-1:-1:-1;;;26956:67:0;;10393:2:1;26956:67:0;;;10375:21:1;10432:2;10412:18;;;10405:30;10471:29;10451:18;;;10444:57;10518:18;;26956:67:0;;;;;;;;;27057:38;;;;:29;:38;;;;;;27037:17;;:58;;27057:38;27037:58;:::i;7879:90::-;7932:13;7959:5;7952:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:90;:::o;17811:146::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;17919:33:::1;::::0;;-1:-1:-1;;;;17882:70:0;::::1;-1:-1:-1::0;;;17919:33:0;;;::::1;;;17918:34;17882:70:::0;;::::1;;::::0;;17811:146::o;8833:205::-;8908:7;10412:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10412:16:0;8922:73;;;;-1:-1:-1;;;8922:73:0;;11625:2:1;8922:73:0;;;11607:21:1;11664:2;11644:18;;;11637:30;11703:34;11683:18;;;11676:62;-1:-1:-1;;;11754:18:1;;;11747:42;11806:19;;8922:73:0;11423:408:1;8922:73:0;-1:-1:-1;9009:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;9009:24:0;;8833:205::o;8481:347::-;8556:13;8572:23;8587:7;8572:14;:23::i;:::-;8556:39;;8614:5;-1:-1:-1;;;;;8608:11:0;:2;-1:-1:-1;;;;;8608:11:0;;;8600:57;;;;-1:-1:-1;;;8600:57:0;;12038:2:1;8600:57:0;;;12020:21:1;12077:2;12057:18;;;12050:30;12116:34;12096:18;;;12089:62;-1:-1:-1;;;12167:18:1;;;12160:31;12208:19;;8600:57:0;11836:397:1;8600:57:0;5194:10;-1:-1:-1;;;;;8672:21:0;;;;:62;;-1:-1:-1;8697:37:0;8714:5;5194:10;9194:154;:::i;8697:37::-;8664:131;;;;-1:-1:-1;;;8664:131:0;;12440:2:1;8664:131:0;;;12422:21:1;12479:2;12459:18;;;12452:30;12518:34;12498:18;;;12491:62;12589:26;12569:18;;;12562:54;12633:19;;8664:131:0;12238:420:1;8664:131:0;8802:21;8811:2;8815:7;8802:8;:21::i;:::-;8551:277;8481:347;;:::o;25420:85::-;25463:7;25484:16;:6;2978:14;;2893:104;25484:16;25477:23;;25420:85;:::o;27403:99::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27471:14:::1;:26:::0;27403:99::o;9353:284::-;9502:41;5194:10;9535:7;9502:18;:41::i;:::-;9494:103;;;;-1:-1:-1;;;9494:103:0;;;;;;;:::i;:::-;9604:28;9614:4;9620:2;9624:7;9604:9;:28::i;21877:223::-;22058:12;;22046:9;;22009:4;;21944:16;;14736:5;;22046:24;;;:::i;:::-;22037:34;;:5;:34;:::i;:::-;:58;;;;:::i;:::-;22021:74;;21877:223;;;;;:::o;27893:87::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27955:9:::1;:20:::0;27893:87::o;23142:1315::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;23217:13:::1;::::0;23256:22:::1;23270:7:::0;23256:13:::1;:22::i;:::-;23216:62;;;;23291:8;23283:60;;;;-1:-1:-1::0;;;23283:60:0::1;;;;;;;:::i;:::-;23350:22;23375:8;23384:12;23375:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;23350:47:::1;::::0;;::::1;::::0;::::1;::::0;;23375:22:::1;::::0;;::::1;::::0;;::::1;23350:47:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;23350:47:0::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;23430:12:0::1;5194:10:::0;;5121:88;23430:12:::1;-1:-1:-1::0;;;;;23412:30:0::1;:7;:14;;;-1:-1:-1::0;;;;;23412:30:0::1;;;23404:110;;;::::0;-1:-1:-1;;;23404:110:0;;14051:2:1;23404:110:0::1;::::0;::::1;14033:21:1::0;14090:2;14070:18;;;14063:30;14129:34;14109:18;;;14102:62;14200:34;14180:18;;;14173:62;-1:-1:-1;;;14251:19:1;;;14244:34;14295:19;;23404:110:0::1;13849:471:1::0;23404:110:0::1;23540:7;:13;;;23527:9;:26;;23519:77;;;::::0;-1:-1:-1;;;23519:77:0;;14527:2:1;23519:77:0::1;::::0;::::1;14509:21:1::0;14566:2;14546:18;;;14539:30;14605:34;14585:18;;;14578:62;-1:-1:-1;;;14656:18:1;;;14649:36;14702:19;;23519:77:0::1;14325:402:1::0;23519:77:0::1;23603:22;14736:5;23640:9;;23628;:21;;;;:::i;:::-;:45;;;;:::i;:::-;23603:70;;23678:34;23786:1;23767:16;:6;2978:14:::0;;2893:104;23767:16:::1;:20;;;;:::i;:::-;14736:5;23727:12;;23715:9;:24;;;;:::i;:::-;:48;;;;:::i;:::-;:73;;;;:::i;:::-;23678:110;;23793:24;23869:1;23850:16;:6;2978:14:::0;;2893:104;23850:16:::1;:20;;;;:::i;:::-;23820:51;::::0;:26;:51:::1;:::i;:::-;23905:8;23914:15:::0;;23793:78;;-1:-1:-1;23905:8:0;23914:19:::1;::::0;23932:1:::1;::::0;23914:19:::1;:::i;:::-;23905:29;;;;;;;;:::i;:::-;;;;;;;;;;;23880:8;23889:12;23880: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;;;;;;23880:54:0::1;-1:-1:-1::0;;;;;23880:54:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;23939:8:::1;:14:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;23939:14:0;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;23939:14:0::1;::::0;;::::1;;::::0;;;;;23962:17:::1;:47:::0;;23983:26;;23939:14;23962:47:::1;::::0;23983:26;;23962:47:::1;:::i;:::-;::::0;;;-1:-1:-1;;24014:38:0::1;::::0;;;:29:::1;:38;::::0;;;;:68;;24056:26;;24014:38;:68:::1;::::0;24056:26;;24014:68:::1;:::i;:::-;;;;;;;;24115:16;24089:22;;:42;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;5194:10:0;;-1:-1:-1;;;;;;24145:59:0::1;24164:7;:14;;;-1:-1:-1::0;;;;;24145:59:0::1;24155:7;24145:59;24194:9;24145:59;;;;1802:25:1::0;;1790:2;1775:18;;1656:177;24145:59:0::1;;;;;;;;24213:56;24227:7;:14;;;24243:12;5194:10:::0;;5121:88;24243:12:::1;24257:7;24213:56;;;;;;;;;;;::::0;:13:::1;:56::i;:::-;24303:14;::::0;::::1;::::0;24277:12:::1;::::0;-1:-1:-1;;;;;24295:28:0::1;24345:33;24362:16:::0;24345:14;:33:::1;:::i;:::-;24332:47;::::0;:9:::1;:47;:::i;:::-;24295:90;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24276:109;;;24398:7;24390:62;;;;-1:-1:-1::0;;;24390:62:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;6181:1:0;6443:7;:22;-1:-1:-1;;;;;;23142:1315:0:o;20540:753::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;20582:20:::1;20629:22;;20605:21;;:46;;;;:::i;:::-;20582:69:::0;-1:-1:-1;20656:25:0::1;20730:3;20685:36;20582:69:::0;20685:21:::1;:36;:::i;:::-;20684:43;::::0;20725:2:::1;20684:43;:::i;:::-;:49;;;;:::i;:::-;20768:16;::::0;20656:77;;-1:-1:-1;20741:13:0::1;::::0;-1:-1:-1;;;;;20768:16:0::1;20799:21;20656:77:::0;20819:1:::1;20799:21;:::i;:::-;20760:66;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20740:86;;;20839:8;20831:84;;;::::0;-1:-1:-1;;;20831:84:0;;15687:2:1;20831:84:0::1;::::0;::::1;15669:21:1::0;15726:2;15706:18;;;15699:30;-1:-1:-1;;;;;;;;;;;15745:18:1;;;15738:62;15836:33;15816:18;;;15809:61;15887:19;;20831:84:0::1;15485:427:1::0;20831:84:0::1;20950:15;::::0;20942:61:::1;::::0;20923:13:::1;::::0;-1:-1:-1;;;;;20950:15:0::1;::::0;20980:17;;20923:13;20942:61;20923:13;20942:61;20980:17;20950:15;20942:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20922:81;;;21016:8;21008:83;;;::::0;-1:-1:-1;;;21008:83:0;;16119:2:1;21008:83:0::1;::::0;::::1;16101:21:1::0;16158:2;16138:18;;;16131:30;-1:-1:-1;;;;;;;;;;;16177:18:1;;;16170:62;16268:32;16248:18;;;16241:60;16318:19;;21008:83:0::1;15917:426:1::0;21008:83:0::1;21099:13;21126:7;5601:6:::0;;-1:-1:-1;;;;;5601:6:0;;5535:77;21126:7:::1;-1:-1:-1::0;;;;;21118:21:0::1;21188:4;;21173:12;:19;;;;:::i;:::-;21148:45;::::0;:21:::1;:45;:::i;:::-;21118:81;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21098:101;;;21212:8;21204:84;;;::::0;-1:-1:-1;;;21204:84:0;;16550:2:1;21204:84:0::1;::::0;::::1;16532:21:1::0;16589:2;16569:18;;;16562:30;-1:-1:-1;;;;;;;;;;;16608:18:1;;;16601:62;16699:33;16679:18;;;16672:61;16750:19;;21204:84:0::1;16348:427:1::0;21204:84:0::1;20577:716;;;;;20540:753::o:0;19307:627::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;19369:14:::1;19386:38;5194:10:::0;26354:285;:::i;19386:38::-:1;19369:55;;19446:1;19437:6;:10;19429:49;;;;-1:-1:-1::0;;;19429:49:0::1;;;;;;;:::i;:::-;19487:23;19513:27;5194:10:::0;25510:551;:::i;19513:27::-:1;19487:53;;19552:9;19547:149;19571:6;:13;19567:1;:17;19547:149;;;19597:15;19615:6;19622:1;19615:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;19673:17:::1;::::0;19632:38:::1;::::0;;;:29:::1;:38:::0;;;;;;:58;-1:-1:-1;19586:3:0;::::1;::::0;::::1;:::i;:::-;;;;19547:149;;;;19728:6;19702:22;;:32;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19762:47:0::1;::::0;19744:12:::1;::::0;5194:10;;19797:6;;19744:12;19762:47;19744:12;19762:47;19797:6;5194:10;19762:47:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19743:66;;;19822:7;19814:62;;;;-1:-1:-1::0;;;19814:62:0::1;;;;;;;:::i;:::-;19927:1;5194:10:::0;19905:12:::1;-1:-1:-1::0;;;;;19890:39:0::1;;19919:6;19890:39;;;;1802:25:1::0;;1790:2;1775:18;;1656:177;19890:39:0::1;;;;;;;;-1:-1:-1::0;;6181:1:0;6443:7;:22;-1:-1:-1;19307:627:0:o;9642:142::-;9740:39;9757:4;9763:2;9767:7;9740:39;;;;;;;;;;;;:16;:39::i;19939:596::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;20022:13:::1;20038:16;20046:7:::0;20038::::1;:16::i;:::-;20022:32:::0;-1:-1:-1;5194:10:0;-1:-1:-1;;;;;20067:21:0;::::1;;20059:77;;;;-1:-1:-1::0;;;20059:77:0::1;;;;;;;:::i;:::-;20143:14;20160:31;20183:7;20160:22;:31::i;:::-;20143:48;;20213:1;20204:6;:10;20196:49;;;;-1:-1:-1::0;;;20196:49:0::1;;;;;;;:::i;:::-;20280:6;20254:22;;:32;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;20332:17:0::1;::::0;20291:38:::1;::::0;;;:29:::1;:38;::::0;;;;;:58;;;;20377:40;;-1:-1:-1;;;;;20377:19:0;::::1;::::0;20405:6;;20291:38;20377:40;20291:38;20377:40;20405:6;20377:19;:40:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20358:59;;;20430:7;20422:62;;;;-1:-1:-1::0;;;20422:62:0::1;;;;;;;:::i;:::-;20528:1;20513:5;-1:-1:-1::0;;;;;20498:32:0::1;;20520:6;20498:32;;;;1802:25:1::0;;1790:2;1775:18;;1656:177;20498:32:0::1;;;;;;;;-1:-1:-1::0;;6181:1:0;6443:7;:22;-1:-1:-1;;19939:596:0:o;27985:77::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;28042:4:::1;:15:::0;27985:77::o;25510:551::-;25571:16;25594:23;25620:19;25630:8;25620:9;:19::i;:::-;25594:45;;25646:30;25693:15;25679:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25679:30:0;-1:-1:-1;25646:63:0;-1:-1:-1;25739:1:0;25718:18;25779:249;25804:15;25786;:33;:60;;;;;25837:9;;25823:10;:23;;25786:60;25779:249;;;25854:13;25870:19;25878:10;25870:7;:19::i;:::-;25854:35;;25910:8;-1:-1:-1;;;;;25901:17:0;:5;-1:-1:-1;;;;;25901:17:0;;25897:106;;;25960:10;25927:13;25941:15;25927:30;;;;;;;;:::i;:::-;;;;;;;;;;:43;25979:17;;;;:::i;:::-;;;;25897:106;26010:12;;;;:::i;:::-;;;;25848:180;25779:249;;;-1:-1:-1;26043:13:0;;25510:551;-1:-1:-1;;;;25510:551:0:o;27619:75::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27675:4:::1;:14:::0;27619:75::o;28067:103::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;28137:16:::1;:28:::0;28067:103::o;17962:117::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;18028:8:::1;:15:::0;;-1:-1:-1;;;;18028:15:0::1;-1:-1:-1::0;;;18028:15:0::1;::::0;;18050:24:::1;18061:12:::0;18050:10:::1;:24::i;:::-;17962:117:::0;:::o;27107:93::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27175:20;;::::1;::::0;:7:::1;::::0;:20:::1;::::0;::::1;::::0;::::1;:::i;:::-;;27107:93:::0;:::o;27795:::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27860:12:::1;:23:::0;27795:93::o;7653:221::-;7724:7;7754:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7754:16:0;7785:19;7777:73;;;;-1:-1:-1;;;7777:73:0;;17749:2:1;7777:73:0;;;17731:21:1;17788:2;17768:18;;;17761:30;17827:34;17807:18;;;17800:62;-1:-1:-1;;;17878:18:1;;;17871:39;17927:19;;7777:73:0;17547:405:1;27309:89:0;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27372:9:::1;:21:::0;27309:89::o;7454:194::-;7525:7;-1:-1:-1;;;;;7547:19:0;;7539:74;;;;-1:-1:-1;;;7539:74:0;;18159:2:1;7539:74:0;;;18141:21:1;18198:2;18178:18;;;18171:30;18237:34;18217:18;;;18210:62;-1:-1:-1;;;18288:18:1;;;18281:40;18338:19;;7539:74:0;17957:406:1;7539:74:0;-1:-1:-1;;;;;;7627:16:0;;;;;:9;:16;;;;;;;7454:194::o;28285:193::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;28394:16:::1;:38:::0;;-1:-1:-1;;;;;28394:38:0;;::::1;-1:-1:-1::0;;;;;;28394:38:0;;::::1;;::::0;;;28437:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;28285:193::o;26644:224::-;26712:7;26754;26734:16;:6;2978:14;;2893:104;26734:16;:27;;26726:67;;;;-1:-1:-1;;;26726:67:0;;10393:2:1;26726:67:0;;;10375:21:1;10432:2;10412:18;;;10405:30;10471:29;10451:18;;;10444:57;10518:18;;26726:67:0;10191:351:1;26726:67:0;26826:37;;;;:28;:37;;;;;;26807:16;;:56;;26826:37;26807:56;:::i;24810:255::-;24876:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24876:14:0;24898:13;24913:20;24937:22;24951:7;24937:13;:22::i;:::-;24897:62;;;;24972:8;24964:60;;;;-1:-1:-1;;;24964:60:0;;;;;;;:::i;:::-;25038:8;25047:12;25038:22;;;;;;;;:::i;:::-;;;;;;;;;;25031:29;;;;;;;;25038:22;;;;;;;25031:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25031:29:0;;;;;;;;;;;;;;;24810:255;-1:-1:-1;;;;24810:255:0:o;18084:622::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;18145:14:::1;18162:37;5194:10:::0;26066:283;:::i;18162:37::-:1;18145:54;;18221:1;18212:6;:10;18204:49;;;;-1:-1:-1::0;;;18204:49:0::1;;;;;;;:::i;:::-;18262:23;18288:27;5194:10:::0;25510:551;:::i;18288:27::-:1;18262:53;;18327:9;18322:147;18346:6;:13;18342:1;:17;18322:147;;;18372:15;18390:6;18397:1;18390:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;18447:16:::1;::::0;18407:37:::1;::::0;;;:28:::1;:37:::0;;;;;;:56;-1:-1:-1;18361:3:0;::::1;::::0;::::1;:::i;:::-;;;;18322:147;;;;18500:6;18475:21;;:31;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18534:47:0::1;::::0;18516:12:::1;::::0;5194:10;;18569:6;;18516:12;18534:47;18516:12;18534:47;18569:6;5194:10;18534:47:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18515:66;;;18594:7;18586:62;;;;-1:-1:-1::0;;;18586:62:0::1;;;;;;;:::i;:::-;18699:1;5194:10:::0;18677:12:::1;5121:88:::0;28175:105;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;28246:17:::1;:29:::0;28175:105::o;27507:107::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27579:18:::1;:30:::0;27507:107::o;17640:70::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;17699:6:::1;::::0;;-1:-1:-1;;;;17689:16:0;::::1;-1:-1:-1::0;;;17699:6:0;;;::::1;;;17698:7;17689:16:::0;;::::1;;::::0;;17640:70::o;7974:94::-;8029:13;8056:7;8049:14;;;;;:::i;24462:252::-;24522:13;24537;24562:9;24557:153;24581:8;:15;24577:19;;24557:153;;;24636:7;24613:8;24622:1;24613:11;;;;;;;;:::i;:::-;;;;;;;;;;;:19;;;:30;24609:44;;24645:8;;24609:44;24672:4;24661:15;;24690:1;24682:9;;24699:5;;24557:153;24598:3;;;;:::i;:::-;;;;24557:153;;;;24462:252;;;:::o;15909:1014::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;15980:10;;;;;:42:::1;;;16004:18;;15994:6;:28;;15980:42;15972:74;;;::::0;-1:-1:-1;;;15972:74:0;;18570:2:1;15972:74:0::1;::::0;::::1;18552:21:1::0;18609:2;18589:18;;;18582:30;-1:-1:-1;;;18628:18:1;;;18621:49;18687:18;;15972:74:0::1;18368:343:1::0;15972:74:0::1;16053:17;16092:6;16073:16;:6;2978:14:::0;;2893:104;16073:16:::1;:25;;;;:::i;:::-;16053:45;;16126:9;;16113;:22;;16105:60;;;::::0;-1:-1:-1;;;16105:60:0;;18918:2:1;16105:60:0::1;::::0;::::1;18900:21:1::0;18957:2;18937:18;;;18930:30;-1:-1:-1;;;18976:18:1;;;18969:55;19041:18;;16105:60:0::1;18716:349:1::0;16105:60:0::1;16203:14;;16191:9;;:26;;;;:::i;:::-;16178:9;:39;;16170:81;;;::::0;-1:-1:-1;;;16170:81:0;;19272:2:1;16170:81:0::1;::::0;::::1;19254:21:1::0;19311:2;19291:18;;;19284:30;19350:31;19330:18;;;19323:59;19399:18;;16170:81:0::1;19070:353:1::0;16170:81:0::1;16267:6;::::0;-1:-1:-1;;;16267:6:0;::::1;;;16266:7;16258:37;;;::::0;-1:-1:-1;;;16258:37:0;;19630:2:1;16258:37:0::1;::::0;::::1;19612:21:1::0;19669:2;19649:18;;;19642:30;-1:-1:-1;;;19688:18:1;;;19681:47;19745:18;;16258:37:0::1;19428:341:1::0;16258:37:0::1;16328:6;16321:4;;:13;;;;:::i;:::-;16308:9;:26;;16300:57;;;::::0;-1:-1:-1;;;16300:57:0;;19976:2:1;16300:57:0::1;::::0;::::1;19958:21:1::0;20015:2;19995:18;;;19988:30;-1:-1:-1;;;20034:18:1;;;20027:48;20092:18;;16300:57:0::1;19774:342:1::0;16300:57:0::1;16366:23;16398:18:::0;16419:16:::1;:6;2978:14:::0;;2893:104;16419:16:::1;16398:37:::0;-1:-1:-1;16442:31:0::1;5194:10:::0;16466:6:::1;16442:9;:31::i;:::-;16487:9;16482:390;16506:6;16502:1;:10;16482:390;;;16529:14:::0;;16525:257:::1;;16552:33;16647:10;16638:6;14736:5;16600:11;;16588:9;:23;;;;:::i;:::-;:47;;;;:::i;:::-;:56;;;;:::i;:::-;:69;;;;:::i;:::-;16552:105:::0;-1:-1:-1;16685:38:0::1;16713:10:::0;16552:105;16685:38:::1;:::i;:::-;16666:57;::::0;;::::1;:::i;:::-;;;16750:25;16730:16;;:45;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;16525:257:0::1;16789:12:::0;::::1;::::0;::::1;:::i;:::-;16850:16;::::0;16807:40:::1;::::0;;;:28:::1;:40;::::0;;;;:59;16789:12;-1:-1:-1;16514:3:0;;-1:-1:-1;16514:3:0::1;::::0;::::1;:::i;:::-;;;;16482:390;;;;16903:15;16878:21;;:40;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6181:1:0;6443:7;:22;-1:-1:-1;;;;15909:1014:0:o;17715:91::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;17788:13:::1;::::0;;-1:-1:-1;;;;17771:30:0;::::1;-1:-1:-1::0;;;17788:13:0;;;::::1;;;17787:14;17771:30:::0;;::::1;;::::0;;17715:91::o;9043:146::-;9132:52;5194:10;9165:8;9175;9132:18;:52::i;22105:603::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;22193:13:::1;::::0;-1:-1:-1;;;22193:13:0;::::1;;;22185:77;;;::::0;-1:-1:-1;;;22185:77:0;;20323:2:1;22185:77:0::1;::::0;::::1;20305:21:1::0;20362:2;20342:18;;;20335:30;20401:34;20381:18;;;20374:62;-1:-1:-1;;;20452:18:1;;;20445:49;20511:19;;22185:77:0::1;20121:415:1::0;22185:77:0::1;22283:1;22275:5;:9;22267:63;;;::::0;-1:-1:-1;;;22267:63:0;;20743:2:1;22267:63:0::1;::::0;::::1;20725:21:1::0;20782:2;20762:18;;;20755:30;20821:34;20801:18;;;20794:62;-1:-1:-1;;;20872:18:1;;;20865:39;20921:19;;22267:63:0::1;20541:405:1::0;22267:63:0::1;5194:10:::0;22343:16:::1;22351:7:::0;22343::::1;:16::i;:::-;-1:-1:-1::0;;;;;22343:32:0::1;;22335:88;;;;-1:-1:-1::0;;;22335:88:0::1;;;;;;;:::i;:::-;22431:13;22450:22;22464:7;22450:13;:22::i;:::-;22430:42;;;22486:8;22485:9;22477:65;;;::::0;-1:-1:-1;;;22477:65:0;;21565:2:1;22477:65:0::1;::::0;::::1;21547:21:1::0;21604:2;21584:18;;;21577:30;21643:34;21623:18;;;21616:62;-1:-1:-1;;;21694:18:1;;;21687:41;21745:19;;22477:65:0::1;21363:407:1::0;22477:65:0::1;22549:19;22571:54;;;;;;;;22579:7;22571:54;;;;22588:5;22571:54;;;;22595:12;5194:10:::0;;5121:88;22595:12:::1;-1:-1:-1::0;;;;;22571:54:0;;::::1;::::0;;22609:15:::1;22571:54;::::0;;::::1;::::0;22632:8:::1;:19:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;22632:19:0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;;;;;22632:19:0::1;::::0;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;5194:10:0;-1:-1:-1;;;;;22663:40:0::1;22674:7;22663:40;22697:5;22663:40;;;;1802:25:1::0;;1790:2;1775:18;;1656:177;22713:424:0;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;22781:13:::1;::::0;22820:22:::1;22834:7:::0;22820:13:::1;:22::i;:::-;22780:62;;;;22857:8;22849:60;;;;-1:-1:-1::0;;;22849:60:0::1;;;;;;;:::i;:::-;5194:10:::0;-1:-1:-1;;;;;22922:45:0::1;:8;22931:12;22922:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:29:::1;:22;::::0;;::::1;;:29;::::0;-1:-1:-1;;;;;22922:29:0::1;:45;22914:101;;;;-1:-1:-1::0;;;22914:101:0::1;;;;;;;:::i;:::-;23047:8;23056:15:::0;;:19:::1;::::0;23074:1:::1;::::0;23056:19:::1;:::i;:::-;23047:29;;;;;;;;:::i;:::-;;;;;;;;;;;23022:8;23031:12;23022: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;;;;;;23022:54:0::1;-1:-1:-1::0;;;;;23022:54:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;23081:8:::1;:14:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;23081:14:0;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;23081:14:0::1;::::0;;::::1;;::::0;;;;;23107:25:::1;::::0;23124:7;;23107:25:::1;::::0;::::1;-1:-1:-1::0;;6181:1:0;6443:7;:22;-1:-1:-1;22713:424:0:o;27209:95::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27278:21;;::::1;::::0;:9:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;26066:283::-:0;26137:7;26151:23;26177;26191:8;26177:13;:23::i;:::-;26151:49;;26205:13;26234:9;26229:97;26253:6;:13;26249:1;:17;26229:97;;;26288:32;26310:6;26317:1;26310:9;;;;;;;;:::i;:::-;;;;;;;26288:21;:32::i;:::-;26279:41;;;;:::i;:::-;;-1:-1:-1;26268:3:0;;;;:::i;:::-;;;;26229:97;;21512:358;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;21569:21:::1;21593:16;:6;2978:14:::0;;2893:104;21593:16:::1;21569:40:::0;-1:-1:-1;21616:29:0::1;21648:25;21569:40:::0;21648:9:::1;:25;:::i;:::-;21616:57:::0;-1:-1:-1;21678:19:0::1;21700:37;21724:13:::0;21616:57;21700:37:::1;:::i;:::-;21678:59;;21764:21;21744:16;;:41;;;;;;;:::i;:::-;;;;;;;;21815:11;21790:21;;:36;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21838:27:0::1;::::0;21855:9:::1;1802:25:1::0;;21838:27:0::1;::::0;1790:2:1;1775:18;21838:27:0::1;;;;;;;21564:306;;;21512:358::o:0;9789:272::-;9915:41;5194:10;9948:7;9915:18;:41::i;:::-;9907:103;;;;-1:-1:-1;;;9907:103:0;;;;;;;:::i;:::-;10017:39;10031:4;10037:2;10041:7;10050:5;10017:13;:39::i;:::-;9789:272;;;;:::o;25070:345::-;10394:4;10412:16;;;:7;:16;;;;;;25134:13;;-1:-1:-1;;;;;10412:16:0;25154:76;;;;-1:-1:-1;;;25154:76:0;;21977:2:1;25154:76:0;;;21959:21:1;22016:2;21996:18;;;21989:30;22055:34;22035:18;;;22028:62;-1:-1:-1;;;22106:18:1;;;22099:45;22161:19;;25154:76:0;21775:411:1;25154:76:0;25242:28;25273:10;:8;:10::i;:::-;25242:41;;25328:1;25303:14;25297:28;:32;:113;;;;;;;;;;;;;;;;;25357:14;25373:18;:7;:16;:18::i;:::-;25393:9;25340:63;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;25297:113;25290:120;25070:345;-1:-1:-1;;;25070:345:0:o;27699:91::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;27763:11:::1;:22:::0;27699:91::o;21298:209::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;21358:12:::1;21384:7;5601:6:::0;;-1:-1:-1;;;;;5601:6:0;;5535:77;21384:7:::1;-1:-1:-1::0;;;;;21376:21:0::1;21406;21376:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21357:76;;;21448:7;21440:62;;;;-1:-1:-1::0;;;21440:62:0::1;;;;;;;:::i;9194:154::-:0;-1:-1:-1;;;;;9308:25:0;;;9290:4;9308:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;9194:154::o;18711:591::-;6222:1;6348:7;;:19;;6340:63;;;;-1:-1:-1;;;6340:63:0;;;;;;;:::i;:::-;6222:1;6410:7;:18;18793:13:::1;18809:16;18817:7:::0;18809::::1;:16::i;:::-;18793:32:::0;-1:-1:-1;5194:10:0;-1:-1:-1;;;;;18838:21:0;::::1;;18830:77;;;;-1:-1:-1::0;;;18830:77:0::1;;;;;;;:::i;:::-;18914:14;18931:30;18953:7;18931:21;:30::i;:::-;18914:47;;18983:1;18974:6;:10;18966:49;;;;-1:-1:-1::0;;;18966:49:0::1;;;;;;;:::i;:::-;19049:6;19024:21;;:31;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19100:16:0::1;::::0;19060:37:::1;::::0;;;:28:::1;:37;::::0;;;;;:56;;;;19144:40;;-1:-1:-1;;;;;19144:19:0;::::1;::::0;19172:6;;19060:37;19144:40;19060:37;19144:40;19172:6;19144:19;:40:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19125:59;;;19197:7;19189:62;;;;-1:-1:-1::0;;;19189:62:0::1;;;;;;;:::i;:::-;19295:1;19280:5;-1:-1:-1::0;;;;;19265:32:0::1;;19287:6;19265:32;;;;1802:25:1::0;;1790:2;1775:18;;1656:177;24719:86:0;24762:16;24792:8;24785:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24785:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24719:86;:::o;5729:188::-;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5812:22:0;::::1;5804:73;;;::::0;-1:-1:-1;;;5804:73:0;;24051:2:1;5804:73:0::1;::::0;::::1;24033:21:1::0;24090:2;24070:18;;;24063:30;24129:34;24109:18;;;24102:62;-1:-1:-1;;;24180:18:1;;;24173:36;24226:19;;5804:73:0::1;23849:402:1::0;5804:73:0::1;5884:28;5903:8;5884:18;:28::i;16928:705::-:0;5601:6;;-1:-1:-1;;;;;5601:6:0;5194:10;5651:23;5643:68;;;;-1:-1:-1;;;5643:68:0;;;;;;;:::i;:::-;17030:34;;::::1;17023:42;;;;:::i;:::-;17077:20:::0;;;;;:42:::1;;-1:-1:-1::0;17101:18:0;;;17077:42:::1;17070:50;;;;:::i;:::-;17129:19;::::0;17153:70:::1;17173:18:::0;;::::1;17153:70;;;17213:7;;17221:1;17213:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17198:25;::::0;::::1;;::::0;::::1;:::i;:::-;::::0;-1:-1:-1;17193:3:0;::::1;::::0;::::1;:::i;:::-;;;;17153:70;;;;17272:9;;17257:11;17238:16;:6;2978:14:::0;;2893:104;17238:16:::1;:30;;;;:::i;:::-;:43;;17230:81;;;::::0;-1:-1:-1;;;17230:81:0;;18918:2:1;17230:81:0::1;::::0;::::1;18900:21:1::0;18957:2;18937:18;;;18930:30;-1:-1:-1;;;18976:18:1;;;18969:55;19041:18;;17230:81:0::1;18716:349:1::0;17230:81:0::1;17325:9;17320:309;17340:20:::0;;::::1;17320:309;;;17373:12;17388:7;;17396:1;17388:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17373:25;;17411:9;17406:218;17430:6;17426:10;;:1;:10;17406:218;;;17450:18;:6;3076:19:::0;;3094:1;3076:19;;;3002:103;17450:18:::1;17477:15;17495:16;:6;2978:14:::0;;2893:104;17495:16:::1;17477:34;;17520:32;17530:9;;17540:1;17530:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17544:7;17520:9;:32::i;:::-;17601:16;::::0;17561:37:::1;::::0;;;:28:::1;:37;::::0;;;;;:56;17438:3;::::1;::::0;::::1;:::i;:::-;;;;17406:218;;;;17367:262;17362:3;;;;;:::i;:::-;;;;17320:309;;;;17018:615;16928:705:::0;;;;:::o;7193:256::-;7294:4;-1:-1:-1;;;;;;7312:40:0;;-1:-1:-1;;;7312:40:0;;:92;;-1:-1:-1;;;;;;;7356:48:0;;-1:-1:-1;;;7356:48:0;7312:92;:132;;;-1:-1:-1;;;;;;;;;;6621:40:0;;;7408:36;6519:147;12369:161;12438:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12438:29:0;-1:-1:-1;;;;;12438:29:0;;;;;;;;:24;;12488:23;12438:24;12488:14;:23::i;:::-;-1:-1:-1;;;;;12479:46:0;;;;;;;;;;;12369:161;;:::o;10452:330::-;10544:4;10412:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10412:16:0;10555:73;;;;-1:-1:-1;;;10555:73:0;;24864:2:1;10555:73:0;;;24846:21:1;24903:2;24883:18;;;24876:30;24942:34;24922:18;;;24915:62;-1:-1:-1;;;24993:18:1;;;24986:42;25045:19;;10555:73:0;24662:408:1;10555:73:0;10635:13;10651:23;10666:7;10651:14;:23::i;:::-;10635:39;;10700:5;-1:-1:-1;;;;;10689:16:0;:7;-1:-1:-1;;;;;10689:16:0;;:51;;;;10733:7;-1:-1:-1;;;;;10709:31:0;:20;10721:7;10709:11;:20::i;:::-;-1:-1:-1;;;;;10709:31:0;;10689:51;:87;;;;10744:32;10761:5;10768:7;10744:16;:32::i;:::-;10681:96;10452:330;-1:-1:-1;;;;10452:330:0:o;11884:480::-;12003:4;-1:-1:-1;;;;;11976:31:0;:23;11991:7;11976:14;:23::i;:::-;-1:-1:-1;;;;;11976:31:0;;11968:81;;;;-1:-1:-1;;;11968:81:0;;25277:2:1;11968:81:0;;;25259:21:1;25316:2;25296:18;;;25289:30;25355:34;25335:18;;;25328:62;-1:-1:-1;;;25406:18:1;;;25399:35;25451:19;;11968:81:0;25075:401:1;11968:81:0;-1:-1:-1;;;;;12062:16:0;;12054:65;;;;-1:-1:-1;;;12054:65:0;;25683:2:1;12054:65:0;;;25665:21:1;25722:2;25702:18;;;25695:30;25761:34;25741:18;;;25734:62;-1:-1:-1;;;25812:18:1;;;25805:34;25856:19;;12054:65:0;25481:400:1;12054:65:0;12126:39;12147:4;12153:2;12157:7;12126:20;:39::i;:::-;12170:29;12187:1;12191:7;12170:8;:29::i;:::-;-1:-1:-1;;;;;12206:15:0;;;;;;:9;:15;;;;;:20;;12225:1;;12206:15;:20;;12225:1;;12206:20;:::i;:::-;;;;-1:-1:-1;;;;;;;12231:13:0;;;;;;:9;:13;;;;;:18;;12248:1;;12231:13;:18;;12248:1;;12231:18;:::i;:::-;;;;-1:-1:-1;;12254:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;12254:21:0;-1:-1:-1;;;;;12254:21:0;;;;;;;;;12287:27;;12254:16;;12287:27;;;;;;;8551:277;8481:347;;:::o;10066:259::-;10174:28;10184:4;10190:2;10194:7;10174:9;:28::i;:::-;10217:48;10240:4;10246:2;10250:7;10259:5;10217:22;:48::i;:::-;10209:111;;;;-1:-1:-1;;;10209:111:0;;;;;;;:::i;28862:171::-;28928:9;28923:106;28947:6;28943:1;:10;28923:106;;;28966:18;:6;3076:19;;3094:1;3076:19;;;3002:103;28966:18;28992:31;29002:2;29006:16;:6;2978:14;;2893:104;29006:16;28992:9;:31::i;:::-;28955:3;;;;:::i;:::-;;;;28923:106;;12535:264;12650:8;-1:-1:-1;;;;;12641:17:0;:5;-1:-1:-1;;;;;12641:17:0;;;12633:55;;;;-1:-1:-1;;;12633:55:0;;26507:2:1;12633:55:0;;;26489:21:1;26546:2;26526:18;;;26519:30;26585:27;26565:18;;;26558:55;26630:18;;12633:55:0;26305:349:1;12633:55:0;-1:-1:-1;;;;;12695:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;12695:46:0;;;;;;;;;;12753:41;;1235::1;;;12753::0;;1208:18:1;12753:41:0;;;;;;;12535:264;;;:::o;28485:90::-;28536:13;28563:7;28556:14;;;;;:::i;2274:413::-;2329:13;2353:10;2349:26;;-1:-1:-1;;2365:10:0;;;;;;;;;;;;-1:-1:-1;;;2365:10:0;;;;;2274:413::o;2349:26::-;2397:5;2382:12;2428:54;2435:9;;2428:54;;2452:8;;;;:::i;:::-;;-1:-1:-1;2466:10:0;;-1:-1:-1;2474:2:0;2466:10;;:::i;:::-;;;2428:54;;;2488:19;2520:6;2510:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2510:17:0;;2488:39;;2534:121;2541:10;;2534:121;;2559:11;2569:1;2559:11;;:::i;:::-;;-1:-1:-1;2619:10:0;2627:2;2619:5;:10;:::i;:::-;2606:24;;:2;:24;:::i;:::-;2593:39;;2576:6;2583;2576:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;2576:56:0;;;;;;;;-1:-1:-1;2638:11:0;2647:2;2638:11;;:::i;:::-;;;2534:121;;5922:174;6009:6;;;-1:-1:-1;;;;;6022:17:0;;;-1:-1:-1;;;;;;6022:17:0;;;;;;;6051:40;;6009:6;;;6022:17;6009:6;;6051:40;;5990:16;;6051:40;5985:111;5922:174;:::o;10787:101::-;10857:26;10867:2;10871:7;10857:26;;;;;;;;;;;;:9;:26::i;28580:277::-;28677:13;28696:22;28710:7;28696:13;:22::i;:::-;28676:42;;;28732:8;28731:9;28723:75;;;;-1:-1:-1;;;28723:75:0;;26978:2:1;28723:75:0;;;26960:21:1;27017:2;26997:18;;;26990:30;27056:34;27036:18;;;27029:62;-1:-1:-1;;;27107:18:1;;;27100:51;27168:19;;28723:75:0;26776:417:1;28723:75:0;28807:45;8481:347;12804:572;12915:4;-1:-1:-1;;;;;12930:13:0;;2791:19;:23;12926:445;;12957:72;;-1:-1:-1;;;12957:72:0;;-1:-1:-1;;;;;12957:36:0;;;;;:72;;5194:10;;13008:4;;13014:7;;13023:5;;12957:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12957:72:0;;;;;;;;-1:-1:-1;;12957:72:0;;;;;;;;;;;;:::i;:::-;;;12953:391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13165:13:0;;13161:177;;13185:60;;-1:-1:-1;;;13185:60:0;;;;;;;:::i;13161:177::-;13315:6;13309:13;13300:6;13296:2;13292:15;13285:38;12953:391;-1:-1:-1;;;;;;13067:51:0;-1:-1:-1;;;13067:51:0;;-1:-1:-1;13060:58:0;;12926:445;-1:-1:-1;13367:4:0;12804:572;;;;;;:::o;10893:237::-;10983:18;10989:2;10993:7;10983:5;:18::i;:::-;11016:54;11047:1;11051:2;11055:7;11064:5;11016:22;:54::i;:::-;11008:117;;;;-1:-1:-1;;;11008:117:0;;;;;;;:::i;11135:394::-;-1:-1:-1;;;;;11209:16:0;;11201:61;;;;-1:-1:-1;;;11201:61:0;;28148:2:1;11201:61:0;;;28130:21:1;;;28167:18;;;28160:30;28226:34;28206:18;;;28199:62;28278:18;;11201:61:0;27946:356:1;11201:61:0;10394:4;10412:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10412:16:0;:30;11267:58;;;;-1:-1:-1;;;11267:58:0;;28509:2:1;11267:58:0;;;28491:21:1;28548:2;28528:18;;;28521:30;28587;28567:18;;;28560:58;28635:18;;11267:58:0;28307:352:1;11267:58:0;11332:45;11361:1;11365:2;11369:7;11332:20;:45::i;:::-;-1:-1:-1;;;;;11384:13:0;;;;;;:9;:13;;;;;:18;;11401:1;;11384:13;:18;;11401:1;;11384:18;:::i;:::-;;;;-1:-1:-1;;11407:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;11407:21:0;-1:-1:-1;;;;;11407:21:0;;;;;;;;11440:33;;11407:16;;;11440:33;;11407:16;;11440:33;27175:20:::1;27107:93:::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:128;186:3;217:1;213:6;210:1;207:13;204:39;;;223:18;;:::i;:::-;-1:-1:-1;259:9:1;;146:128::o;279:127::-;340:10;335:3;331:20;328:1;321:31;371:4;368:1;361:15;395:4;392:1;385:15;411:120;451:1;477;467:35;;482:18;;:::i;:::-;-1:-1:-1;516:9:1;;411:120::o;536:168::-;576:7;642:1;638;634:6;630:14;627:1;624:21;619:1;612:9;605:17;601:45;598:71;;;649:18;;:::i;:::-;-1:-1:-1;689:9:1;;536:168::o;709:131::-;-1:-1:-1;;;;;;783:32:1;;773:43;;763:71;;830:1;827;820:12;845:245;903:6;956:2;944:9;935:7;931:23;927:32;924:52;;;972:1;969;962:12;924:52;1011:9;998:23;1030:30;1054:5;1030:30;:::i;1287:173::-;1355:20;;-1:-1:-1;;;;;1404:31:1;;1394:42;;1384:70;;1450:1;1447;1440:12;1384:70;1287:173;;;:::o;1465:186::-;1524:6;1577:2;1565:9;1556:7;1552:23;1548:32;1545:52;;;1593:1;1590;1583:12;1545:52;1616:29;1635:9;1616:29;:::i;1838:180::-;1897:6;1950:2;1938:9;1929:7;1925:23;1921:32;1918:52;;;1966:1;1963;1956:12;1918:52;-1:-1:-1;1989:23:1;;1838:180;-1:-1:-1;1838:180:1:o;2023:258::-;2095:1;2105:113;2119:6;2116:1;2113:13;2105:113;;;2195:11;;;2189:18;2176:11;;;2169:39;2141:2;2134:10;2105:113;;;2236:6;2233:1;2230:13;2227:48;;;-1:-1:-1;;2271:1:1;2253:16;;2246:27;2023:258::o;2286:::-;2328:3;2366:5;2360:12;2393:6;2388:3;2381:19;2409:63;2465:6;2458:4;2453:3;2449:14;2442:4;2435:5;2431:16;2409:63;:::i;:::-;2526:2;2505:15;-1:-1:-1;;2501:29:1;2492:39;;;;2533:4;2488:50;;2286:258;-1:-1:-1;;2286:258:1:o;2549:220::-;2698:2;2687:9;2680:21;2661:4;2718:45;2759:2;2748:9;2744:18;2736:6;2718:45;:::i;2982:254::-;3050:6;3058;3111:2;3099:9;3090:7;3086:23;3082:32;3079:52;;;3127:1;3124;3117:12;3079:52;3150:29;3169:9;3150:29;:::i;:::-;3140:39;3226:2;3211:18;;;;3198:32;;-1:-1:-1;;;2982:254:1:o;3241:328::-;3318:6;3326;3334;3387:2;3375:9;3366:7;3362:23;3358:32;3355:52;;;3403:1;3400;3393:12;3355:52;3426:29;3445:9;3426:29;:::i;:::-;3416:39;;3474:38;3508:2;3497:9;3493:18;3474:38;:::i;:::-;3464:48;;3559:2;3548:9;3544:18;3531:32;3521:42;;3241:328;;;;;:::o;3574:248::-;3642:6;3650;3703:2;3691:9;3682:7;3678:23;3674:32;3671:52;;;3719:1;3716;3709:12;3671:52;-1:-1:-1;;3742:23:1;;;3812:2;3797:18;;;3784:32;;-1:-1:-1;3574:248:1:o;4106:632::-;4277:2;4329:21;;;4399:13;;4302:18;;;4421:22;;;4248:4;;4277:2;4500:15;;;;4474:2;4459:18;;;4248:4;4543:169;4557:6;4554:1;4551:13;4543:169;;;4618:13;;4606:26;;4687:15;;;;4652:12;;;;4579:1;4572:9;4543:169;;;-1:-1:-1;4729:3:1;;4106:632;-1:-1:-1;;;;;;4106:632:1:o;4743:127::-;4804:10;4799:3;4795:20;4792:1;4785:31;4835:4;4832:1;4825:15;4859:4;4856:1;4849:15;4875:632;4940:5;4970:18;5011:2;5003:6;5000:14;4997:40;;;5017:18;;:::i;:::-;5092:2;5086:9;5060:2;5146:15;;-1:-1:-1;;5142:24:1;;;5168:2;5138:33;5134:42;5122:55;;;5192:18;;;5212:22;;;5189:46;5186:72;;;5238:18;;:::i;:::-;5278:10;5274:2;5267:22;5307:6;5298:15;;5337:6;5329;5322:22;5377:3;5368:6;5363:3;5359:16;5356:25;5353:45;;;5394:1;5391;5384:12;5353:45;5444:6;5439:3;5432:4;5424:6;5420:17;5407:44;5499:1;5492:4;5483:6;5475;5471:19;5467:30;5460:41;;;;4875:632;;;;;:::o;5512:451::-;5581:6;5634:2;5622:9;5613:7;5609:23;5605:32;5602:52;;;5650:1;5647;5640:12;5602:52;5690:9;5677:23;5723:18;5715:6;5712:30;5709:50;;;5755:1;5752;5745:12;5709:50;5778:22;;5831:4;5823:13;;5819:27;-1:-1:-1;5809:55:1;;5860:1;5857;5850:12;5809:55;5883:74;5949:7;5944:2;5931:16;5926:2;5922;5918:11;5883:74;:::i;5968:260::-;6036:6;6044;6097:2;6085:9;6076:7;6072:23;6068:32;6065:52;;;6113:1;6110;6103:12;6065:52;6136:29;6155:9;6136:29;:::i;:::-;6126:39;;6184:38;6218:2;6207:9;6203:18;6184:38;:::i;6524:247::-;6306:12;;6294:25;;6368:4;6357:16;;;6351:23;6335:14;;;6328:47;6428:4;6417:16;;;6411:23;-1:-1:-1;;;;;6407:49:1;6391:14;;;6384:73;6506:4;6495:16;;;6489:23;6473:14;;;6466:47;6708:3;6693:19;;6721:44;6233:286;7039:347;7104:6;7112;7165:2;7153:9;7144:7;7140:23;7136:32;7133:52;;;7181:1;7178;7171:12;7133:52;7204:29;7223:9;7204:29;:::i;:::-;7194:39;;7283:2;7272:9;7268:18;7255:32;7330:5;7323:13;7316:21;7309:5;7306:32;7296:60;;7352:1;7349;7342:12;7296:60;7375:5;7365:15;;;7039:347;;;;;:::o;7391:667::-;7486:6;7494;7502;7510;7563:3;7551:9;7542:7;7538:23;7534:33;7531:53;;;7580:1;7577;7570:12;7531:53;7603:29;7622:9;7603:29;:::i;:::-;7593:39;;7651:38;7685:2;7674:9;7670:18;7651:38;:::i;:::-;7641:48;;7736:2;7725:9;7721:18;7708:32;7698:42;;7791:2;7780:9;7776:18;7763:32;7818:18;7810:6;7807:30;7804:50;;;7850:1;7847;7840:12;7804:50;7873:22;;7926:4;7918:13;;7914:27;-1:-1:-1;7904:55:1;;7955:1;7952;7945:12;7904:55;7978:74;8044:7;8039:2;8026:16;8021:2;8017;8013:11;7978:74;:::i;:::-;7968:84;;;7391:667;;;;;;;:::o;8063:703::-;8284:2;8336:21;;;8406:13;;8309:18;;;8428:22;;;8255:4;;8284:2;8507:15;;;;8481:2;8466:18;;;8255:4;8550:190;8564:6;8561:1;8558:13;8550:190;;;8613:45;8654:3;8645:6;8639:13;6306:12;;6294:25;;6368:4;6357:16;;;6351:23;6335:14;;;6328:47;6428:4;6417:16;;;6411:23;-1:-1:-1;;;;;6407:49:1;6391:14;;;6384:73;6506:4;6495:16;;;6489:23;6473:14;;6466:47;6233:286;8613:45;8715:15;;;;8687:4;8678:14;;;;;8586:1;8579:9;8550:190;;8771:367;8834:8;8844:6;8898:3;8891:4;8883:6;8879:17;8875:27;8865:55;;8916:1;8913;8906:12;8865:55;-1:-1:-1;8939:20:1;;8982:18;8971:30;;8968:50;;;9014:1;9011;9004:12;8968:50;9051:4;9043:6;9039:17;9027:29;;9111:3;9104:4;9094:6;9091:1;9087:14;9079:6;9075:27;9071:38;9068:47;9065:67;;;9128:1;9125;9118:12;9065:67;8771:367;;;;;:::o;9143:771::-;9263:6;9271;9279;9287;9340:2;9328:9;9319:7;9315:23;9311:32;9308:52;;;9356:1;9353;9346:12;9308:52;9396:9;9383:23;9425:18;9466:2;9458:6;9455:14;9452:34;;;9482:1;9479;9472:12;9452:34;9521:70;9583:7;9574:6;9563:9;9559:22;9521:70;:::i;:::-;9610:8;;-1:-1:-1;9495:96:1;-1:-1:-1;9698:2:1;9683:18;;9670:32;;-1:-1:-1;9714:16:1;;;9711:36;;;9743:1;9740;9733:12;9711:36;;9782:72;9846:7;9835:8;9824:9;9820:24;9782:72;:::i;:::-;9143:771;;;;-1:-1:-1;9873:8:1;-1:-1:-1;;;;9143:771:1:o;9919:127::-;9980:10;9975:3;9971:20;9968:1;9961:31;10011:4;10008:1;10001:15;10035:4;10032:1;10025:15;10051:135;10090:3;-1:-1:-1;;10111:17:1;;10108:43;;;10131:18;;:::i;:::-;-1:-1:-1;10178:1:1;10167:13;;10051:135::o;10547:125::-;10587:4;10615:1;10612;10609:8;10606:34;;;10620:18;;:::i;:::-;-1:-1:-1;10657:9:1;;10547:125::o;10677:380::-;10756:1;10752:12;;;;10799;;;10820:61;;10874:4;10866:6;10862:17;10852:27;;10820:61;10927:2;10919:6;10916:14;10896:18;10893:38;10890:161;;;10973:10;10968:3;10964:20;10961:1;10954:31;11008:4;11005:1;10998:15;11036:4;11033:1;11026:15;10890:161;;10677:380;;;:::o;11062:356::-;11264:2;11246:21;;;11283:18;;;11276:30;11342:34;11337:2;11322:18;;11315:62;11409:2;11394:18;;11062:356::o;12663:413::-;12865:2;12847:21;;;12904:2;12884:18;;;12877:30;12943:34;12938:2;12923:18;;12916:62;-1:-1:-1;;;13009:2:1;12994:18;;12987:47;13066:3;13051:19;;12663:413::o;13081:355::-;13283:2;13265:21;;;13322:2;13302:18;;;13295:30;13361:33;13356:2;13341:18;;13334:61;13427:2;13412:18;;13081:355::o;13441:403::-;13643:2;13625:21;;;13682:2;13662:18;;;13655:30;13721:34;13716:2;13701:18;;13694:62;-1:-1:-1;;;13787:2:1;13772:18;;13765:37;13834:3;13819:19;;13441:403::o;14732:127::-;14793:10;14788:3;14784:20;14781:1;14774:31;14824:4;14821:1;14814:15;14848:4;14845:1;14838:15;15074:406;15276:2;15258:21;;;15315:2;15295:18;;;15288:30;-1:-1:-1;;;;;;;;;;;15349:2:1;15334:18;;15327:62;-1:-1:-1;;;15420:2:1;15405:18;;15398:40;15470:3;15455:19;;15074:406::o;16780:350::-;16982:2;16964:21;;;17021:2;17001:18;;;16994:30;17060:28;17055:2;17040:18;;17033:56;17121:2;17106:18;;16780:350::o;17135:407::-;17337:2;17319:21;;;17376:2;17356:18;;;17349:30;17415:34;17410:2;17395:18;;17388:62;-1:-1:-1;;;17481:2:1;17466:18;;17459:41;17532:3;17517:19;;17135:407::o;20951:::-;21153:2;21135:21;;;21192:2;21172:18;;;21165:30;21231:34;21226:2;21211:18;;21204:62;-1:-1:-1;;;21297:2:1;21282:18;;21275:41;21348:3;21333:19;;20951:407::o;22317:1527::-;22541:3;22579:6;22573:13;22605:4;22618:51;22662:6;22657:3;22652:2;22644:6;22640:15;22618:51;:::i;:::-;22732:13;;22691:16;;;;22754:55;22732:13;22691:16;22776:15;;;22754:55;:::i;:::-;22898:13;;22831:20;;;22871:1;;22958;22980:18;;;;23033;;;;23060:93;;23138:4;23128:8;23124:19;23112:31;;23060:93;23201:2;23191:8;23188:16;23168:18;23165:40;23162:167;;;-1:-1:-1;;;23228:33:1;;23284:4;23281:1;23274:15;23314:4;23235:3;23302:17;23162:167;23345:18;23372:110;;;;23496:1;23491:328;;;;23338:481;;23372:110;-1:-1:-1;;23407:24:1;;23393:39;;23452:20;;;;-1:-1:-1;23372:110:1;;23491:328;22264:1;22257:14;;;22301:4;22288:18;;23586:1;23600:169;23614:8;23611:1;23608:15;23600:169;;;23696:14;;23681:13;;;23674:37;23739:16;;;;23631:10;;23600:169;;;23604:3;;23800:8;23793:5;23789:20;23782:27;;23338:481;-1:-1:-1;23835:3:1;;22317:1527;-1:-1:-1;;;;;;;;;;;22317:1527:1:o;24256:127::-;24317:10;24312:3;24308:20;24305:1;24298:31;24348:4;24345:1;24338:15;24372:4;24369:1;24362:15;24388:269;24445:6;24498:2;24486:9;24477:7;24473:23;24469:32;24466:52;;;24514:1;24511;24504:12;24466:52;24553:9;24540:23;24603:4;24596:5;24592:16;24585:5;24582:27;24572:55;;24623:1;24620;24613:12;25886:414;26088:2;26070:21;;;26127:2;26107:18;;;26100:30;26166:34;26161:2;26146:18;;26139:62;-1:-1:-1;;;26232:2:1;26217:18;;26210:48;26290:3;26275:19;;25886:414::o;26659:112::-;26691:1;26717;26707:35;;26722:18;;:::i;:::-;-1:-1:-1;26756:9:1;;26659:112::o;27198:489::-;-1:-1:-1;;;;;27467:15:1;;;27449:34;;27519:15;;27514:2;27499:18;;27492:43;27566:2;27551:18;;27544:34;;;27614:3;27609:2;27594:18;;27587:31;;;27392:4;;27635:46;;27661:19;;27653:6;27635:46;:::i;:::-;27627:54;27198:489;-1:-1:-1;;;;;;27198:489:1:o;27692:249::-;27761:6;27814:2;27802:9;27793:7;27789:23;27785:32;27782:52;;;27830:1;27827;27820:12;27782:52;27862:9;27856:16;27881:30;27905:5;27881:30;:::i
Swarm Source
ipfs://dcaf9c2f38ae033c853b42afc7ce25f35277d62c77c2b4d7a9ad9e418db33baf
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.