```\nfunction distributeAllNFT() external {\n    require(block.timestamp > getEndLMTime(),\n        "2 weeks after liquidity mining time has not expired");\n    require(!isNFTDistributed, "NFT is already distributed");\n\n    for (uint256 i = 0; i < leaderboard.length; i++) {\n        address[] memory \_groupLeaders = groupsLeaders[leaderboard[i]];\n\n        for (uint256 j = 0; j < \_groupLeaders.length; j++) {\n            \_sendNFT(j, \_groupLeaders[j]);\n        }\n    }\n\n    for (uint256 i = 0; i < topUsers.length; i++) {\n        address \_currentAddress = topUsers[i];\n        LMNFT.safeTransferFrom(address(this), \_currentAddress, 1, 1, "");\n        emit NFTSent(\_currentAddress, 1);\n    }\n\n    isNFTDistributed = true;\n}\n```\n