secu_PrintAny(out, &tmp, NULL, level + 1);
SECU_PrintAny(out, &tmp, NULL, level + 1);
SECU_PrintSet(FILE *out, SECItem *t, char *m, int level){    int            type        = t->data[0] & SEC_ASN1_TAGNUM_MASK;    int            constructed = t->data[0] & SEC_ASN1_CONSTRUCTED;    const char *   label;    SECItem        my          = *t;    if (!constructed) {	SECU_PrintAsHex(out, t, m, level);        return;    }    if (SECSuccess != SECU_StripTagAndLength(&my))    	return;    SECU_Indent(out, level);    if (m) {    	fprintf(out, "%s: ", m);    }    if (type == SEC_ASN1_SET)    	label = "Set ";    else if (type == SEC_ASN1_SEQUENCE)    	label = "Sequence ";    else    	label = "";    fprintf(out,"%s{\n", label); /* } */    while (my.len >= 2) {	SECItem  tmp = my;        if (tmp.data[1] & 0x80) {	    unsigned int i;	    unsigned int lenlen = tmp.data[1] & 0x7f;	    if (lenlen > sizeof tmp.len)	        break;	    tmp.len = 0;	    for (i=0; i < lenlen; i++) {		tmp.len = (tmp.len << 8) | tmp.data[2+i];	    }	    tmp.len += lenlen + 2;	} else {	    tmp.len = tmp.data[1] + 2;	}	if (tmp.len > my.len) {	    tmp.len = my.len;	}	my.data += tmp.len;	my.len  -= tmp.len;	secu_PrintAny(out, &tmp, NULL, level + 1);    }    SECU_Indent(out, level); fprintf(out, /* { */ "}\n");}