local A=script.Parent local Z=A.Parent local T=require(Z.t)local j=T.table local function o(...)local A={}local Z=select("\035",...)if Z<=0 then return A end local T=select(1,...)assert(j(T))local o=#T for A=2,Z,1 do local Z=select(A,...)assert(j(Z))local T=#Z if T<o then o=T end end for T=1,o,1 do A[T]={}for Z=1,Z,1 do A[T][Z]=(select(Z,...))[T]end end return A end return o
local List = script.Parent

local Llama = List.Parent
local t = require(Llama.t)

local validate = t.table

local function zip(...)
	local new = {}
	local argCount = select('#', ...)

	if argCount <= 0 then
		return new
	end

	local firstList = select(1, ...)

	assert(validate(firstList))

	local minLen = #firstList

	for i = 2, argCount do
		local list = select(i, ...)

		assert(validate(list))

		local len = #list

		if len < minLen then
			minLen = len
		end
	end

	for i = 1, minLen do
		new[i] = {}
		
		for j = 1, argCount do
			new[i][j] = select(j, ...)[i]
		end
	end

	return new
end

return zip