/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "Spec/e2ap-v031ex.asn"
 * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
 */

#ifndef	_TargeteNBtoSource_eNBTransparentContainer_H_
#define	_TargeteNBtoSource_eNBTransparentContainer_H_


#include <asn_application.h>

/* Including external dependencies */
#include <OCTET_STRING.h>

#ifdef __cplusplus
extern "C" {
#endif

/* TargeteNBtoSource-eNBTransparentContainer */
typedef OCTET_STRING_t	 TargeteNBtoSource_eNBTransparentContainer_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_TargeteNBtoSource_eNBTransparentContainer;
asn_struct_free_f TargeteNBtoSource_eNBTransparentContainer_free;
asn_struct_print_f TargeteNBtoSource_eNBTransparentContainer_print;
asn_constr_check_f TargeteNBtoSource_eNBTransparentContainer_constraint;
ber_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_ber;
der_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_der;
xer_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_xer;
xer_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_xer;
oer_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_oer;
oer_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_oer;
per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_uper;
per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_uper;
per_type_decoder_f TargeteNBtoSource_eNBTransparentContainer_decode_aper;
per_type_encoder_f TargeteNBtoSource_eNBTransparentContainer_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _TargeteNBtoSource_eNBTransparentContainer_H_ */
#include <asn_internal.h>
