local q do local function B(q,B)error(("\114\101\097\100\105\110\103 \110\111\110\101\120\105\115\116\101\110\116 \101\108\101\109\101\110\116 \037\113 \102\114\111\109 \108\111\099\107\101\100 \116\097\098\108\101"):format(tostring(B)),2)end local function j(q,B)error(("\119\114\105\116\105\110\103 \107\101\121 \037\113 \116\111 \108\111\099\107\101\100 \116\097\098\108\101"):format(tostring(B)),2)end local S={__index=B;__newindex=j}function q(q)setmetatable(q,S)return setmetatable({},{__index=q,__newindex=j;__metatable="\084\104\101 \109\101\116\097\116\097\098\108\101 \105\115 \108\111\099\107\101\100"})end end
-- create a proxy object for a table that prevents reading
-- empty keys, writing keys, and inspecting the metatable
local tableLock
do
	local function invalidRead(_, k)
		error(("reading nonexistent element %q from locked table"):format(tostring(k)), 2)
	end

	local function invalidWrite(_, k)
		error(("writing key %q to locked table"):format(tostring(k)), 2)
	end

	local RW_LOCK = {
		__index = invalidRead,
		__newindex = invalidWrite,
	}

	function tableLock(tbl)
		setmetatable(tbl, RW_LOCK)

		return setmetatable({}, {
			__index = tbl,
			__newindex = invalidWrite,
			__metatable = "The metatable is locked",
		})
	end
end
