// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 11.1.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2025 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef Osmocom__Types_HH
#define Osmocom__Types_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>
#include "General_Types.hh"

#if TTCN3_VERSION != 110100
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

#undef Osmocom__Types_HH
#endif

namespace Osmocom__Types {

/* Forward declarations of classes */

class AddressFamily;
class AddressFamily_template;
typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER IntegerRecord;
typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER_template IntegerRecord_template;
typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER ro__integer;
typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER_template ro__integer_template;
class roro__integer;
class roro__integer_template;

} /* end of namespace */

#ifndef Osmocom__Types_HH
#define Osmocom__Types_HH

namespace Osmocom__Types {

/* Type definitions */

typedef INTEGER uint8__t;
typedef INTEGER_template uint8__t_template;
typedef INTEGER uint16__t;
typedef INTEGER_template uint16__t_template;
typedef INTEGER uint24__t;
typedef INTEGER_template uint24__t_template;
typedef INTEGER uint32__t;
typedef INTEGER_template uint32__t_template;
typedef INTEGER uint64__t;
typedef INTEGER_template uint64__t_template;
typedef INTEGER int8__t;
typedef INTEGER_template int8__t_template;
typedef INTEGER int16__t;
typedef INTEGER_template int16__t_template;
typedef INTEGER uint1__t;
typedef INTEGER_template uint1__t_template;
typedef INTEGER uint2__t;
typedef INTEGER_template uint2__t_template;
typedef INTEGER uint3__t;
typedef INTEGER_template uint3__t_template;
typedef INTEGER uint4__t;
typedef INTEGER_template uint4__t_template;
typedef INTEGER uint5__t;
typedef INTEGER_template uint5__t_template;
typedef INTEGER uint6__t;
typedef INTEGER_template uint6__t_template;
typedef INTEGER uint7__t;
typedef INTEGER_template uint7__t_template;
typedef INTEGER uint9__t;
typedef INTEGER_template uint9__t_template;
typedef INTEGER uint10__t;
typedef INTEGER_template uint10__t_template;
typedef INTEGER uint11__t;
typedef INTEGER_template uint11__t_template;
typedef INTEGER uint12__t;
typedef INTEGER_template uint12__t_template;
typedef INTEGER uint13__t;
typedef INTEGER_template uint13__t_template;
typedef INTEGER uint14__t;
typedef INTEGER_template uint14__t_template;
typedef INTEGER uint15__t;
typedef INTEGER_template uint15__t_template;
typedef INTEGER uint40__t;
typedef INTEGER_template uint40__t_template;

/* Class definitions */

class AddressFamily : public Base_Type { // enum
friend class AddressFamily_template;
public:
enum enum_type { AF__UNSPEC = 0, AF__INET = 2, AF__INET6 = 10, UNKNOWN_VALUE = 1, UNBOUND_VALUE = 3 };
private:
enum_type enum_value;

public:
AddressFamily();
AddressFamily(int other_value);
AddressFamily(enum_type other_value);
AddressFamily(const AddressFamily& other_value);

AddressFamily& operator=(int other_value);
AddressFamily& operator=(enum_type other_value);
AddressFamily& operator=(const AddressFamily& other_value);

boolean operator==(int other_value) const;
boolean operator==(enum_type other_value) const;
boolean operator==(const AddressFamily& other_value) const;
inline boolean operator!=(int other_value) const { return !(*this == other_value); }
inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const AddressFamily& other_value) const { return !(*this == other_value); }
boolean operator<(int other_value) const;
boolean operator<(enum_type other_value) const;
boolean operator<(const AddressFamily& other_value) const;
boolean operator>(int other_value) const;
boolean operator>(enum_type other_value) const;
boolean operator>(const AddressFamily& other_value) const;
inline boolean operator<=(int other_value) const { return !(*this > other_value); }
inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
inline boolean operator<=(const AddressFamily& other_value) const { return !(*this > other_value); }
inline boolean operator>=(int other_value) const { return !(*this < other_value); }
inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
inline boolean operator>=(const AddressFamily& other_value) const { return !(*this < other_value); }

static const char *enum_to_str(enum_type enum_par);
static enum_type str_to_enum(const char *str_par, const int* int_par = NULL, const int* int_par2 = NULL);
static boolean is_valid_enum(int int_par);

static int enum2int(enum_type enum_par);
static int enum2int(const AddressFamily& enum_par);
int as_int() const { return enum2int(enum_value); }
void from_int(int p_val) { *this = p_val; }
void int2enum(int int_val);
operator enum_type() const;
inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; }
inline boolean is_value() const { return enum_value != UNBOUND_VALUE; }
inline void clean_up(){ enum_value = UNBOUND_VALUE; }
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class AddressFamily_template : public Base_Template {
union {
AddressFamily::enum_type single_value;
struct {
unsigned int n_values;
AddressFamily_template *list_value;
} value_list;
struct {
AddressFamily_template* precondition;
AddressFamily_template* implied_template;
} implication_;
dynmatch_struct<AddressFamily>* dyn_match;
};

void copy_template(const AddressFamily_template& other_value);

public:
AddressFamily_template();
AddressFamily_template(template_sel other_value);
AddressFamily_template(int other_value);
AddressFamily_template(AddressFamily::enum_type other_value);
AddressFamily_template(const AddressFamily& other_value);
AddressFamily_template(const OPTIONAL<AddressFamily>& other_value);
AddressFamily_template(AddressFamily_template* p_precondition, AddressFamily_template* p_implied_template);
AddressFamily_template(Dynamic_Match_Interface<AddressFamily>* p_dyn_match);
AddressFamily_template(const AddressFamily_template& other_value);
~AddressFamily_template();

boolean is_bound() const;
boolean is_value() const;
void clean_up();
AddressFamily_template& operator=(template_sel other_value);
AddressFamily_template& operator=(int other_value);
AddressFamily_template& operator=(AddressFamily::enum_type other_value);
AddressFamily_template& operator=(const AddressFamily& other_value);
AddressFamily_template& operator=(const OPTIONAL<AddressFamily>& other_value);
AddressFamily_template& operator=(const AddressFamily_template& other_value);

boolean match(AddressFamily::enum_type other_value, boolean legacy = FALSE) const;
boolean match(const AddressFamily& other_value, boolean legacy = FALSE) const;
AddressFamily::enum_type valueof() const;
void set_type(template_sel template_type, unsigned int list_length = 0);
AddressFamily_template& list_item(unsigned int list_index);
void log() const;
void log_match(const AddressFamily& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class roro__integer : public Base_Type {
struct recordof_setof_struct {
int ref_count;
int n_elements;
ro__integer **value_elements;
} *val_ptr;

static const ro__integer UNBOUND_ELEM;
private:
friend boolean operator==(null_type null_value, const roro__integer& other_value);

public:
  typedef ro__integer of_type;
roro__integer();
roro__integer(null_type other_value);
roro__integer(const roro__integer& other_value);
~roro__integer();

void clean_up();
roro__integer& operator=(null_type other_value);
roro__integer& operator=(const roro__integer& other_value);

boolean operator==(null_type other_value) const;
boolean operator==(const roro__integer& other_value) const;
inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const roro__integer& other_value) const { return !(*this == other_value); }

ro__integer& operator[](int index_value);
ro__integer& operator[](const INTEGER& index_value);
const ro__integer& operator[](int index_value) const;
const ro__integer& operator[](const INTEGER& index_value) const;

roro__integer operator<<=(int rotate_count) const;
roro__integer operator<<=(const INTEGER& rotate_count) const;
roro__integer operator>>=(int rotate_count) const;
roro__integer operator>>=(const INTEGER& rotate_count) const;

roro__integer operator+(const roro__integer& other_value) const;

roro__integer substr(int index, int returncount) const;

roro__integer replace(int index, int len, const roro__integer& repl) const;

roro__integer replace(int index, int len, const roro__integer_template& repl) const;

void set_size(int new_size);
inline boolean is_bound() const {return val_ptr != NULL; }
inline boolean is_present() const { return is_bound(); }
boolean is_value() const;
int size_of() const;
int n_elem() const { return size_of(); }
int lengthof() const;
void log() const;
  void set_implicit_omit();
void set_param(Module_Param& param);
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class roro__integer_template : public Base_Record_Of_Template {
union {
struct {
int n_elements;
ro__integer_template **value_elements;
} single_value;
struct {
unsigned int n_values;
roro__integer_template *list_value;
} value_list;
struct {
roro__integer_template* precondition;
roro__integer_template* implied_template;
} implication_;
dynmatch_struct<roro__integer>* dyn_match;
};
void copy_value(const roro__integer& other_value);
void copy_template(const roro__integer_template& other_value);
static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);

public:
roro__integer_template();
roro__integer_template(template_sel other_value);
roro__integer_template(null_type other_value);
roro__integer_template(const roro__integer& other_value);
roro__integer_template(const OPTIONAL<roro__integer>& other_value);
roro__integer_template(roro__integer_template* p_precondition, roro__integer_template* p_implied_template);
roro__integer_template(Dynamic_Match_Interface<roro__integer>* p_dyn_match);
roro__integer_template(const roro__integer_template& other_value);
~roro__integer_template();

void clean_up();
roro__integer_template& operator=(template_sel other_value);
roro__integer_template& operator=(null_type other_value);
roro__integer_template& operator=(const roro__integer& other_value);
roro__integer_template& operator=(const OPTIONAL<roro__integer>& other_value);
roro__integer_template& operator=(const roro__integer_template& other_value);

ro__integer_template& operator[](int index_value);
ro__integer_template& operator[](const INTEGER& index_value);
const ro__integer_template& operator[](int index_value) const;
const ro__integer_template& operator[](const INTEGER& index_value) const;

void set_size(int new_size);
int n_elem() const;
int size_of(boolean is_size) const;
inline int size_of() const { return size_of(TRUE); }
inline int lengthof() const { return size_of(FALSE); }
boolean match(const roro__integer& other_value, boolean legacy = FALSE) const;
inline boolean is_bound() const 
  {return template_selection != UNINITIALIZED_TEMPLATE; }
boolean is_value() const;
roro__integer valueof() const;
roro__integer substr(int index, int returncount) const;

roro__integer replace(int index, int len, const roro__integer_template& repl) const;

roro__integer replace(int index, int len, const roro__integer& repl) const;

void set_type(template_sel template_type, unsigned int list_length);
roro__integer_template& list_item(unsigned int list_index);
void log() const;
void log_match(const roro__integer& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
  void set_implicit_omit();
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean get_istemplate_kind(const char* type) const;
};


/* Function prototypes */

extern void uint8__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint8__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint16__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint16__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint24__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint24__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint32__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint32__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint64__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint64__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void int8__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER int8__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void int16__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER int16__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint1__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint1__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint2__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint2__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint3__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint3__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint4__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint4__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint5__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint5__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint6__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint6__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint7__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint7__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint9__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint9__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint10__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint10__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint11__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint11__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint12__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint12__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint13__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint13__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint14__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint14__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint15__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint15__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void uint40__t_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER uint40__t_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void AddressFamily_encoder(const AddressFamily& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER AddressFamily_decoder(OCTETSTRING& input_stream, AddressFamily& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern CHARSTRING f__int2str(const INTEGER& i, const INTEGER& total__digits);
extern INTEGER f__rnd__int(const INTEGER& max);
extern INTEGER f__rnd__int__nonzero(const INTEGER& max);
extern HEXSTRING f__rnd__hexstring(const INTEGER& len, const INTEGER& max);
extern OCTETSTRING f__rnd__octstring(const INTEGER& len);
extern OCTETSTRING f__rnd__octstring__rnd__len(const INTEGER& maxlen);
extern BITSTRING f__rnd__bitstring(const INTEGER& len);
extern HEXSTRING f__rnd__imsi(const HEXSTRING& prefix);
extern HEXSTRING f__rnd__imei(const HEXSTRING& prefix);
extern HEXSTRING f__rnd__imeisv(const HEXSTRING& prefix);
extern OCTETSTRING f__rnd__msisdn(const OCTETSTRING& prefix, const INTEGER& len);
extern void f__rnd__sleep(const FLOAT& max__seconds);
extern void f__sleep(const FLOAT& seconds);
extern BITSTRING bool2bit(const BOOLEAN& inp);
extern BITSTRING_template bool2bit__tmpl(const BOOLEAN_template& inp);
extern void IntegerRecord_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IntegerRecord_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IntegerRecord_encoder(const IntegerRecord& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IntegerRecord_decoder(OCTETSTRING& input_stream, IntegerRecord& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern BOOLEAN int2bool(const INTEGER& int_);
extern HEXSTRING_template int2hex__tmpl(const INTEGER_template& inp, const INTEGER& len);
extern OCTETSTRING_template int2oct__tmpl(const INTEGER_template& inp, const INTEGER& num__oct);
extern OCTETSTRING_template char2oct__tmpl(const CHARSTRING_template& inp);
extern OCTETSTRING_template char2oct__tmpl__present(const CHARSTRING_template& inp);
extern CHARSTRING_template hex2str__tmpl(const HEXSTRING_template& inp);
extern BOOLEAN f__array__contains(const IntegerRecord& arr, const INTEGER& key);
extern void f__timer__safe__restart(TIMER& T);
extern INTEGER f__div__round__up(const INTEGER& dividend, const INTEGER& divisor);
extern OCTETSTRING imsi__hex2oct(const HEXSTRING& imsi);
extern HEXSTRING imsi__oct2hex(const OCTETSTRING& imsi);
extern OCTETSTRING f__pad__oct(const OCTETSTRING& str, const INTEGER& len, const OCTETSTRING& pad);
extern BITSTRING f__pad__bit(const BITSTRING& str, const INTEGER& len, const BITSTRING& pad);
extern HEXSTRING f__pad__bcd__number(const HEXSTRING& number);
extern HEXSTRING_template f__pad__bcd__number__tmpl(const HEXSTRING_template& inp);
extern BOOLEAN ra__is__ps(const OCTETSTRING& ra);
extern BOOLEAN ra__is__emerg(const OCTETSTRING& ra);
extern OCTETSTRING f__rnd__ra__cs();
extern OCTETSTRING f__rnd__ra__emerg();
extern OCTETSTRING f__rnd__ra__ps();
extern BITSTRING f__rnd__ra11__ps();
extern HEXSTRING f__concat__pad(const INTEGER& tot__len, const HEXSTRING& prefix, const INTEGER& suffix);
extern HEXSTRING f__gen__imei(const INTEGER& suffix);
extern HEXSTRING f__gen__imsi(const INTEGER& suffix);
extern HEXSTRING f__gen__msisdn(const INTEGER& suffix);
extern OCTETSTRING f__gen__tmsi(const INTEGER& suffix, const INTEGER& nri__v, const INTEGER& nri__bitlen, const OCTETSTRING& base__tmsi);
extern void ro__integer_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ro__integer_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ro__integer_encoder(const ro__integer& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ro__integer_decoder(OCTETSTRING& input_stream, ro__integer& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern BOOLEAN ro__integer__contains(const ro__integer& r, const INTEGER& x);
extern void ro__integer__add__unique(ro__integer& roi, const INTEGER& new__entry);
extern void ro__integer__del(ro__integer& roi, const INTEGER& del__entry);
extern boolean operator==(null_type null_value, const roro__integer& other_value);
inline boolean operator!=(null_type null_value, const roro__integer& other_value) { return !(null_value == other_value); }
extern void roro__integer_0_encoder(const ro__integer& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER roro__integer_0_decoder(OCTETSTRING& input_stream, ro__integer& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void roro__integer_encoder(const roro__integer& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER roro__integer_decoder(OCTETSTRING& input_stream, roro__integer& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern CHARSTRING f__bool2str(const BOOLEAN& val);
extern BITSTRING f__bits__reversed(const BITSTRING& bits);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const TTCN_RAWdescriptor_t uint8__t_raw_;
extern const XERdescriptor_t uint8__t_xer_;
extern const TTCN_OERdescriptor_t uint8__t_oer_;
extern const TTCN_Typedescriptor_t uint8__t_descr_;
extern UNIVERSAL_CHARSTRING uint8__t_default_coding;
extern const TTCN_RAWdescriptor_t uint16__t_raw_;
extern const XERdescriptor_t uint16__t_xer_;
extern const TTCN_OERdescriptor_t uint16__t_oer_;
extern const TTCN_Typedescriptor_t uint16__t_descr_;
extern UNIVERSAL_CHARSTRING uint16__t_default_coding;
extern const TTCN_RAWdescriptor_t uint24__t_raw_;
extern const XERdescriptor_t uint24__t_xer_;
extern const TTCN_Typedescriptor_t uint24__t_descr_;
extern UNIVERSAL_CHARSTRING uint24__t_default_coding;
extern const TTCN_RAWdescriptor_t uint32__t_raw_;
extern const XERdescriptor_t uint32__t_xer_;
extern const TTCN_OERdescriptor_t uint32__t_oer_;
extern const TTCN_Typedescriptor_t uint32__t_descr_;
extern UNIVERSAL_CHARSTRING uint32__t_default_coding;
extern const TTCN_RAWdescriptor_t uint64__t_raw_;
extern const XERdescriptor_t uint64__t_xer_;
extern const TTCN_Typedescriptor_t uint64__t_descr_;
extern UNIVERSAL_CHARSTRING uint64__t_default_coding;
extern const TTCN_RAWdescriptor_t int8__t_raw_;
extern const XERdescriptor_t int8__t_xer_;
extern const TTCN_OERdescriptor_t int8__t_oer_;
extern const TTCN_Typedescriptor_t int8__t_descr_;
extern UNIVERSAL_CHARSTRING int8__t_default_coding;
extern const TTCN_RAWdescriptor_t int16__t_raw_;
extern const XERdescriptor_t int16__t_xer_;
extern const TTCN_OERdescriptor_t int16__t_oer_;
extern const TTCN_Typedescriptor_t int16__t_descr_;
extern UNIVERSAL_CHARSTRING int16__t_default_coding;
extern const TTCN_RAWdescriptor_t uint1__t_raw_;
extern const XERdescriptor_t uint1__t_xer_;
extern const TTCN_OERdescriptor_t uint1__t_oer_;
extern const TTCN_Typedescriptor_t uint1__t_descr_;
extern UNIVERSAL_CHARSTRING uint1__t_default_coding;
extern const TTCN_RAWdescriptor_t uint2__t_raw_;
extern const XERdescriptor_t uint2__t_xer_;
extern const TTCN_OERdescriptor_t uint2__t_oer_;
extern const TTCN_Typedescriptor_t uint2__t_descr_;
extern UNIVERSAL_CHARSTRING uint2__t_default_coding;
extern const TTCN_RAWdescriptor_t uint3__t_raw_;
extern const XERdescriptor_t uint3__t_xer_;
extern const TTCN_OERdescriptor_t uint3__t_oer_;
extern const TTCN_Typedescriptor_t uint3__t_descr_;
extern UNIVERSAL_CHARSTRING uint3__t_default_coding;
extern const TTCN_RAWdescriptor_t uint4__t_raw_;
extern const XERdescriptor_t uint4__t_xer_;
extern const TTCN_OERdescriptor_t uint4__t_oer_;
extern const TTCN_Typedescriptor_t uint4__t_descr_;
extern UNIVERSAL_CHARSTRING uint4__t_default_coding;
extern const TTCN_RAWdescriptor_t uint5__t_raw_;
extern const XERdescriptor_t uint5__t_xer_;
extern const TTCN_OERdescriptor_t uint5__t_oer_;
extern const TTCN_Typedescriptor_t uint5__t_descr_;
extern UNIVERSAL_CHARSTRING uint5__t_default_coding;
extern const TTCN_RAWdescriptor_t uint6__t_raw_;
extern const XERdescriptor_t uint6__t_xer_;
extern const TTCN_OERdescriptor_t uint6__t_oer_;
extern const TTCN_Typedescriptor_t uint6__t_descr_;
extern UNIVERSAL_CHARSTRING uint6__t_default_coding;
extern const TTCN_RAWdescriptor_t uint7__t_raw_;
extern const XERdescriptor_t uint7__t_xer_;
extern const TTCN_OERdescriptor_t uint7__t_oer_;
extern const TTCN_Typedescriptor_t uint7__t_descr_;
extern UNIVERSAL_CHARSTRING uint7__t_default_coding;
extern const TTCN_RAWdescriptor_t uint9__t_raw_;
extern const XERdescriptor_t uint9__t_xer_;
extern const TTCN_OERdescriptor_t uint9__t_oer_;
extern const TTCN_Typedescriptor_t uint9__t_descr_;
extern UNIVERSAL_CHARSTRING uint9__t_default_coding;
extern const TTCN_RAWdescriptor_t uint10__t_raw_;
extern const XERdescriptor_t uint10__t_xer_;
extern const TTCN_OERdescriptor_t uint10__t_oer_;
extern const TTCN_Typedescriptor_t uint10__t_descr_;
extern UNIVERSAL_CHARSTRING uint10__t_default_coding;
extern const TTCN_RAWdescriptor_t uint11__t_raw_;
extern const XERdescriptor_t uint11__t_xer_;
extern const TTCN_Typedescriptor_t uint11__t_descr_;
extern UNIVERSAL_CHARSTRING uint11__t_default_coding;
extern const TTCN_RAWdescriptor_t uint12__t_raw_;
extern const XERdescriptor_t uint12__t_xer_;
extern const TTCN_OERdescriptor_t uint12__t_oer_;
extern const TTCN_Typedescriptor_t uint12__t_descr_;
extern UNIVERSAL_CHARSTRING uint12__t_default_coding;
extern const TTCN_RAWdescriptor_t uint13__t_raw_;
extern const XERdescriptor_t uint13__t_xer_;
extern const TTCN_Typedescriptor_t uint13__t_descr_;
extern UNIVERSAL_CHARSTRING uint13__t_default_coding;
extern const TTCN_RAWdescriptor_t uint14__t_raw_;
extern const XERdescriptor_t uint14__t_xer_;
extern const TTCN_OERdescriptor_t uint14__t_oer_;
extern const TTCN_Typedescriptor_t uint14__t_descr_;
extern UNIVERSAL_CHARSTRING uint14__t_default_coding;
extern const TTCN_RAWdescriptor_t uint15__t_raw_;
extern const XERdescriptor_t uint15__t_xer_;
extern const TTCN_Typedescriptor_t uint15__t_descr_;
extern UNIVERSAL_CHARSTRING uint15__t_default_coding;
extern const TTCN_RAWdescriptor_t uint40__t_raw_;
extern const XERdescriptor_t uint40__t_xer_;
extern const TTCN_Typedescriptor_t uint40__t_descr_;
extern UNIVERSAL_CHARSTRING uint40__t_default_coding;
extern const INTEGER& c__UINT16__MAX;
extern INTEGER const_c__UINT16__MAX;
extern const INTEGER& c__UINT32__MAX;
extern INTEGER const_c__UINT32__MAX;
extern const BITSTRING& CSN1__L;
extern BITSTRING const_CSN1__L;
extern const BITSTRING& CSN1__H;
extern BITSTRING const_CSN1__H;
extern const TTCN_RAWdescriptor_t AddressFamily_raw_;
extern const TTCN_Typedescriptor_t AddressFamily_descr_;
extern UNIVERSAL_CHARSTRING AddressFamily_default_coding;
extern const INTEGER& f__rnd__hexstring_max_defval;
extern INTEGER const_f__rnd__hexstring_max_defval;
extern const HEXSTRING& f__rnd__imsi_prefix_defval;
extern HEXSTRING const_f__rnd__imsi_prefix_defval;
extern const HEXSTRING& f__rnd__imei_prefix_defval;
extern HEXSTRING const_f__rnd__imei_prefix_defval;
extern const HEXSTRING& f__rnd__imeisv_prefix_defval;
extern HEXSTRING const_f__rnd__imeisv_prefix_defval;
extern const INTEGER& f__rnd__msisdn_len_defval;
extern INTEGER const_f__rnd__msisdn_len_defval;
extern const TTCN_RAWdescriptor_t IntegerRecord_raw_;
extern const TTCN_Typedescriptor_t IntegerRecord_descr_;
extern const TTCN_RAWdescriptor_t IntegerRecord_0_raw_;
extern const XERdescriptor_t IntegerRecord_0_xer_;
extern const TTCN_Typedescriptor_t IntegerRecord_0_descr_;
extern UNIVERSAL_CHARSTRING IntegerRecord_0_default_coding;
extern UNIVERSAL_CHARSTRING IntegerRecord_default_coding;
extern const INTEGER& f__gen__tmsi_nri__v_defval;
extern INTEGER const_f__gen__tmsi_nri__v_defval;
extern const INTEGER& f__gen__tmsi_nri__bitlen_defval;
extern INTEGER const_f__gen__tmsi_nri__bitlen_defval;
extern const OCTETSTRING& f__gen__tmsi_base__tmsi_defval;
extern OCTETSTRING const_f__gen__tmsi_base__tmsi_defval;
extern const TTCN_RAWdescriptor_t ro__integer_raw_;
extern const TTCN_Typedescriptor_t ro__integer_descr_;
extern const TTCN_RAWdescriptor_t ro__integer_0_raw_;
extern const XERdescriptor_t ro__integer_0_xer_;
extern const TTCN_Typedescriptor_t ro__integer_0_descr_;
extern UNIVERSAL_CHARSTRING ro__integer_0_default_coding;
extern UNIVERSAL_CHARSTRING ro__integer_default_coding;
extern const TTCN_RAWdescriptor_t roro__integer_raw_;
extern const TTCN_Typedescriptor_t roro__integer_descr_;
extern const TTCN_RAWdescriptor_t roro__integer_0_raw_;
extern const TTCN_Typedescriptor_t roro__integer_0_descr_;
extern UNIVERSAL_CHARSTRING roro__integer_0_default_coding;
extern UNIVERSAL_CHARSTRING roro__integer_default_coding;
extern const BITSTRING bs_0,
bs_1;
extern const HEXSTRING hs_0,
hs_3,
hs_4,
hs_2,
hs_1;
extern const OCTETSTRING os_0,
os_3,
os_6,
os_2,
os_5,
os_4,
os_1;
extern const CHARSTRING cs_1,
cs_2,
cs_4,
cs_0,
cs_3;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
