SECU_PrintUTCTime(out, value, om, level+1);
SECU_PrintTimeChoice(out, value, om, level+1);
secu_PrintAttribute(FILE *out, SEC_PKCS7Attribute *attr, char *m, int level){    SECItem *value;    int i;    char om[100];    if (m) {    	SECU_Indent(out, level); fprintf(out, "%s:\n", m);    }    /*     * Should make this smarter; look at the type field and then decode     * and print the value(s) appropriately!     */    SECU_PrintObjectID(out, &(attr->type), "Type", level+1);    if (attr->values != NULL) {	i = 0;	while ((value = attr->values[i++]) != NULL) {	    sprintf(om, "Value (%d)%s", i, attr->encoded ? " (encoded)" : ""); 	    if (attr->encoded || attr->typeTag == NULL) {		SECU_PrintAsHex(out, value, om, level+1);	    } else {		switch (attr->typeTag->offset) {		  default:		    SECU_PrintAsHex(out, value, om, level+1);		    break;		  case SEC_OID_PKCS9_CONTENT_TYPE:		    SECU_PrintObjectID(out, value, om, level+1);		    break;		  case SEC_OID_PKCS9_SIGNING_TIME:		    SECU_PrintUTCTime(out, value, om, level+1);		    break;		}	    }	}    }}