if (subject.length!=-1) key.character=string_cat(key.character,&capacity,&key.length,subject.character,subject.length);
key.character=string_cat(key.character,&capacity,&key.length,reason_is_mime?US"1":US"0",1);
key.character=string_cat(key.character,&capacity,&key.length,reason.character,reason.length);
if (subject.length!=-1) key.character=string_cat(key.character,&capacity,&key.length,subject.character,subject.length);
key.character=string_cat(key.character,&capacity,&key.length,reason_is_mime?US"1":US"0",1);
key.character=string_cat(key.character,&capacity,&key.length,reason.character,reason.length);