client=nil service=nil return function(l)local b=l.Table or l.Tab local A=l.Update local L=l.AutoUpdate local K=l.LoadTime local a=l.gIndex local Z=l.gTable local M=l.Dots local R=l.Sanitize local m=l.Stacking local j=nil local P=nil local function s(b)local A={}for l,b in next,b do if type(b)=="\116\097\098\108\101"then A[l]={Text=b.Text,Desc=b.Desc,Time=b.Time,Filter=b.Filter,Duplicates=b.Duplicates}elseif type(b)=="\115\116\114\105\110\103"then A[l]={Text=b,Desc=b}end end if m then A={}local l=nil for b,L in next,A do L.Text=service.Trim(L.Text)L.Desc=service.Trim(L.Desc)if not l then l=L table.insert(A,L)elseif l.Text==L.Text and l.Desc==L.Desc then l.Duplicates=l.Duplicates and l.Duplicates+1 or 2 else l=L table.insert(A,L)end end end local L=next local K=nil while true do local b,a=L(A,K)if not b then break end a.Text=l.Sanitize and service.SanitizeString(a.Text)or a.Text if a.Duplicates then a.Text="\040\120"..(a.Duplicates..("\041 "..a.Text))end if a.Time then a.Text="\091"..(a.Time..("\093 "..a.Text))end end return A end local function O(l,b)local A={}b=b:lower()for l,L in next,l do if b==""or type(L)=="\115\116\114\105\110\103"and not(not(L:lower()):find(b))or type(L)=="\116\097\098\108\101"and(not(not L.Text)and not(not(L.Text:lower()):find(b))or L.Filter and(L.Filter:lower()):find(b))then table.insert(A,L)end end return A end local function f(l)if j.Text~="\083\101\097\114\099\104"and j.Text~=""then P:GenerateList(s(O(l,j.Text)))return end j.Text="\083\101\097\114\099\104"P:GenerateList(s(l))end local t={Name="\076\105\115\116",Title=l.Title;Size=l.Size or{225;200},MinSize={150;100}}local V=A if V then local L=b local K=l.UpdateArgs local a=l.UpdateArg V=function()L=client.Remote.Get("\085\112\100\097\116\101\076\105\115\116",A,unpack(K or{a}))if L then f(L)end end end t.OnRefresh=V local T=client.UI.Make("\087\105\110\100\111\119",t)P=T:Add("\083\099\114\111\108\108\105\110\103\070\114\097\109\101",{List={},ScrollBarThickness=2;BackgroundTransparency=1;Position=UDim2.new(0,5,0,30),Size=UDim2.new(1,-10,1,-30)})j=T:Add("\084\101\120\116\066\111\120",{Size=UDim2.new(1,-10,0,20),Position=UDim2.new(0,5,0,5),BackgroundTransparency=.5,BorderSizePixel=0;TextColor3=Color3.new(1,1,1),Text="\083\101\097\114\099\104",PlaceholderText="\083\101\097\114\099\104",TextStrokeTransparency=.8})j.FocusLost:connect(function(l)f(b)end)T:Ready()f(b)if A and L then while T.gTable.Active and wait(L)do T:Refresh()end end end


client = nil;
service = nil;
return function(p1)
	local v1 = p1.Table or p1.Tab;
	local l__Update__2 = p1.Update;
	local l__AutoUpdate__3 = p1.AutoUpdate;
	local l__LoadTime__4 = p1.LoadTime;
	local l__gIndex__5 = p1.gIndex;
	local l__gTable__6 = p1.gTable;
	local l__Dots__7 = p1.Dots;
	local l__Sanitize__8 = p1.Sanitize;
	local l__Stacking__1 = p1.Stacking;
	local u2 = nil;
	local u3 = nil;
	local function u4(p2)
		local v9 = {};
		for v10, v11 in next, p2 do
			if type(v11) == "table" then
				v9[v10] = {
					Text = v11.Text, 
					Desc = v11.Desc, 
					Time = v11.Time, 
					Filter = v11.Filter, 
					Duplicates = v11.Duplicates
				};
			elseif type(v11) == "string" then
				v9[v10] = {
					Text = v11, 
					Desc = v11
				};
			end;
		end;
		if l__Stacking__1 then
			v9 = {};
			local v12 = nil;
			for v13, v14 in next, v9 do
				v14.Text = service.Trim(v14.Text);
				v14.Desc = service.Trim(v14.Desc);
				if not v12 then
					v12 = v14;
					table.insert(v9, v14);
				elseif v12.Text == v14.Text and v12.Desc == v14.Desc then
					v12.Duplicates = v12.Duplicates and v12.Duplicates + 1 or 2;
				else
					v12 = v14;
					table.insert(v9, v14);
				end;
			end;
		end;
		local l__next__15 = next;
		local v16 = nil;
		while true do
			local v17, v18 = l__next__15(v9, v16);
			if not v17 then
				break;
			end;
			v18.Text = p1.Sanitize and service.SanitizeString(v18.Text) or v18.Text;
			if v18.Duplicates then
				v18.Text = "(x" .. v18.Duplicates .. ") " .. v18.Text;
			end;
			if v18.Time then
				v18.Text = "[" .. v18.Time .. "] " .. v18.Text;
			end;		
		end;
		return v9;
	end;
	local function u5(p3, p4)
		local v19 = {};
		p4 = p4:lower();
		for v20, v21 in next, p3 do
			if p4 == "" or type(v21) == "string" and not (not v21:lower():find(p4)) or type(v21) == "table" and (not (not v21.Text) and not (not v21.Text:lower():find(p4)) or v21.Filter and v21.Filter:lower():find(p4)) then
				table.insert(v19, v21);
			end;
		end;
		return v19;
	end;
	local function v22(p5)
		if u2.Text ~= "Search" and u2.Text ~= "" then
			u3:GenerateList(u4(u5(p5, u2.Text)));
			return;
		end;
		u2.Text = "Search";
		u3:GenerateList(u4(p5));
	end;
	local v23 = {
		Name = "List", 
		Title = p1.Title, 
		Size = p1.Size or { 225, 200 }, 
		MinSize = { 150, 100 }
	};
	local v24 = l__Update__2;
	if v24 then
		local u6 = v1;
		local l__UpdateArgs__7 = p1.UpdateArgs;
		local l__UpdateArg__8 = p1.UpdateArg;
		v24 = function()
			u6 = client.Remote.Get("UpdateList", l__Update__2, unpack(l__UpdateArgs__7 or { l__UpdateArg__8 }));
			if u6 then
				v22(u6);
			end;
		end;
	end;
	v23.OnRefresh = v24;
	local v25 = client.UI.Make("Window", v23);
	u3 = v25:Add("ScrollingFrame", {
		List = {}, 
		ScrollBarThickness = 2, 
		BackgroundTransparency = 1, 
		Position = UDim2.new(0, 5, 0, 30), 
		Size = UDim2.new(1, -10, 1, -30)
	});
	u2 = v25:Add("TextBox", {
		Size = UDim2.new(1, -10, 0, 20), 
		Position = UDim2.new(0, 5, 0, 5), 
		BackgroundTransparency = 0.5, 
		BorderSizePixel = 0, 
		TextColor3 = Color3.new(1, 1, 1), 
		Text = "Search", 
		PlaceholderText = "Search", 
		TextStrokeTransparency = 0.8
	});
	u2.FocusLost:connect(function(p6)
		v22(v1);
	end);
	v25:Ready();
	v22(v1);
	if l__Update__2 and l__AutoUpdate__3 then
		while v25.gTable.Active and wait(l__AutoUpdate__3) do
			v25:Refresh();		
		end;
	end;
end;
