local k={[1233952204]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+5 return true end end,[1233952208]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+10 return true end end;[1233952212]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+50 return true end end,[1233955620]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+100 return true end end;[1233955602]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+500 return true end end;[1233955632]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+1000 return true end end;[1233955638]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+5000 return true end end;[1233955645]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+10000 return true end end,[1233955664]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+50000 return true end end,[1233955679]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+100000 return true end end,[1233955695]=function(k,t)local i=t:FindFirstChild("\068\111\110\097\116\105\111\110\086\097\108\117\101")local r=i if r then r.Value=r.Value+500000 return true end end}MarketplaceService.ProcessReceipt=function(t)local i=t.PlayerId..("\095"..t.PurchaseId)local r=false local y,M=pcall(function()r=purchaseHistoryStore:GetAsync(i)end)if y and r then return Enum.ProductPurchaseDecision.PurchaseGranted elseif not y then error("\068\097\116\097 \115\116\111\114\101 \101\114\114\111\114\058"..M)end local P=Players:GetPlayerByUserId(t.PlayerId)if not P then return Enum.ProductPurchaseDecision.NotProcessedYet end local v=k[t.ProductId]local F,g=pcall(v,t,P)if not F or not g then warn("\069\114\114\111\114 \111\099\099\117\114\114\101\100 \119\104\105\108\101 \112\114\111\099\101\115\115\105\110\103 \097 \112\114\111\100\117\099\116 \112\117\114\099\104\097\115\101")print("\n\080\114\111\100\117\099\116\073\100\058",t.ProductId)print("\n\080\108\097\121\101\114\058",P)return Enum.ProductPurchaseDecision.NotProcessedYet end local E,H=pcall(function()purchaseHistoryStore:SetAsync(i,true)end)if not E then error("\067\097\110\110\111\116 \115\097\118\101 \112\117\114\099\104\097\115\101 \100\097\116\097\058 "..H)end return Enum.ProductPurchaseDecision.PurchaseGranted end
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {
	[1233952204] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 5
			return true
		end
	end,

	[1233952208] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 10
			return true
		end
	end,

	[1233952212] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 50
			return true
		end
	end,

	[1233955620] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 100
			return true
		end
	end,

	[1233955602] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 500
			return true
		end
	end,

	[1233955632] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 1000
			return true
		end
	end,

	[1233955638] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 5000
			return true
		end
	end,

	[1233955645] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 10000
			return true
		end
	end,

	[1233955664] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 50000
			return true
		end
	end,

	[1233955679] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 100000
			return true
		end
	end,

	[1233955695] = function(receipt, player)
		local stats = player:FindFirstChild("DonationValue")
		local donation = stats
		if donation then
			donation.Value = donation.Value + 500000
			return true
		end
	end,
}

MarketplaceService.ProcessReceipt = function(receiptInfo)
	local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
	local purchased = false
	local success, errorMessage = pcall(function()
		purchased = purchaseHistoryStore:GetAsync(playerProductKey)
	end)

	if success and purchased then
		return Enum.ProductPurchaseDecision.PurchaseGranted
	elseif not success then
		error("Data store error:" .. errorMessage)
	end

	local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
	if not player then
		return Enum.ProductPurchaseDecision.NotProcessedYet
	end

	local handler = productFunctions[receiptInfo.ProductId]

	local success, result = pcall(handler, receiptInfo, player)
	if not success or not result then
		warn("Error occurred while processing a product purchase")
		print("\nProductId:", receiptInfo.ProductId)
		print("\nPlayer:", player)
		return Enum.ProductPurchaseDecision.NotProcessedYet
	end

	local success, errorMessage = pcall(function()
		purchaseHistoryStore:SetAsync(playerProductKey, true)
	end)
	if not success then
		error("Cannot save purchase data: " .. errorMessage)
	end

	return Enum.ProductPurchaseDecision.PurchaseGranted
end
