```\n/// @notice Adds an external ERC721 token as an additional prize that can be awarded\n/// @dev Only the Prize-Strategy owner/creator can assign external tokens,\n/// and they must be approved by the Prize-Pool\n/// NOTE: The NFT must already be owned by the Prize-Pool\n/// @param \_externalErc721 The address of an ERC721 token to be awarded\n/// @param \_tokenIds An array of token IDs of the ERC721 to be awarded\nfunction addExternalErc721Award(address \_externalErc721, uint256[] calldata \_tokenIds) external onlyOwnerOrListener {\n  // require(\_externalErc721.isContract(), "PeriodicPrizeStrategy/external-erc721-not-contract");\n  require(prizePool.canAwardExternal(\_externalErc721), "PeriodicPrizeStrategy/cannot-award-external");\n \n  if (!externalErc721s.contains(\_externalErc721)) {\n    externalErc721s.addAddress(\_externalErc721);\n  }\n\n  for (uint256 i = 0; i < \_tokenIds.length; i++) {\n    uint256 tokenId = \_tokenIds[i];\n    require(IERC721(\_externalErc721).ownerOf(tokenId) == address(prizePool), "PeriodicPrizeStrategy/unavailable-token");\n    externalErc721TokenIds[\_externalErc721].push(tokenId);\n  }\n\n  emit ExternalErc721AwardAdded(\_externalErc721, \_tokenIds);\n}\n```\n