local function p(...)local p={}local d=select("\035",...)local T=select(1,...)for T,J in pairs(T)do local C=true for p=2,d,1 do if(select(p,...))[T]==nil then C=false break end end if C then p[T]=true end end return p end return p

local function intersect(...)
	local new = {}
	local argc = select('#', ...)
	local first = select(1, ...)

	for k, _ in pairs(first) do
		local intersects = true

		for i = 2, argc do
			if select(i, ...)[k] == nil then
				intersects = false
				break
			end
		end

		if intersects then
			new[k] = true
		end
	end

	return new
end

return intersect