function GuiController.getOtherScreenGuis(u)local R=Cryo.List.filter(u.player.PlayerGui:GetDescendants(),function(R)local X=false for u,S in ipairs(u.whitelist)do if S:getValue()==R then X=true break end end return R:IsA("\083\099\114\101\101\110\071\117\105")and(R.Enabled and not X)end)return R end function GuiController.getShownCoreGuis(u)local R=Cryo.List.filter(Enum.CoreGuiType:GetEnumItems(),function(R)if Enum.CoreGuiType.PlayerList==R or Enum.CoreGuiType.All==R then return false end return u.StarterGui:GetCoreGuiEnabled(R)end)return R end return GuiController

function GuiController:getOtherScreenGuis()
	local instances = Cryo.List.filter(self.player.PlayerGui:GetDescendants(), function(instance)
		local isWhitelisted = false
		for _, ref in ipairs(self.whitelist) do
			if ref:getValue() == instance then
				isWhitelisted = true
				break
			end
		end

		return instance:IsA("ScreenGui") and instance.Enabled and not isWhitelisted
	end)

	return instances
end

function GuiController:getShownCoreGuis()
	local shownCoreGuis = Cryo.List.filter(Enum.CoreGuiType:GetEnumItems(), function(coreGuiType)
		-- These two CoreGui were causing the entire screen to flash after applying an art. Not sure
		-- what's the underlying reason, but filtering them until we can figure it out.
		if Enum.CoreGuiType.PlayerList == coreGuiType or Enum.CoreGuiType.All == coreGuiType then
			return false
		end
		return self.StarterGui:GetCoreGuiEnabled(coreGuiType)
	end)

	return shownCoreGuis
end

return GuiController
