#!/usr/local/bin/cz --
use b

def line(k)
	cstr v
	if cstr_is_empty(k):
		if match:
			pr(vec_cstr, rec)
			say()
		match = 0
		vec_Free(rec)
		vec_clear(rec)
	else:
		vec_push(rec, Strdup(k))
	v = split_kv(k)
	if strstr(k, key) && strstr(v, val):
		match = 1

Main:
	bit match = 0
	cstr key = "", val = NULL
	cstr k = NULL
	getargs(cstr, key, val)
	if !val:
		cstr key1 = Strdup(key)
		val = split_kv(key1)
		if strcmp(key, key1) == 0:
			swap(val, key1)
		key = key1
	new(rec, vec, cstr, 100)
	eachline(k):
		line(k)
	if k && !cstr_is_empty(k):
		line((cstr)"")
