Pinkstack/roblox-luau-corpus-text huggingface dataset:
------------------------------------------------------------------------
-- parse part of an if control structure, including the condition
-- * used in ifstat()
------------------------------------------------------------------------


function luaY:test_then_block(ls)
  -- test_then_block -> [IF | ELSEIF] cond THEN block
  luaX:next(ls)  -- skip IF or ELSEIF
  local condexit = self:cond(ls)
  self:checknext(ls, "TK_THEN")
  self:block(ls)  -- `then' part
  return condexit
end
--- Creates a listable type from a singlular type


function Util.MakeListableType(type, override)
	local listableType = {
		Listable = true,
		Transform = type.Transform,
		Validate = type.Validate,
		ValidateOnce = type.ValidateOnce,
		Autocomplete = type.Autocomplete,
		Default = type.Default,
		Parse = function(...)
			return {type.Parse(...)}
		end
	}

	if override then
		for key, value in pairs(override) do
			listableType[key] = value
		end
	end

	return listableType
end

local function encodeCommandEscape(text)
	return (text:gsub("\\%$", "___!CMDR_DOLLAR!___"))
end

local function decodeCommandEscape(text)
	return (text:gsub("___!CMDR_DOLLAR!___", "$"))
end

function Util.RunCommandString(dispatcher, commandString)
	commandString = Util.ParseEscapeSequences(commandString)
	commandString = Util.EncodeEscapedOperators(commandString)

	local commands = commandString:split("&&")

	local output = ""
	for i, command in ipairs(commands) do
		local outputEncoded = output:gsub("%$", "\\x24")
		command = command:gsub("||", output:find("%s") and ("%q"):format(outputEncoded) or outputEncoded)

		output = tostring(
			dispatcher:EvaluateAndRun(
				(
					Util.RunEmbeddedCommands(dispatcher, command)
				)
			)
		)


		if i == #commands then
			return output
		end
	end
end
-- Light System.



LightSystem = script.Parent				-- Hello, Variables here
Lights = LightSystem.Lights
Switch = LightSystem.Button
Switch1 = Switch.Button1
Switch2 = Switch.Button2


on = false

children = Lights:GetChildren()

function onClicked()	
	if on == false then
		on = true
		Switch1.Transparency = 0
		Switch2.Transparency = 1
		for i = 1, #children do
			children[i].PointLight.Enabled = true
			print("Lights On")
		end
	elseif on == true then
		on = false
		Switch1.Transparency = 1
		Switch2.Transparency = 0
		for i = 1, #children do
			children[i].PointLight.Enabled = false
			print("Lights Off")
		end
	end
end

Switch.ClickDetector.MouseClick:connect(onClicked)
-- Variables (best not to touch these!)


local button = script.Parent .Parent.Parent
local car = script.Parent.Parent.Parent.Parent.Car.Value
local sound = script.Parent.Parent.Start
local st = script.Parent.Parent.Stall
st.Parent = car.DriveSeat
sound.Parent = car.DriveSeat -- What brick the start sound is playing from.
button.MouseButton1Click:connect(function() -- Event when the button is clicked
	if script.Parent.Parent.Parent.Text == "Engine: Off" then -- If the text says it's off then..
		sound:Play() -- Startup sound plays..
		wait(0.8) -- I don't know what to put for this
		script.Parent.Parent.Parent.Parent.IsOn.Value = true -- The car is is on, or in other words, start up the car.
		button.Text = "Engine: On"  -- You don't really need this, but I would keep it.
	else -- If it's on then when you click the button,
		st:play()
		script.Parent.Parent.Parent.Parent.IsOn.Value = false -- The car is turned off.
		button.Text = "Engine: Off"
	end -- Don't touch this.
end) -- And don't touch this either.
------Respawn------


local marine = script.Parent.Parent.Parent
local myHead = marine.Head
local myHuman = marine.Humanoid

local oldHealth = myHuman.Health
local healthAfterDamage = myHuman.Health

local clone = marine:Clone()

local modules = script.Parent.Parent.Modules
local core = require(modules.CoreModule)
local actions = require(modules.ActionsModule)
local status = require(modules.Status)

local combatModule = require(modules:WaitForChild("CombatModule"))

local ArmorDurability = combatModule.ArmorDurability
local MaxArmorDurability = ArmorDurability
local ShowArmorBar = combatModule.ShowArmorBar

local DeathAnimation = myHuman:LoadAnimation(marine:WaitForChild("DeathAnimation"))

local ArmorGUI = myHead:WaitForChild("ArmorBar")
local ArmorFrame = ArmorGUI:WaitForChild("MainFrame")
local ArmorBar = ArmorFrame:WaitForChild("Bar")
local ArmorFill = ArmorBar:WaitForChild("Fill")

local HealthGUI = myHead:WaitForChild("HealthBar")
local HealthFrame = HealthGUI:WaitForChild("MainFrame")
local HealthBar = HealthFrame:WaitForChild("Bar")
local HealthFill = HealthBar:WaitForChild("Fill")
local HealthShading = HealthFill:WaitForChild("Shading")

local NameTag = myHead:WaitForChild("NameTag")
local NameFrame = NameTag:WaitForChild("MainFrame")
local NameText = NameFrame:WaitForChild("TextLabel")

local OverrideDefaultGUI = true -- turn this to false if u want to use the default roblox health gui and name gui

NameText.Text = marine.Name

if ShowArmorBar == true then
	ArmorGUI.Enabled = true
else
	ArmorGUI.Enabled = false
end

if OverrideDefaultGUI == true then
	HealthGUI.Enabled = true
	NameTag.Enabled = true
else
	HealthGUI.Enabled = false
	NameTag.Enabled = false
end

local TweenService = game:GetService("TweenService")
-- p = period
-- a = amplitud


local function inOutElastic(t, b, c, d, a, p)
  if t == 0 then return b end

  t = t / d * 2

  if t == 2 then return b + c end

  if not p then p = d * (0.3 * 1.5) end
  if not a then a = 0 end

  if not a or a < abs(c) then
    a = c
    s = p / 4
  else
    s = p / (2 * pi) * asin(c / a)
  end

  if t < 1 then
    t = t - 1
    return -0.5 * (a * pow(2, 10 * t) * sin((t * d - s) * (2 * pi) / p)) + b
  else
    t = t - 1
    return a * pow(2, -10 * t) * sin((t * d - s) * (2 * pi) / p ) * 0.5 + c + b
  end
end
--"False" = Not Acceptable Keycard To Open. "True" = Acceptable Keycard To Open.--



local bool = true
local bool2 = true
local clearance = {
	["[SCP] Card-Omni"] = true, 
	["[SCP] Card-L5"] = true, 
	["[SCP] Card-L4"] = true,
	["[SCP] Card-L3"] = true,
	["[SCP] Card-L2"] = true,
	["[SCP] Card-L1"] = true
}

						--DO NOT EDIT BEYOND THIS LINE--
local LeftDoor = script.Parent
local RightDoor = script.Parent.Parent.RightDoor
local Open = false

local OpenSound = script.Parent.DoorOpen
local CloseSound = script.Parent.DoorClose

local Debounce = false
function openDoor()
	if not Debounce then
		Debounce = true
		if Open then
			Open = false
			CloseSound:Play()
			Spawn(function()
				for i = 1, 60 do
					LeftDoor.CFrame = LeftDoor.CFrame + (LeftDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
			Spawn(function()
				for i = 1, 60 do
					RightDoor.CFrame = RightDoor.CFrame + (RightDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
		else
			Open = true
			OpenSound:Play()
			Spawn(function()
				for i = 1, 60 do
					LeftDoor.CFrame = LeftDoor.CFrame - (LeftDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
			Spawn(function()
				for i = 1, 60 do
					RightDoor.CFrame = RightDoor.CFrame - (RightDoor.CFrame.lookVector * 0.1)
					wait(0.05)
				end
			end)
		end
		wait(2.5)
		Debounce = false
	end
end

script.Parent.Parent.KeycardReader1.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		wait(0.75)
		openDoor()
		wait(3)
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		wait(1)
		bool2 = true
	end
end)

script.Parent.Parent.KeycardReader2.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and bool then
		bool = false
		script.Parent.AccessGranted:play()
		wait(0.75)
		openDoor()
		wait(3)
		bool = true
	elseif touch.Name == "Handle" and not clearance[touch.Parent.Name] and bool2 then
		bool2 = false
		script.Parent.AccessDenied:play()
		wait(1)
		bool2 = true
	end
end)
--[światła]


p1 = script.Parent.Parent.p1
legansio = true

sp1 = script.Parent.Parent.sp1
legansio = true

p2 = script.Parent.Parent.p2
legansio = true

sp2 = script.Parent.Parent.sp2
legansio = true

p3 = script.Parent.Parent.p3
legansio = true

sp3 = script.Parent.Parent.sp3
legansio = true

p4 = script.Parent.Parent.p4
legansio = true

sp4 = script.Parent.Parent.sp4
legansio = true

p5 = script.Parent.Parent.p5
legansio = true

sp5 = script.Parent.Parent.sp5
legansio = true

p6 = script.Parent.Parent.p6
legansio = true

sp6 = script.Parent.Parent.sp6
legansio = true

p7 = script.Parent.Parent.p7
legansio = true

sp7 = script.Parent.Parent.sp7
legansio = true


l1 = script.Parent.Parent.l1
legansio = true

sl1 = script.Parent.Parent.sl1
legansio = true

l2 = script.Parent.Parent.l2
legansio = true

sl2 = script.Parent.Parent.sl2
legansio = true


l3 = script.Parent.Parent.l3
legansio = true

sl3 = script.Parent.Parent.sl3
legansio = true


l4 = script.Parent.Parent.l4
legansio = true

sl4 = script.Parent.Parent.sl4
legansio = true

l5 = script.Parent.Parent.l5
legansio = true

sl5 = script.Parent.Parent.sl5
legansio = true


l6 = script.Parent.Parent.l6
legansio = true

sl6 = script.Parent.Parent.sl6
legansio = true


l7 = script.Parent.Parent.l7
legansio = true

sl7 = script.Parent.Parent.sl7
legansio = true
-- ROBLOX deviation: printIteratorEntries is renamed to printTableEntries
-- /**
--  * Return entries (for example, of a map)
--  * with spacing, indentation, and comma
--  * without surrounding punctuation (for example, braces)
--  */


local function printTableEntries(
	t: any,
	config: Config,
	indentation: string,
	depth: number,
	refs: Refs,
	printer: Printer,
	separator_: string?
): string
	local separator = if separator_ then separator_ else ": "
	local result = ""

	-- ROBLOX TODO: remove this inline if-expression and function once Array.sort() fix merges
	local keys = Array.sort(
		Object.keys(t),
		if config.compareKeys ~= nil and config.compareKeys ~= Object.None
			then config.compareKeys
			else function(a, b)
				return if type(a) .. tostring(a) < type(b) .. tostring(b)
					then -1
					else if type(a) .. tostring(a) == type(b) .. tostring(b) then 0 else 1
			end
	)

	if #keys > 0 then
		result ..= config.spacingOuter

		local indentationNext = indentation .. config.indent

		for i = 1, #keys do
			local k = keys[i]
			local v = t[k]
			local name = printer(k, config, indentationNext, depth, refs)
			local value = printer(v, config, indentationNext, depth, refs)

			result ..= indentationNext .. name .. separator .. value

			if i < #keys then
				result = result .. "," .. config.spacingInner
			elseif not config.min then
				result = result .. ","
			end
		end

		result ..= config.spacingOuter .. indentation
	end

	return result
end
--= Variables =--



local camera = game.Workspace.CurrentCamera

local TweeningService = game:GetService("TweenService")

local UIS = game:GetService('UserInputService')

local Bar = script.Parent:WaitForChild('STMBackground'):WaitForChild('Bar')

local player = game.Players.LocalPlayer

local NormalWalkSpeed = 10
local NewWalkSpeed = 16

local power = 10

local sprinting = false

repeat wait() until game.Players.LocalPlayer.Character

local character = player.Character

local Humanoid = character.Humanoid
local runninganim = Humanoid:LoadAnimation(script.Parent.Runninganim)
--[[

	DEVELOPMENT HAS BEEN MOVED FROM DAVEY_BONES/SCELERATIS TO THE EPIX INCORPORATED GROUP

	CURRENT LOADER:
	https://www.roblox.com/library/7510622625/Adonis-Loader-Sceleratis-Davey-Bones-Epix

	CURRENT MODULE:
	https://www.roblox.com/library/7510592873/Adonis-MainModule

--]]
--Required Modules


local modules = script.Parent
local status = require(modules.Status)
local core = require(modules.CoreModule)

local marine = script.Parent.Parent.Parent
local myHuman = marine.Humanoid
local myRoot = marine.HumanoidRootPart
local m4 = marine.M4
local reloadSound = m4.Reload
local magazine = marine.Mag

local myHead = marine.Head
local myTorso = marine.Torso
local neck = myTorso.Neck
local lShoulder = myTorso["Left Shoulder"]
local rShoulder = myTorso["Right Shoulder"]
local lArmWeld = myTorso["Left Arm Weld"]
local rArmWeld = myTorso["Right Arm Weld"]
local lArm = marine["Left Arm"]
local rArm = marine["Right Arm"]
local m4Weld = m4["M4 Weld"]
local wait = task.wait
--Try to find an instance of the ClientWeaponsScript (tagged as "ClientWeaponsSystem") under the PlayerScripts. If this is found, it means
--that this instance of ClientWeaponsScript (of this version) was not the first one to run.


local PlayerScripts = LocalPlayer:WaitForChild("PlayerScripts")
local ClientWeaponsScript = nil
for i, child in pairs(PlayerScripts:GetChildren()) do
	if child:IsA("LocalScript") and child.Name == script.Name and CollectionService:HasTag(child, "ClientWeaponsSystem") then
		local childVersion = child:FindFirstChild("Version")
		if childVersion and childVersion:IsA("IntValue") and childVersion.Value == ScriptVersion then
			ClientWeaponsScript = child
			break
		end
	end
end
-- << FUNCTIONS >>


function module:Notice(noticeType, title, description, args)
	if not main.pdata or not main.pdata.SetupData then
		repeat wait(0.1) until (main.pdata and main.pdata.SetupData)
	end
	if main.settings.DisableAllNotices ~= true then
		spawn(function()
			local notice = template:Clone()
			notice.Visible = true
			notice.Title.Text = title
			notice.Desc.Text = description
			notice.NoticeType.Value = noticeType
			--[[spawn(function()
				wait()
				if notice.Desc.TextBounds.Y > 35 then
					notice.Desc.Position = UDim2.new(0.05, 0, 0.37, 0)
				end
			end)--]]
			if type(args) == "table" then
				local de = true
				local function checkDe()
					if de then
						de = false
						return true
					end
				end
				local clickAction = args[1]
				if clickAction == "ShowSpecificPage" then
					notice.Countdown.Value = 20
					notice.TextButton.MouseButton1Down:Connect(function()
						if not checkDe() then return end
						main:GetModule("GUIs"):ShowSpecificPage(args[2], args[3])
						endNotice(notice)
					end)
				elseif clickAction == "Teleport" then
					notice.Countdown.Value = 25
					notice.TextButton.MouseButton1Down:Connect(function()
						if not checkDe() then return end
						main.teleportService:Teleport(args[2])
						notice.Desc.Text = "Teleporting..."
					end)
				elseif clickAction == "PM" then
					notice.Countdown.Value = 999
					notice.TextButton.MouseButton1Down:Connect(function()
						if not checkDe() then return end
						main:GetModule("cf"):CreateNewCommandMenu("privateMessage", {args[2], args[3]}, 4)
						endNotice(notice)
					end)
				end
			end
			notice.CloseX.MouseButton1Down:Connect(function()
				endNotice(notice)
			end)
			table.insert(noticeQueue, notice)
			Queue()
		end)
	end
end
--local MasterControl = require(script.Parent)


local PathDisplay = nil
local LocalPlayer = Players.LocalPlayer

local bindAtPriorityFlagExists, bindAtPriorityFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserPlayerScriptsBindAtPriority")
end)
local FFlagPlayerScriptsBindAtPriority = bindAtPriorityFlagExists and bindAtPriorityFlagEnabled
--- Registers a type in the system.
-- name: The type Name. This must be unique.


function Registry:RegisterType (name, typeObject)
	if not name or typeof(name) ~= "string" then
		error("Invalid type name provided: nil")
	end

	if not name:find("^[%d%l]%w*$") then
		error(('Invalid type name provided: "%s", type names must be alphanumeric and start with a lower-case letter or a digit.'):format(name))
	end

	for key in pairs(typeObject) do
		if self.TypeMethods[key] == nil then
			error("Unknown key/method in type \"" .. name .. "\": " .. key)
		end
	end

	if self.Types[name] ~= nil then
		error(('Type "%s" has already been registered.'):format(name))
	end

	typeObject.Name = name
	typeObject.DisplayName = typeObject.DisplayName or name

	self.Types[name] = typeObject

	if typeObject.Prefixes then
		self:RegisterTypePrefix(name, typeObject.Prefixes)
	end
end

function Registry:RegisterTypePrefix (name, union)
	if not self.TypeAliases[name] then
		self.TypeAliases[name] = name
	end

	self.TypeAliases[name] = ("%s %s"):format(self.TypeAliases[name], union)
end

function Registry:RegisterTypeAlias (name, alias)
	assert(self.TypeAliases[name] == nil, ("Type alias %s already exists!"):format(alias))
	self.TypeAliases[name] = alias
end
--[[
	    ___      _______                _       _______
	   / _ |____/ ___/ /  ___ ____ ___ (_)__   /__  __/
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<     / /
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/	/_/   
						SecondLogic @ Inspare
						Avxnturador @ Novena
]]




local autoscaling	= true					--Estimates top speed

local UNITS	= {								--Click on speed to change units
											--First unit is default	
	{
		units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 230				,
		spInc			= 20				, -- Increment between labelled notches
	},
	
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 370				,
		spInc			= 40				, -- Increment between labelled notches
	},
	
	
}
-- doesn't actually provide any info ☻


local TS = game:GetService("TweenService")
for ind,btn in pairs(script.Parent:GetChildren()) do
	local deb = false
	if btn.Name == "Button" or btn.Name == "Button2" then
		local toggled
		if btn.Name == "Button" then
			toggled = false
		elseif btn.Name == "Button2" then
			toggled = true
		end
		local CD = Instance.new("ClickDetector",btn)
		CD.MaxActivationDistance = 5.5
		CD.MouseClick:Connect(function()
			if not deb then
				deb = true
				local toggleTS
				if not toggled then
					btn.Material = "Neon"
					btn.Color = Color3.fromRGB(131, 130, 133)
					toggleTS = TS:Create(btn,
						TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{
							CFrame = btn.CFrame * CFrame.new(0,0,.15),
							Color = Color3.fromRGB(255,0,0)
						})
				else
					btn.Material = "SmoothPlastic"
					toggleTS = TS:Create(btn,
						TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),
						{CFrame = btn.CFrame * CFrame.new(0,0,-.15),
							Color = Color3.fromRGB(163, 162, 165)
						})
				end
				toggleTS.Completed:Connect(function()
					toggled = not toggled
					deb = false
				end)
				toggleTS:Play()
			end
		end)
		end
end
-- ANimation


local Sound = script:WaitForChild("Haoshoku Sound")

UIS.InputBegan:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.Z and Debounce == 1 and Tool.Equip.Value == true and Tool.Active.Value == "None" then
		Debounce = 2
		Track1 = plr.Character.Humanoid:LoadAnimation(script.AnimationCharge)
		Track1:Play()
		script.RemoteEventS:FireServer()
		for i = 1,math.huge do
			if Debounce == 2 then
				
				plr.Character.HumanoidRootPart.Anchored = true
			else
				
				break
				end
	     wait()
	  end
	end
end)

UIS.InputEnded:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.Z and Debounce == 2 and Tool.Equip.Value == true and Tool.Active.Value == "None" then
		Debounce = 3
		local Track2 = plr.Character.Humanoid:LoadAnimation(script.AnimationRelease)
		Track2:Play()
		Track1:Stop()
		Sound:Play()
		local camera = game.Workspace.CurrentCamera
		local CameraShaker = require(game.ReplicatedStorage.SG.CameraShaker)
		local camshake = CameraShaker.new(Enum.RenderPriority.Camera.Value,function(shakeCFrame)
			camera.CFrame = camera.CFrame * shakeCFrame
		end)
		camshake:Start()
		camshake:Shake(CameraShaker.Presets.Explosion)
		local mousepos = Mouse.Hit
		script.RemoteEvent:FireServer(mousepos,Mouse.Hit.p)
		wait(1)
		plr.Character.LeftHand.EFhand:Destroy()
		plr.Character.RightHand.EFhand:Destroy()
		Track2:Stop()
		wait(.5)
		Tool.Active.Value = "None"
		wait(1.5)
		plr.Character.HumanoidRootPart.Anchored = false
		wait(5)
		Debounce = 1
	end
end)
-- Functions --




local function onClicked(player)
	
	
	
	
	local foundShirt = player.Character:FindFirstChild("Shirt") -- Tries to find Shirt
	if not foundShirt then -- if there is no shirt
		print("No shirt found, creating for "..player.Name)
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	else if foundShirt then -- if there is a shirt
		print("Shirt found, reconstructing for "..player.Name)
		player.Character.Shirt:remove()
		local newShirt = Instance.new("Shirt",player.Character)
		newShirt.Name = "Shirt"
	end
	end
	
	
	
	
	local foundPants = player.Character:FindFirstChild("Pants") -- Tries to find Pants
	if not foundPants then -- if there are no pants
		print("No pants found, creating for "..player.Name)
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	else if foundPants then -- if there are pants
		print("Pants found, reconstructing for "..player.Name)
		player.Character.Pants:remove()
		local newPants = Instance.new("Pants",player.Character)
		newPants.Name = "Pants"
	end
	end
	
	player.Character.Shirt.ShirtTemplate = shirtId
	player.Character.Pants.PantsTemplate = pantsId
	end





cDetector.MouseClick:connect(onClicked)
--[[
	This loads HD Admin into your game.
	
	Require the 'HD Admin MainModule' by the HD Admin group for automatic updates.
	
	You can view the HD Admin Main Module here:
	https://www.roblox.com/library/3239236979/HD
	
--]]



local loaderFolder = script.Parent.Parent
local mainModule = require(3239236979)
mainModule:Initialize(loaderFolder)
loaderFolder:Destroy()
-- Implements equivalent functionality to JavaScript's `array.indexOf`,
-- implementing the interface and behaviors defined at:
-- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
--
-- This implementation is loosely based on the one described in the polyfill
-- source in the above link


return function<T>(array: Array<T>, searchElement: T, fromIndex: number?): number
	local fromIndex_ = fromIndex or 1
	local length = #array

	-- In the JS impl, a negative fromIndex means we should use length - index;
	-- with Lua, of course, this means that 0 is still valid, but refers to the
	-- end of the array the way that '-1' would in JS
	if fromIndex_ < 1 then
		fromIndex_ = math.max(length - math.abs(fromIndex_), 1)
	end

	for i = fromIndex_, length do
		if array[i] == searchElement then
			return i
		end
	end

	return -1
end
-- dictionary of assetIds containing a list of userAssetIds


return Rodux.createReducer({}, {
	--[[
		action.assetId: string
		action.userAssetIdList: table
	]]
	[SetAvailableToSellAssetsFromFetchSellData.name] = function(state, action)
		local assetId = action.assetId
		local userAssetIdList = action.userAssetIdList

		return Cryo.Dictionary.join(state, {
			[assetId] = userAssetIdList,
		})
	end,

	--[[
		action.assetId: string
		action.userAssetId: string
	]]
	[AddAvailableToSellAsset.name] = function(state, action)
		local assetId = action.assetId
		local userAssetId = action.userAssetId
		local newList = { userAssetId }

		local currentInfo = state[assetId]
		if currentInfo then
			newList = Cryo.List.join(currentInfo, newList)
		end

		return Cryo.Dictionary.join(state, {
			[assetId] = newList,
		})
	end,

	--[[
		action.assetId: string
		action.userAssetId: string
	]]
	[RemoveAvailableToSellAsset.name] = function(state, action)
		local assetId = action.assetId

		local currentInfo = state[assetId]
		if not currentInfo then
			return state
		end

		local newList = Cryo.List.removeValue(currentInfo, action.userAssetId)

		return Cryo.Dictionary.join(state, {
			[assetId] = newList,
		})
	end,
})
-- warn(">>>>>>>>>>>>>>> Gamepass:",id)



script.Parent.Activated:Connect(function()
	game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id) -- вызов метода покупки GamePass
end)

while true do
	wait()
	gp = plr:FindFirstChild("Gamepass")
	if gp ~= nil then
		local id = script.Name
		tmp = gp:FindFirstChild(id)
		if id ~= nil then
			act=script.Parent.Activat			
			if id.Value == 0 then
				act.Text = "not active"
				act.TextColor3 = Color3.fromRGB(127,127,127)
			else
				act.Text = "Activated"
				act.TextColor3 = Color3.fromRGB(255,127,0)
			end
		end
	end
end