Overview ERC721
Total Supply:
84 NCGS

Holders:
36
Profile Summary
Blockchain:
C-Chain (43114)

Contract Source Code Verified (Partial Match)
Contract Name:
NostraCityGroceryStore

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No

Created At:
Tue, 29 Mar 2022 17:29:24 GMT
GroceryStoreNFT.sol
GroceryStoreNFT.sol
Address.sol
Context.sol
Counters.sol
ERC165.sol
ERC721.sol
ERC721Enumerable.sol
ERC721URIStorage.sol
GroceryStoreNFT.sol
IERC165.sol
IERC20.sol
IERC721.sol
IERC721Enumerable.sol
IERC721Metadata.sol
IERC721Receiver.sol
Ownable.sol
Pausable.sol
Strings.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "DAI",
        "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": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "sentToTreasury",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_TIER1_MINT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_TIER2_MINT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MINT_PRICE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_score",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "addressToTokensMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCurrentScore",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wallet",
        "type": "address"
      }
    ],
    "name": "getMintingLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wallet",
        "type": "address"
      }
    ],
    "name": "getMintingPrice",
    "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": [],
    "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": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "presaleWhitelistTier1",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "presaleWhitelistTier2",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint8",
        "name": "numberOfTokens",
        "type": "uint8"
      }
    ],
    "name": "safeMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "_data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sendToTreasury",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      }
    ],
    "name": "setVault",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unpause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wallet",
        "type": "address"
      }
    ],
    "name": "walletOfOwner",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wallet",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "status",
        "type": "bool"
      }
    ],
    "name": "whitelistTier1",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wallet",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "status",
        "type": "bool"
      }
    ],
    "name": "whitelistTier2",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60806040526000600f553480156200001657600080fd5b506040516200523a3803806200523a83398181016040528101906200003c919062000347565b6040518060400160405280600681526020017f546f6d61746f00000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e434753000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000c09291906200022d565b508060019080519060200190620000d99291906200022d565b5050506000600b60006101000a81548160ff021916908315150217905550620001176200010b6200015f60201b60201c565b6200016760201b60201c565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620003de565b600033905090565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200023b90620003a8565b90600052602060002090601f0160209004810192826200025f5760008555620002ab565b82601f106200027a57805160ff1916838001178555620002ab565b82800160010185558215620002ab579182015b82811115620002aa5782518255916020019190600101906200028d565b5b509050620002ba9190620002be565b5090565b5b80821115620002d9576000816000905550600101620002bf565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200030f82620002e2565b9050919050565b620003218162000302565b81146200032d57600080fd5b50565b600081519050620003418162000316565b92915050565b60006020828403121562000360576200035f620002dd565b5b6000620003708482850162000330565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003c157607f821691505b60208210811415620003d857620003d762000379565b5b50919050565b614e4c80620003ee6000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c8063715018a61161013b5780639f3fbecf116100b8578063c10e99721161007c578063c10e9972146106b8578063c87b56dd146106e8578063da863ed614610718578063e985e9c514610734578063f2fde38b146107645761023d565b80639f3fbecf14610614578063a01eda8f14610644578063a22cb46514610662578063b88d4fde1461067e578063c002d23d1461069a5761023d565b80638eaf1ff2116100ff5780638eaf1ff214610580578063959d16201461059e57806395d89b41146105bc578063964615b0146105da57806398d9e0bd146105f85761023d565b8063715018a6146104ee5780638456cb59146104f8578063867ca78214610502578063878f923c146105325780638da5cb5b146105625761023d565b80633f4ba83a116101c9578063561373871161018d57806356137387146104245780635c975abb146104545780636352211e146104725780636817031b146104a257806370a08231146104be5761023d565b80633f4ba83a1461038057806342842e0e1461038a578063438b6300146103a65780634f6ccce7146103d6578063500bef84146104065761023d565b8063095ea7b311610210578063095ea7b3146102dc57806318160ddd146102f857806323b872dd146103165780632f745c591461033257806332cb6b0c146103625761023d565b806301ffc9a71461024257806302fc347b1461027257806306fdde031461028e578063081812fc146102ac575b600080fd5b61025c6004803603810190610257919061346f565b610780565b60405161026991906134b7565b60405180910390f35b61028c6004803603810190610287919061355c565b610792565b005b610296610869565b6040516102a39190613635565b60405180910390f35b6102c660048036038101906102c1919061368d565b6108fb565b6040516102d391906136c9565b60405180910390f35b6102f660048036038101906102f191906136e4565b610980565b005b610300610a98565b60405161030d9190613733565b60405180910390f35b610330600480360381019061032b919061374e565b610aa5565b005b61034c600480360381019061034791906136e4565b610b05565b6040516103599190613733565b60405180910390f35b61036a610baa565b6040516103779190613733565b60405180910390f35b610388610bb0565b005b6103a4600480360381019061039f919061374e565b610c36565b005b6103c060048036038101906103bb91906137a1565b610c56565b6040516103cd919061388c565b60405180910390f35b6103f060048036038101906103eb919061368d565b610d04565b6040516103fd9190613733565b60405180910390f35b61040e610d75565b60405161041b91906134b7565b60405180910390f35b61043e600480360381019061043991906137a1565b610f97565b60405161044b9190613733565b60405180910390f35b61045c610faf565b60405161046991906134b7565b60405180910390f35b61048c6004803603810190610487919061368d565b610fc6565b60405161049991906136c9565b60405180910390f35b6104bc60048036038101906104b791906137a1565b611078565b005b6104d860048036038101906104d391906137a1565b611138565b6040516104e59190613733565b60405180910390f35b6104f66111f0565b005b610500611278565b005b61051c600480360381019061051791906137a1565b6112fe565b60405161052991906134b7565b60405180910390f35b61054c600480360381019061054791906137a1565b61131e565b60405161055991906134b7565b60405180910390f35b61056a61133e565b60405161057791906136c9565b60405180910390f35b610588611368565b6040516105959190613733565b60405180910390f35b6105a6611372565b6040516105b39190613733565b60405180910390f35b6105c4611377565b6040516105d19190613635565b60405180910390f35b6105e2611409565b6040516105ef9190613733565b60405180910390f35b610612600480360381019061060d919061355c565b61140e565b005b61062e600480360381019061062991906137a1565b6114e5565b60405161063b9190613733565b60405180910390f35b61064c6115ef565b6040516106599190613733565b60405180910390f35b61067c6004803603810190610677919061355c565b6115f5565b005b610698600480360381019061069391906139e3565b61160b565b005b6106a261166d565b6040516106af9190613733565b60405180910390f35b6106d260048036038101906106cd91906137a1565b61167a565b6040516106df9190613733565b60405180910390f35b61070260048036038101906106fd919061368d565b61173d565b60405161070f9190613635565b60405180910390f35b610732600480360381019061072d9190613a9f565b61174f565b005b61074e60048036038101906107499190613acc565b611b45565b60405161075b91906134b7565b60405180910390f35b61077e600480360381019061077991906137a1565b611bd9565b005b600061078b82611cd1565b9050919050565b61079a611d4b565b73ffffffffffffffffffffffffffffffffffffffff166107b861133e565b73ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590613b58565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606000805461087890613ba7565b80601f01602080910402602001604051908101604052809291908181526020018280546108a490613ba7565b80156108f15780601f106108c6576101008083540402835291602001916108f1565b820191906000526020600020905b8154815290600101906020018083116108d457829003601f168201915b5050505050905090565b600061090682611d53565b610945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093c90613c4b565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061098b82610fc6565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390613cdd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a1b611d4b565b73ffffffffffffffffffffffffffffffffffffffff161480610a4a5750610a4981610a44611d4b565b611b45565b5b610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090613d6f565b60405180910390fd5b610a938383611dbf565b505050565b6000600880549050905090565b610ab6610ab0611d4b565b82611e78565b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613e01565b60405180910390fd5b610b00838383611f56565b505050565b6000610b1083611138565b8210610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4890613e93565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6105dc81565b610bb8611d4b565b73ffffffffffffffffffffffffffffffffffffffff16610bd661133e565b73ffffffffffffffffffffffffffffffffffffffff1614610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390613b58565b60405180910390fd5b610c346121bd565b565b610c518383836040518060200160405280600081525061160b565b505050565b60606000610c6383611138565b905060008167ffffffffffffffff811115610c8157610c806138b8565b5b604051908082528060200260200182016040528015610caf5781602001602082028036833780820191505090505b50905060005b82811015610cf957610cc78582610b05565b828281518110610cda57610cd9613eb3565b5b6020026020010181815250508080610cf190613f11565b915050610cb5565b508092505050919050565b6000610d0e610a98565b8210610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613fcc565b60405180910390fd5b60088281548110610d6357610d62613eb3565b5b90600052602060002001549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90614038565b60405180910390fd5b7f0c1175222d585dd400f132e8da1fa352c61ee351c2a3073be8480a2275d6bb4260405160405180910390a1600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ef091906136c9565b602060405180830381865afa158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f31919061406d565b6040518463ffffffff1660e01b8152600401610f4f9392919061409a565b6020604051808303816000875af1158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9291906140e6565b905090565b60126020528060005260406000206000915090505481565b6000600b60009054906101000a900460ff16905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690614185565b60405180910390fd5b80915050919050565b611080611d4b565b73ffffffffffffffffffffffffffffffffffffffff1661109e61133e565b73ffffffffffffffffffffffffffffffffffffffff16146110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90613b58565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090614217565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f8611d4b565b73ffffffffffffffffffffffffffffffffffffffff1661121661133e565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613b58565b60405180910390fd5b611276600061225f565b565b611280611d4b565b73ffffffffffffffffffffffffffffffffffffffff1661129e61133e565b73ffffffffffffffffffffffffffffffffffffffff16146112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90613b58565b60405180910390fd5b6112fc612325565b565b60106020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600f54905090565b601981565b60606001805461138690613ba7565b80601f01602080910402602001604051908101604052809291908181526020018280546113b290613ba7565b80156113ff5780601f106113d4576101008083540402835291602001916113ff565b820191906000526020600020905b8154815290600101906020018083116113e257829003601f168201915b5050505050905090565b603281565b611416611d4b565b73ffffffffffffffffffffffffffffffffffffffff1661143461133e565b73ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190613b58565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115625760646014680ad78ebc5ac62000006115519190614237565b61155b91906142c0565b90506115ea565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115dd5760646028680ad78ebc5ac62000006115cc9190614237565b6115d691906142c0565b90506115ea565b680ad78ebc5ac620000090505b919050565b600f5481565b611607611600611d4b565b83836123c8565b5050565b61161c611616611d4b565b83611e78565b61165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290613e01565b60405180910390fd5b61166784848484612535565b50505050565b680ad78ebc5ac620000081565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116d75760329050611738565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117325760199050611738565b6105dc90505b919050565b606061174882612591565b9050919050565b6000611759610a98565b90506000611766336114e5565b905060008360ff16826117799190614237565b905060006117863361167a565b905081600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016117e491906136c9565b602060405180830381865afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611825919061406d565b1015611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90614363565b60405180910390fd5b60008560ff16116118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a3906143cf565b60405180910390fd5b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548660ff166118fb91906143ef565b111561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611933906144b7565b60405180910390fd5b6105dc8560ff168561194e91906143ef565b111561198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690614523565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016119ee9392919061409a565b6020604051808303816000875af1158015611a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3191906140e6565b5081600f54611a4091906143ef565b600f8190555060005b8560ff16811015611aac576000611a60600c6126e3565b9050611a6c600c6126f1565b611a763382612707565b611a9881604051806080016040528060508152602001614dc760509139612725565b508080611aa490613f11565b915050611a49565b508460ff16601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afb91906143ef565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611be1611d4b565b73ffffffffffffffffffffffffffffffffffffffff16611bff61133e565b73ffffffffffffffffffffffffffffffffffffffff1614611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c90613b58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc906145b5565b60405180910390fd5b611cce8161225f565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d445750611d4382612799565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611e3283610fc6565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611e8382611d53565b611ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb990614647565b60405180910390fd5b6000611ecd83610fc6565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f3c57508373ffffffffffffffffffffffffffffffffffffffff16611f24846108fb565b73ffffffffffffffffffffffffffffffffffffffff16145b80611f4d5750611f4c8185611b45565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611f7682610fc6565b73ffffffffffffffffffffffffffffffffffffffff1614611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc3906146d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120339061476b565b60405180910390fd5b61204783838361287b565b612052600082611dbf565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120a2919061478b565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120f991906143ef565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46121b88383836128d3565b505050565b6121c5610faf565b612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fb9061480b565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612248611d4b565b60405161225591906136c9565b60405180910390a1565b6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61232d610faf565b1561236d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236490614877565b60405180910390fd5b6001600b60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123b1611d4b565b6040516123be91906136c9565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e906148e3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161252891906134b7565b60405180910390a3505050565b612540848484611f56565b61254c848484846128d8565b61258b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258290614975565b60405180910390fd5b50505050565b606061259c82611d53565b6125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d290614a07565b60405180910390fd5b6000600a600084815260200190815260200160002080546125fb90613ba7565b80601f016020809104026020016040519081016040528092919081815260200182805461262790613ba7565b80156126745780601f1061264957610100808354040283529160200191612674565b820191906000526020600020905b81548152906001019060200180831161265757829003601f168201915b505050505090506000612685612a60565b905060008151141561269b5781925050506126de565b6000825111156126d05780826040516020016126b8929190614a63565b604051602081830303815290604052925050506126de565b6126d984612a77565b925050505b919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b612721828260405180602001604052806000815250612b1e565b5050565b61272e82611d53565b61276d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276490614af9565b60405180910390fd5b80600a60008481526020019081526020016000209080519060200190612794929190613360565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061286457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612874575061287382612b79565b5b9050919050565b612883610faf565b156128c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ba90614877565b60405180910390fd5b6128ce838383612be3565b505050565b505050565b60006128f98473ffffffffffffffffffffffffffffffffffffffff16612cf7565b15612a53578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612922611d4b565b8786866040518563ffffffff1660e01b81526004016129449493929190614b6e565b6020604051808303816000875af192505050801561298057506040513d601f19601f8201168201806040525081019061297d9190614bcf565b60015b612a03573d80600081146129b0576040519150601f19603f3d011682016040523d82523d6000602084013e6129b5565b606091505b506000815114156129fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f290614975565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a58565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060612a8282611d53565b612ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab890614c6e565b60405180910390fd5b6000612acb612a60565b90506000815111612aeb5760405180602001604052806000815250612b16565b80612af584612d1a565b604051602001612b06929190614a63565b6040516020818303038152906040525b915050919050565b612b288383612e7b565b612b3560008484846128d8565b612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b90614975565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612bee838383613055565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c3157612c2c8161305a565b612c70565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612c6f57612c6e83826130a3565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cb357612cae81613210565b612cf2565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612cf157612cf082826132e1565b5b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606000821415612d62576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612e76565b600082905060005b60008214612d94578080612d7d90613f11565b915050600a82612d8d91906142c0565b9150612d6a565b60008167ffffffffffffffff811115612db057612daf6138b8565b5b6040519080825280601f01601f191660200182016040528015612de25781602001600182028036833780820191505090505b5090505b60008514612e6f57600182612dfb919061478b565b9150600a85612e0a9190614c8e565b6030612e1691906143ef565b60f81b818381518110612e2c57612e2b613eb3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612e6891906142c0565b9450612de6565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee290614d0b565b60405180910390fd5b612ef481611d53565b15612f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2b90614d77565b60405180910390fd5b612f406000838361287b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f9091906143ef565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613051600083836128d3565b5050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016130b084611138565b6130ba919061478b565b905060006007600084815260200190815260200160002054905081811461319f576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613224919061478b565b905060006009600084815260200190815260200160002054905060006008838154811061325457613253613eb3565b5b90600052602060002001549050806008838154811061327657613275613eb3565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806132c5576132c4614d97565b5b6001900381819060005260206000200160009055905550505050565b60006132ec83611138565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b82805461336c90613ba7565b90600052602060002090601f01602090048101928261338e57600085556133d5565b82601f106133a757805160ff19168380011785556133d5565b828001600101855582156133d5579182015b828111156133d45782518255916020019190600101906133b9565b5b5090506133e291906133e6565b5090565b5b808211156133ff5760008160009055506001016133e7565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61344c81613417565b811461345757600080fd5b50565b60008135905061346981613443565b92915050565b6000602082840312156134855761348461340d565b5b60006134938482850161345a565b91505092915050565b60008115159050919050565b6134b18161349c565b82525050565b60006020820190506134cc60008301846134a8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134fd826134d2565b9050919050565b61350d816134f2565b811461351857600080fd5b50565b60008135905061352a81613504565b92915050565b6135398161349c565b811461354457600080fd5b50565b60008135905061355681613530565b92915050565b600080604083850312156135735761357261340d565b5b60006135818582860161351b565b925050602061359285828601613547565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135d65780820151818401526020810190506135bb565b838111156135e5576000848401525b50505050565b6000601f19601f8301169050919050565b60006136078261359c565b61361181856135a7565b93506136218185602086016135b8565b61362a816135eb565b840191505092915050565b6000602082019050818103600083015261364f81846135fc565b905092915050565b6000819050919050565b61366a81613657565b811461367557600080fd5b50565b60008135905061368781613661565b92915050565b6000602082840312156136a3576136a261340d565b5b60006136b184828501613678565b91505092915050565b6136c3816134f2565b82525050565b60006020820190506136de60008301846136ba565b92915050565b600080604083850312156136fb576136fa61340d565b5b60006137098582860161351b565b925050602061371a85828601613678565b9150509250929050565b61372d81613657565b82525050565b60006020820190506137486000830184613724565b92915050565b6000806000606084860312156137675761376661340d565b5b60006137758682870161351b565b93505060206137868682870161351b565b925050604061379786828701613678565b9150509250925092565b6000602082840312156137b7576137b661340d565b5b60006137c58482850161351b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61380381613657565b82525050565b600061381583836137fa565b60208301905092915050565b6000602082019050919050565b6000613839826137ce565b61384381856137d9565b935061384e836137ea565b8060005b8381101561387f5781516138668882613809565b975061387183613821565b925050600181019050613852565b5085935050505092915050565b600060208201905081810360008301526138a6818461382e565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138f0826135eb565b810181811067ffffffffffffffff8211171561390f5761390e6138b8565b5b80604052505050565b6000613922613403565b905061392e82826138e7565b919050565b600067ffffffffffffffff82111561394e5761394d6138b8565b5b613957826135eb565b9050602081019050919050565b82818337600083830152505050565b600061398661398184613933565b613918565b9050828152602081018484840111156139a2576139a16138b3565b5b6139ad848285613964565b509392505050565b600082601f8301126139ca576139c96138ae565b5b81356139da848260208601613973565b91505092915050565b600080600080608085870312156139fd576139fc61340d565b5b6000613a0b8782880161351b565b9450506020613a1c8782880161351b565b9350506040613a2d87828801613678565b925050606085013567ffffffffffffffff811115613a4e57613a4d613412565b5b613a5a878288016139b5565b91505092959194509250565b600060ff82169050919050565b613a7c81613a66565b8114613a8757600080fd5b50565b600081359050613a9981613a73565b92915050565b600060208284031215613ab557613ab461340d565b5b6000613ac384828501613a8a565b91505092915050565b60008060408385031215613ae357613ae261340d565b5b6000613af18582860161351b565b9250506020613b028582860161351b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b426020836135a7565b9150613b4d82613b0c565b602082019050919050565b60006020820190508181036000830152613b7181613b35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bbf57607f821691505b60208210811415613bd357613bd2613b78565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613c35602c836135a7565b9150613c4082613bd9565b604082019050919050565b60006020820190508181036000830152613c6481613c28565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cc76021836135a7565b9150613cd282613c6b565b604082019050919050565b60006020820190508181036000830152613cf681613cba565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613d596038836135a7565b9150613d6482613cfd565b604082019050919050565b60006020820190508181036000830152613d8881613d4c565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613deb6031836135a7565b9150613df682613d8f565b604082019050919050565b60006020820190508181036000830152613e1a81613dde565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613e7d602b836135a7565b9150613e8882613e21565b604082019050919050565b60006020820190508181036000830152613eac81613e70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f1c82613657565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f4f57613f4e613ee2565b5b600182019050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613fb6602c836135a7565b9150613fc182613f5a565b604082019050919050565b60006020820190508181036000830152613fe581613fa9565b9050919050565b7f43616c6c6572206973206e6f7420746865205661756c74000000000000000000600082015250565b60006140226017836135a7565b915061402d82613fec565b602082019050919050565b6000602082019050818103600083015261405181614015565b9050919050565b60008151905061406781613661565b92915050565b6000602082840312156140835761408261340d565b5b600061409184828501614058565b91505092915050565b60006060820190506140af60008301866136ba565b6140bc60208301856136ba565b6140c96040830184613724565b949350505050565b6000815190506140e081613530565b92915050565b6000602082840312156140fc576140fb61340d565b5b600061410a848285016140d1565b91505092915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b600061416f6029836135a7565b915061417a82614113565b604082019050919050565b6000602082019050818103600083015261419e81614162565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000614201602a836135a7565b915061420c826141a5565b604082019050919050565b60006020820190508181036000830152614230816141f4565b9050919050565b600061424282613657565b915061424d83613657565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561428657614285613ee2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142cb82613657565b91506142d683613657565b9250826142e6576142e5614291565b5b828204905092915050565b7f596f75722057616c6c657420646f6573206e6f74206861766520656e6f75676860008201527f2044414900000000000000000000000000000000000000000000000000000000602082015250565b600061434d6024836135a7565b9150614358826142f1565b604082019050919050565b6000602082019050818103600083015261437c81614340565b9050919050565b7f4d696e74206174206c65617374203120746f6d61746f00000000000000000000600082015250565b60006143b96016836135a7565b91506143c482614383565b602082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b60006143fa82613657565b915061440583613657565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561443a57614439613ee2565b5b828201905092915050565b7f596f752068617665207265616368656420796f7572206c696d6974206f66207460008201527f6f6b656e73000000000000000000000000000000000000000000000000000000602082015250565b60006144a16025836135a7565b91506144ac82614445565b604082019050919050565b600060208201905081810360008301526144d081614494565b9050919050565b7f507572636861736520776f756c6420657863656564206d617820746f6b656e73600082015250565b600061450d6020836135a7565b9150614518826144d7565b602082019050919050565b6000602082019050818103600083015261453c81614500565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061459f6026836135a7565b91506145aa82614543565b604082019050919050565b600060208201905081810360008301526145ce81614592565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614631602c836135a7565b915061463c826145d5565b604082019050919050565b6000602082019050818103600083015261466081614624565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006146c36025836135a7565b91506146ce82614667565b604082019050919050565b600060208201905081810360008301526146f2816146b6565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006147556024836135a7565b9150614760826146f9565b604082019050919050565b6000602082019050818103600083015261478481614748565b9050919050565b600061479682613657565b91506147a183613657565b9250828210156147b4576147b3613ee2565b5b828203905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006147f56014836135a7565b9150614800826147bf565b602082019050919050565b60006020820190508181036000830152614824816147e8565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006148616010836135a7565b915061486c8261482b565b602082019050919050565b6000602082019050818103600083015261489081614854565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006148cd6019836135a7565b91506148d882614897565b602082019050919050565b600060208201905081810360008301526148fc816148c0565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061495f6032836135a7565b915061496a82614903565b604082019050919050565b6000602082019050818103600083015261498e81614952565b9050919050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b60006149f16031836135a7565b91506149fc82614995565b604082019050919050565b60006020820190508181036000830152614a20816149e4565b9050919050565b600081905092915050565b6000614a3d8261359c565b614a478185614a27565b9350614a578185602086016135b8565b80840191505092915050565b6000614a6f8285614a32565b9150614a7b8284614a32565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000614ae3602e836135a7565b9150614aee82614a87565b604082019050919050565b60006020820190508181036000830152614b1281614ad6565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614b4082614b19565b614b4a8185614b24565b9350614b5a8185602086016135b8565b614b63816135eb565b840191505092915050565b6000608082019050614b8360008301876136ba565b614b9060208301866136ba565b614b9d6040830185613724565b8181036060830152614baf8184614b35565b905095945050505050565b600081519050614bc981613443565b92915050565b600060208284031215614be557614be461340d565b5b6000614bf384828501614bba565b91505092915050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614c58602f836135a7565b9150614c6382614bfc565b604082019050919050565b60006020820190508181036000830152614c8781614c4b565b9050919050565b6000614c9982613657565b9150614ca483613657565b925082614cb457614cb3614291565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614cf56020836135a7565b9150614d0082614cbf565b602082019050919050565b60006020820190508181036000830152614d2481614ce8565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614d61601c836135a7565b9150614d6c82614d2b565b602082019050919050565b60006020820190508181036000830152614d9081614d54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d547254424563314c4453487375716f614e524d7236366158735a61624b516751663973613737444469717548a26469706673582212205e9cf8c1a35c5ff7a97e55e30c8c09b709bfe5ab42dddc0232cccff6451263d364736f6c634300080a0033000000000000000000000000d586e7f844cea2f87f50152665bcbc2c279d8d70