return 0;
ret = 0; goto done;
int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt){	const ASN1_ITEM *it = tt->item;	if(tt->flags & ASN1_TFLG_OPTIONAL) {		asn1_template_clear(pval, tt);		return 1;	}	/* If ANY DEFINED BY nothing to do */	if(tt->flags & ASN1_TFLG_ADB_MASK) {		*pval = NULL;		return 1;	}	/* If SET OF or SEQUENCE OF, its a STACK */	if(tt->flags & ASN1_TFLG_SK_MASK) {		STACK_OF(ASN1_VALUE) *skval;		skval = sk_ASN1_VALUE_new_null();		if(!skval) {			ASN1err(ASN1_F_ASN1_TEMPLATE_NEW, ERR_R_MALLOC_FAILURE);			return 0;		}		*pval = (ASN1_VALUE *)skval;		return 1;	}	/* Otherwise pass it back to the item routine */	return asn1_item_ex_combine_new(pval, it, tt->flags & ASN1_TFLG_COMBINE);}