(* $Workfile:   p772.xv2  $ $Revision:   1.0  $ *)

(*****************************************************************************)
(* ASN.1 P772 DATA-TYPE TEMPLATE                                             *)
(*                                                                           *)
(* - Defines: Military Messaging Handling System extensions to X.420         *)
(*                                                                           *)
(*****************************************************************************)

InformationObject          LABEL     = zapdu               T=special case
                           STRUCTURE = CHOICE              C=none
                           CHILDREN  = { <zmmes, C  0 C,O,0>,
                                         <zmnot, C  1 C,O,0> }

(*****************************************************************************)
(* MM Message                                                                *)
(*****************************************************************************)

MM                         LABEL     = zmmes               T=0
                           STRUCTURE = SEQUENCE            C=MIL_MESSAGE
                           CHILDREN  = { <zhead, U 17 C,M,0>,
                                         <zbody, U 16 C,M,0> }

ForwardedMM                LABEL     = zfpdu               T=MM
                           STRUCTURE = SEQUENCE            C=MIL_MESSAGE
                           CHILDREN  = { <zhead, U 17 C,M,0>,
                                         <zbody, U 16 C,M,0> }

(*****************************************************************************)
(* MM Message - HEADING                                                      *)
(*****************************************************************************)

Heading                    LABEL     = zhead
                           STRUCTURE = SET
                           CHILDREN  = { <zthmm, A 11 C,M,0>,
                                         <zorig, C  0 C,O,0>,
                                         <zauth, C  1 C,O,0>,
                                         <zprir, C  2 C,D,0>,
                                         <zcpyr, C  3 C,D,0>,
                                         <zbldr, C  4 C,O,0>,
                                         <zinrp, C  5 C,O,0>,
                                         <zobsl, C  6 C,D,0>,
                                         <zxref, C  7 C,D,0>,
                                         <zsubj, C  8 C,O,0>,
                                         <zexpd, C  9 P,O,0>,
                                         <zrptm, C 10 P,O,0>,
                                         <zrpre, C 11 C,O,0>,
                                         <zimpt, C 12 P,D,0>,
                                         <zsens, C 13 P,O,0>,
                                         <zafwd, C 14 P,D,0>,
                                         <zextn, C 15 C,D,0> }

(*****************************************************************************)
(* Heading fields                                                            *)
(*****************************************************************************)

ThisMMField                LABEL     = zthmm               T=THIS_MM
                           STRUCTURE = SET                 C=MM_IDENTIFIER
                           TAG       = (A 11 C)
                           CHILDREN  = { <zuser, A  0 C,M,0>,
                                         <zurid, U 19 S,M,64> }

User                       LABEL     = zuser               T=USER
                           STRUCTURE = SEQUENCE            C=MH_C_OR_NAME
                           TAG       = (A 0 C)
                           CHILDREN  = { <dsatt, U 16 C,M,0>E,
                                         <dddal, U 16 C,O,0>,
                                         <dxatl, U 17 C,O,0>,}
                                         <5nam3, C  0 C,O,0> }

LocalMMIdentifier          LABEL     = zurid               T=USER_RELATIVE_I..
                           STRUCTURE = PRINTABLE STRING

Originator                 LABEL     = zorig               T=ORIGINATOR
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

AuthorisingUsers           LABEL     = zauth
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zaord, U 17 C,O,0> }

AuthorisingUser            LABEL     = zaord               T=AUTHORISING_USERS
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

PrimaryRecipients          LABEL     = zprir               T=PRIMARY_RECIPIE..
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zrcip, U 17 C,O,0> }

Primary Recipient          LABEL     = zrcip               T=PRIMARY_RECIPIE..
                           STRUCTURE = SET                 C=MIL_RECIPIENT_S..
                           CHILDREN  = { <0ords, C  0 C,M,0>,
                                         <0repr, C  1 P,D,0>,
                                         <0rpyr, C  2 P,D,0>,
                                         <zreex, C  3 C,O,0> }

CopyRecipients             LABEL     = zcpyr               T=COPY_RECIPIENTS
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zccip, U 17 C,O,0> }

Copy Recipient             LABEL     = zccip               T=COPY_RECIPIENTS
                           STRUCTURE = SET                 C=MIL_RECIPIENT_S..
                           CHILDREN  = { <0ords, C  0 C,M,0>,
                                         <0repr  C  1 P,D,0>,
                                         <0rpyr, C  2 P,D,0>,
                                         <zreex, C  3 C,O,0> }

BlindCopyRecipients        LABEL     = zbldr               T=BLIND_COPY_RECI..
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zbcip, U 17 C,O,0> }

BlindCopy Recipient        LABEL     = zbcip               T=BLIND_COPY_RECI..
                           STRUCTURE = SET                 C=MIL_RECIPIENT_S..
                           CHILDREN  = { <0ords, C  0 C,M,0>,
                                         <0repr  C  1 P,D,0>,
                                         <0rpyr, C  2 P,D,0>,
                                         <zreex, C  3 C,O,0> }

RecipientExtensionsField   LABEL     = zreex               T=special case
                           STRUCTURE = SET OF              C=none
                           CHILDREN  = { <zrext, U 16 C,O,0> }

Recipient Extensions       LABEL     = zrext               T=special case
                           STRUCTURE = SEQUENCE            C=none
                           CHILDREN  = { <zreft, U 6 P,M,0>*,
                                         <zrdby, U 0 P,D,0>  }

Defining type              LABEL     = zreft               T=special case
                           STRUCTURE = OBJECT IDENTIFIER   C=none

Extension Value            LABEL     = zrdby               T=special case
                           STRUCTURE = ANY DEFINED BY      C=none
                           DEFGLABEL = zreft
                           REGISTER  = { <{1 3 26 0 4406 0 2 15},zanrq,U3S,0> }

RepliedToMMField           LABEL     = zinrp               T=REPLIED_TO_MM
                           STRUCTURE = SET                 C=MM_IDENTIFIER
                           TAG       = (A 11 C)
                           CHILDREN  = { <zuser, A  0 C,O,0>,
                                         <zurid, U 19 P,M,64> }

ObsoletedMMsField          LABEL     = zobsl               T=OBSOLETED_MMS
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zipob, A 11 C,O,0> }

ObseletedMMsSubfield       LABEL     = zipob               T=OBSOLETED_MMS
                           STRUCTURE = SET                 C=MM_IDENTIFIER
                           TAG       = (A 11 C)
                           CHILDREN  = { <zuser, A  0 C,O,0>,
                                         <zurid, U 19 P,M,64> }

RelatedMMsField            LABEL     = zxref               T=RELATED_MMS
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zipxr, A 11 C,O,0> }

RelatedMMsSubfield         LABEL     = zipxr               T=RELATED_MMS
                           STRUCTURE = SET                 C=MM_IDENTIFIER
                           TAG       = (A 11 C)
                           CHILDREN  = { <zuser, A  0 C,O,0>,
                                         <zurid, U 19 P,M,64> }

Subject                    LABEL     = zsubj               T=SUBJECT
                           STRUCTURE = TAG
                           TAG       = (C 8 C)
                           CHILDREN  = { <Ctexs, U 20 S,O,256> }

ExpiryDate                 LABEL     = zexpd               T=EXPIRY_TIME
                           STRUCTURE = UTC TIME

ReplyTime                  LABEL     = zrptm               T=REPLY_TIME
                           STRUCTURE = UTC TIME

ReplyRecipients            LABEL     = zrpre               T=REPLY_RECIPIENTS
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zrtus, U 17 C,O,0> }

Reply Recipient            LABEL     = zrtus               T=REPLY_RECIPIENTS
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

Importance                 LABEL     = zimpt               T=IMPORTANCE
                           STRUCTURE = ENUMERATED

Sensitivity                LABEL     = zsens               T=special case
                           STRUCTURE = ENUMERATED

Autoforwarded              LABEL     = zafwd               T=AUTO_FORWARDED
                           STRUCTURE = BOOLEAN

Heading Extensions Field   LABEL     = zextn               T=special case
                           STRUCTURE = SET OF              C=none
                           CHILDREN  = { <zhext, U 16 C,O,0> }

MMS Extension              LABEL     = zhext               T=special case
                           STRUCTURE = SEQUENCE            C=none
                           CHILDREN  = { <zdeft, U 6 P,M,0>*,
                                         <zadby, U 0 P,D,0>  }

Defining type              LABEL     = zdeft               T=special case
                           STRUCTURE = OBJECT IDENTIFIER   C=none

Extension Value            LABEL     = zadby               T=special case
                           STRUCTURE = ANY DEFINED BY      C=none
                           DEFGLABEL = zdeft
                           REGISTER  = { <{2 6 1 5 0},znull, U  5 P,0>  ,
                                         <{2 6 1 5 1},zlngs, U 17 C,0>  ,
                                         <{1 3 26 0 4406 0 2 4},zexea,U16C,0>,
                                         <{1 3 26 0 4406 0 2 5},zexai,U23P,0>,
                                         <{1 3 26 0 4406 0 2 6},zdisc,U17C,0>,
                                         <{1 3 26 0 4406 0 2 8},zmsgs,U16C,0>,
                                         <{1 3 26 0 4406 0 2 10},zoref,U19S,0>,
                                         <{1 3 26 0 4406 0 2 0},zppre,U2P,0>,
                                         <{1 3 26 0 4406 0 2 1},zcpre,U2P,0>,
                                         <{1 3 26 0 4406 0 2 2},zmsty,U17C,0>,
                                         <{1 3 26 0 4406 0 2 11},zorin,U16C,0>,
                                         <{1 3 26 0 4406 0 2 9},zcome,U2P,0>,
                                         <{1 3 26 0 4406 0 2 3},zadli,U16C,0>,
                                         <{1 3 26 0 4406 0 2 7},zhain,U16C,0>,
                                         <{1 3 26 0 4406 0 2 12},zpifi,U16C,0>,
                                         <{1 3 26 0 4406 0 2 13},zamid,U19S,0>,
                                         <{1 3 26 0 4406 0 2 14},zorpl,U19S,0>}

(*****************************************************************************)
(* Recipient specifier extension                                             *)
(*****************************************************************************)

15acp127NotificationReq    LABEL     = zanrq               T=ACP127_NOTIF_REQ
                           STRUCTURE = BIT STRING

(*****************************************************************************)
(* Heading extensions                                                        *)
(*****************************************************************************)

Null                       LABEL     = znull               T=special case
                           STRUCTURE = NULL

Languages                  LABEL     = zlngs               T=LANGUAGES
                           STRUCTURE = SET OF
                           CHILDREN  = { <zlang, U 19 P,O,5> }

Language                   LABEL     = zlang               T=LANGUAGES
                           STRUCTURE = PRINTABLE STRING


4exemptedAddress           LABEL     = zexea               T=EXEMPTED_ADDRESS
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zexad, U 17 C,O,0> }

ExemptedAddress            LABEL     = zexad               T=EXEMPTED_ADDRESS
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

5extendedAuthorisationInfo LABEL     = zexai               T=EXTENDED_AUTH_IN..
                           STRUCTURE = UTC TIME

6DistributionCodes         LABEL     = zdisc               T=DISTRIBUTION_COD..
                           STRUCTURE = SET                 C=DISTRIBUTION_CODE
                           CHILDREN  = { <zsics, C  0 C,O,0>,
                                         <zdixs, C  1 C,O,0> }

sics                       LABEL     = zsics               T=SIC
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 8
                           CHILDREN  = { <zsicc, U 19 P,O,8> }

Sic                        LABEL     = zsicc               T=SIC
                           STRUCTURE = PRINTABLE STRING

dist-Extensions            LABEL     = zdixs               T=DIST_EXTENSIONS
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zdiex, U 16 C,O,0> }

distributionExtensionField LABEL     = zdiex               T=DIST_EXTENSIONS
                           STRUCTURE = SEQUENCE            C=DISTRIBUTION_EXT
                           CHILDREN  = { <zdity, U  6 P,M,0>*,
                                         <zdivl, U  0 P,M,0> }

dist-type                  LABEL     = zdity               T=DIST_TYPE
                           STRUCTURE = OBJECT IDENTIFIER

dist-value                 LABEL     = zdivl               T=special case
                           STRUCTURE = ANY DEFINED BY
                           DEFGLABEL = zdity
                           CHILDREN  = { }

8messageInstructions       LABEL     = zmsgs               T=MESSAGE_INSTRUCT..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zmsgi, U 19 P,O,69> }

messageInstruction         LABEL     = zmsgi               T=MESSAGE_INSTRUCT..
                           STRUCTURE = PRINTABLE STRING

10originatorReference      LABEL     = zoref               T=ORIGINATOR_REFER..
                           STRUCTURE = PRINTABLE STRING

0primaryPrecedence         LABEL     = zppre               T=PRIMARY_PRECEDEN..
                           STRUCTURE = INTEGER             C=oivrenum

1copyPrecedence            LABEL     = zcpre               T=COPY_PRECEDENCE
                           STRUCTURE = INTEGER             C=oivrenum

2MessageType               LABEL     = zmsty               T=MESSAGE_TYPE
                           STRUCTURE = SET                 C=MESSAGE_TYPE
                           CHILDREN  = { <zmstt, C  0 P,M,0>,
                                         <zmsti, C  1 P,O,69> }

MessageTypeType            LABEL     = zmstt               T=MESSAGE_TYPE_TYPE
                           STRUCTURE = INTEGER             C=oivrenum

MessageTypeIdentifier      LABEL     = zmsti               T=MESSAGE_TYPE_IDE..
                           STRUCTURE = PRINTABLE STRING

11otherRecipientsIndicator LABEL     = zorin               T=OTHER_RECIPIENTS..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zorde, U 17 C,O,0> }

OtherRecipientDesignator   LABEL     = zorde               T=OTHER_RECIPIENTS..
                           STRUCTURE = SET                 C=RECIPIENT_DESIGN..
                           CHILDREN  = { <zordt, C  0 P,M,0>,
                                         <zordd, C  1 P,M,69> }

OtherRecipientDesigType    LABEL     = zordt               T=RCPT_TYPE
                           STRUCTURE = INTEGER

OtherRecipientDesigDesig   LABEL     = zordd               T=RCPT_IDENTIFIER
                           STRUCTURE = PRINTABLE STRING

9codressMessage            LABEL     = zcome               T=CODRESS_MESSAGE
                           STRUCTURE = INTEGER

3addressListIndicator      LABEL     = zadli               T=ADDR_LIST_INDICA..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zadld, U 17 C,O,0> }

addressListDesignator      LABEL     = zadld               T=ADDR_LIST_INDICA..
                           STRUCTURE = SET                 C=ADDR_LIST_DESIG
                           CHILDREN  = { <zlsty, C  0 P,M,0>,
                                         <zlstn, C  1 C,M,0>,
                                         <zalnr, C  2 P,O,0>,
                                         <zalrr, C  3 P,O,0> }

AddressListType            LABEL     = zlsty               T=ADDR_LIST_TYPE
                           STRUCTURE = INTEGER             C=oivrenum

listName                   LABEL     = zlstn               T=ADDR_LIST_NAME
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

notificationRequest        LABEL     = zalnr               T=NOTIF_REQUEST
                           STRUCTURE = INTEGER             C=oivrenum

replyRequest               LABEL     = zalrr               T=REPLY_REQUEST
                           STRUCTURE = INTEGER             C=oivrenum

7handlingInstructions      LABEL     = zhain               T=HANDLING_INSTRUC..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zhais, U 19 P,O,69> }

HandlingInstructions       LABEL     = zhais               T=HANDLING_INSTRUC..
                           STRUCTURE = PRINTABLE STRING

12pilotForwardingInfo      LABEL     = zpifi               T=PILOT_FORWARDING..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zpinf, U 16 C,O,0> }

pilotInformation           LABEL     = zpinf               T=PILOT_FORWARDING..
                           STRUCTURE = SEQUENCE            C=PILOT_INFO
                           CHILDREN  = { <zpipr, C  0 P,O,0>,
                                         <zpire, C  1 C,O,0>,
                                         <zpise, C  2 C,O,0>,
                                         <zpiha, C  3 C,O,0> }

pilotPrecedence            LABEL     = zpipr               T=PILOT_PRECEDENCE
                           STRUCTURE = INTEGER             C=oivrenum

pilotRecipient             LABEL     = zpire               T=PILOT_RECIPIENT
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zpiro, U 17 C,O,0> }

pilotRecipORDescriptor     LABEL     = zpiro               T=PILOT_RECIPIENT
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

pilotSecurity              LABEL     = zpise               T=PILOT_SECURITY
                           STRUCTURE = SET                 C=MH_C_SECURITY_L..
                           CHILDREN  = { <Mspid, U  6 P,O,0>   ,
                                         <Mscls, U  2 P,O,0>   ,
                                         <Mpvmk, U 19 P,O,128> ,
                                         <Mscts, U 17 C,O,0>    }

pilotHandling              LABEL     = zpiha               T=PILOT_HANDLING
                           STRUCTURE = SET OF
                           CHILDREN  = { <zpih2, U 19 P,O,69> }

Pilothandling2             LABEL     = zpih2               T=PILOT_HANDLING
                           STRUCTURE = PRINTABLE STRING

13acp127MessageIdentifier  LABEL     = zamid               T=ACP127_MESSAGE_ID
                           STRUCTURE = PRINTABLE STRING

14originatorPlad           LABEL     = zorpl               T=ORIGINATOR_PLAD
                           STRUCTURE = PRINTABLE STRING

(*****************************************************************************)
(* Military Message body                                                     *)
(*****************************************************************************)

MMMessageBody              LABEL     = zbody               T=BODY
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <zbdyp, U  0 P,O,0> }

(*****************************************************************************)
(* Body parts 1 & 10 are 84 P2 only !                                        *)
(*****************************************************************************)
BodyPart                   LABEL     = zbdyp               T=special case
                           STRUCTURE = CHOICE
                           CHILDREN  = { <0ia5t, C   0 C,O,0>,
                                         <0tlxb, C   1 C,O,0>,
                                         <0g3fx, C   3 C,O,0>,
                                         <0g4c1, C   4 C,O,0>,
                                         <0ttxb, C   5 C,O,0>,
                                         <0vidt, C   6 C,O,0>,
                                         <0natd, C   7 C,O,0>,
                                         <0encr, C   8 C,O,0>,
                                         <0msgb, C   9 C,O,0>,
                                         <0sfdb, C  10 C,O,0>,
                                         <0mixd, C  11 C,O,0>,
                                         <06937, C  13 C,O,0>,
                                         <0bild, C  14 S,O,0>,
                                         <zedef, C  15 C,O,0>,
                                         <0usan, C 310 C,O,0>,
                                         <0unid, U   0 P,O,0> }

ExternallyDefinedBodyPart  LABEL     = zedef               T=BODY
                           STRUCTURE = SEQUENCE            C=EXTERN_DEF_BD_PRT
                           TAG       = (C 15 C)
                           CHILDREN  = { <zepar, C 0 C,O,0>,
                                         <zedat, U 8 C,M,0> }

ExternallyDefinedParams    LABEL     = zepar               T=special_case
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <zdrfp, U 6 P,M,0>,
                                         <0encd, U 0 P,M,0> }

ExternallyDefinedData      LABEL     = zedat               T=0
                           STRUCTURE = SEQUENCE
                           TAG       = (U 8 C)
                           CHILDREN  = { <zdrfd, U 6 P,M,0>,
                                         <0encd, U 0 P,M,0> }

Direct Reference           LABEL     = zdrfp               T=special_case
                           STRUCTURE = OBJECT IDENTIFIER

Direct Reference           LABEL     = zdrfd               T=special_case
                           STRUCTURE = OBJECT IDENTIFIER

(*****************************************************************************)
(* Military Notification                                                     *)
(*****************************************************************************)

MN                         LABEL     = zmnot               T=0
                           STRUCTURE = SET                 C=MIL_NOTIF
                           CHILDREN  = { <zrcho, C  0 C,M,0>,
                                         <zsbmm, A 11 C,M,0>,
                                         <zmnof, C  1 C,O,0>,
                                         <zmprf, C  2 C,O,0>,
                                         <znoex, C  3 C,O,0> }

RecipientChoice            LABEL     = zrcho               T=special case
                           STRUCTURE = CHOICE
                           TAG       = (C 0 C)
                           CHILDREN  = { <znrif, C  0 C,O,0>,
                                         <zrcif, C  1 C,O,0>,
                                         <zontf, C  2 C,O,0> }

NonReceiptFields           LABEL     = znrif               T=special case
                           STRUCTURE = SET
                           CHILDREN  = { <zreas, C  0 P,M,0>,
                                         <zdrea, C  1 P,O,0>,
                                         <zafcm, C  2 S,O,256>,
                                         <zremm, C  3 C,O,0>,
                                         <znrne, C  4 C,O,0> }

NonRecepitReason           LABEL     = zreas               T=NON_RECEIPT_REASON
                           STRUCTURE = ENUMERATED

Discard Reason             LABEL     = zdrea               T=DISCARD_REASON
                           STRUCTURE = ENUMERATED

Auto-forwardComment        LABEL     = zafcm               T=AUTO_FORWARD_COM..
                           STRUCTURE = PRINTABLE STRING

Returned MM                LABEL     = zremm               T=RETURNED_MM
                           STRUCTURE = SEQUENCE            C=MIL_MESSAGE
                           CHILDREN  = { <zhead, U 17 C,M,0>,
                                         <zbody, U 16 C,M,0> }

NRNExtensionsField         LABEL     = znrne               T=special case
                           STRUCTURE = SET OF
                           CHILDREN  = { <zeext, U 16 C,O,0> }

Notification Extensions    LABEL     = zeext               T=special case
                           STRUCTURE = SEQUENCE            C=none
                           CHILDREN  = { <zeeft, U 6 P,M,0>*,
                                         <zedby, U 0 P,D,0>  }

Defining type              LABEL     = zeeft               T=special case
                           STRUCTURE = OBJECT IDENTIFIER   C=none

Extension Value            LABEL     = zedby               T=special case
                           STRUCTURE = ANY DEFINED BY      C=none
                           DEFGLABEL = zneft
                           REGISTER  = { }

ReceiptFields              LABEL     = zrcif
                           STRUCTURE = SET
                           CHILDREN  = { <zrctm, C  0 P,M,0>,
                                         <zackm, C  1 P,D,0>,
                                         <zrinf, C  2 P,D,256>,
                                         <zrnex, C  3 C,O,0> }

AcknowledegmentModeField   LABEL     = zackm               T=ACKNOWLEDGEMENT..
                           STRUCTURE = ENUMERATED

SupplReceiptInfoField      LABEL     = zrinf               T=SUPPLEMENTARY_R..
                           STRUCTURE = PRINTABLE STRING

RNExtensionsField          LABEL     = zrnex               T=special case
                           STRUCTURE = SET OF
                           CHILDREN  = { <zeext, U 16 C,O,0> }

OtherNotificationTypeFlds  LABEL     = zontf               T=special case
                           STRUCTURE = SET OF
                           CHILDREN  = { <znext, U 16 C,O,0> }

Other Notif Extensions     LABEL     = znext               T=special case
                           STRUCTURE = SEQUENCE            C=none
                           CHILDREN  = { <zneft, U 6 P,M,0>*,
                                         <zndby, U 0 P,D,0>  }

Defining type              LABEL     = zneft               T=special case
                           STRUCTURE = OBJECT IDENTIFIER   C=none

Extension Value            LABEL     = zndby               T=special case
                           STRUCTURE = ANY DEFINED BY      C=none
                           DEFGLABEL = zneft
                           REGISTER  = { <{1 3 26 0 4406 0 9 0},zanre,U17C,0>}

SubjectMMField             LABEL     = zsbmm               T=SUBJECT_MM
                           STRUCTURE = SET                 C=MM_IDENTIFIER
                           TAG       = (A 11 C)
                           CHILDREN  = { <zuser, A  0 C,M,0>,
                                         <zurid, U 19 P,M,64> }

MNOriginatorField          LABEL     = zmnof               T=MN_ORIGINATOR
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

MMPreferredRecipientField  LABEL     = zmprf               T=MN_PREFERRED_
                           STRUCTURE = SET                 C=IM_C_OR_DESCRIP..
                           CHILDREN  = { <dornm, A  0 C,O,0>,
                                         <0ffnm, C  0 P,O,0>,
                                         <0teln, C  1 P,O,32> }

NotificationExtensionsFld  LABEL     = znoex               T=special case
                           STRUCTURE = SET OF
                           CHILDREN  = { <zeext, U 16 C,O,0> }

(*****************************************************************************)
(* Notification extensions                                                   *)
(*****************************************************************************)

0acp127NotificationResp    LABEL     = zanre               T=ACP127_NOTIF_RSP
                           STRUCTURE = SET                 C=ACP127_NOTIF_RSP
                           CHILDREN  = { <zanty, C  0 S,M,0>,
                                         <zrctm, C  1 P,M,0>,
                                         <zadli, C  2 C,O,0>,
                                         <zarec, C  3 S,O,128>,
                                         <zasup, C  4 S,O,128> }

Acp127NotificationType     LABEL     = zanty               T=ACP127_NOTIF_TYPE
                           STRUCTURE = BIT STRING

ReceiptTime                LABEL     = zrctm               T=RECEIPT_TIME
                           STRUCTURE = UTC TIME

AddressListIndicators      LABEL     = zadls               T=ADDR_LIST_INDIC..
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zadld, U 17 C,O,0> }

Acp127Recipient            LABEL     = zarec               T=ACP127_RECIPIENT
                           STRUCTURE = PRINTABLE STRING

Acp127SuppInfo             LABEL     = zasup               T=ACP127_SUPP_INFO
                           STRUCTURE = PRINTABLE STRING

(*****************************************************************************)
(* Externally-defined body parts                                             *)
(*****************************************************************************)

adatp3BodyPartParameters   LABEL     = zad3p               T=ADATP3_PARAMS
                           STRUCTURE = INTEGER

adatp3BodyPartDataLine     LABEL     = zad3l               T=special case
                           STRUCTURE = IA5 STRING

adatp3BodyPartDataSet      LABEL     = zad3s               T=special case
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <zads3, U 22 P,O,0> }

adatp3BodyPartDataLine     LABEL     = zads3               T=ADATP3_SET
                           STRUCTURE = IA5 STRING

CorrectionsBodyPartParms   LABEL     = zcorp               T=CORRECTIONS_PARAMETERS
                           STRUCTURE = INTEGER

CorrectionsBodyPartData    LABEL     = zcord               T=CORRECTIONS_DATA
                           STRUCTURE = IA5 STRING

ForwardEncryptParameters   LABEL     = zfwep               T=FWD_ENC_PARMS
                           STRUCTURE = SET                 C=DELIVERY_ENVELOPE
                           CHILDREN  = { <3mdtm, C 0 P,O,0>,
                                         <zomdf, C 1 C,O,0> }

ForwardEncryptedData       LABEL     = zfwed               T=FWD_ENC_DATA
                           STRUCTURE = BIT STRING

MMMessageParameters        LABEL     = zmmmp               T=MM_MESSAGE_PARAMETERS
                           STRUCTURE = SET                 C=DELIVERY_ENVELOPE
                           CHILDREN  = { <3mdtm, C 0 P,O,0>,
                                         <zomdf, C 1 C,O,0> }

acp127BodyPartParameters   LABEL     = z127p               T=ACP127_PARAMETERS
                           STRUCTURE = INTEGER

acp127BodyPartData         LABEL     = z127d
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <z127s, U 22 P,O,65535> }

acp127BodyPartDataString   LABEL     = z127s               T=ACP127_DATA
                           STRUCTURE = IA5 STRING

ExternalADatP3Parms        LABEL     = zeadp               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zad3p, U  2 P,O,0> }

(*****************************************************************************)
(* ADatP3 Data is unusual in that the top-level node is an untagged choice.  *)
(* We cannot therefore use the generic body part code as that would mean     *)
(* having an untagged choice as the child of an untagged choice. We must     *)
(* use special case code. Make the top-level node the choice directly.       *)
(*****************************************************************************)
ExternalADatP3Data         LABEL     = zeadd               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zad3l, C  0 P,O,0>,
                                         <zad3s, C  1 C,O,0> }

ExternalCorrectionsParms   LABEL     = zecop               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zcorp, U  2 P,O,0> }

ExternalCorrectionsData    LABEL     = zecod               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zcord, U 22 P,O,0> }

ExternalFwdEncParms        LABEL     = zefwp               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zfwep, U 17 C,O,0> }

ExternalFwdEncData         LABEL     = zefwd               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zfwed, U  3 P,O,0> }

ExternalMMMessageParms     LABEL     = zemmp               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zmmmp, U 17 C,O,0> }

ExternalMMMessageData      LABEL     = zemmd               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zfpdu, U 16 C,O,0> }

ExternalACP127Parameters   LABEL     = ze27p               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <z127p, U  2 P,O,0> }

ExternalACP127Data         LABEL     = ze27d               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <z127d, U 16 C,O,0> }

(*****************************************************************************)
(* Extensions from US Supplement to ACP123                                   *)
(*****************************************************************************)
ForwardedMSPParameters     LABEL     = zfwmp               T=FWD_MSP_PARMS
                           STRUCTURE = SET                 C=DELIVERY_ENVELOPE
                           CHILDREN  = { <3mdtm, C 0 P,O,0>,
                                         <zomdf, C 1 C,O,0> }

ForwardedMSPData           LABEL     = zfwmd               T=FWD_MSP_DATA
                           STRUCTURE = ANY
                           CHILDREN  = { }

ExternalFwdMSPParms        LABEL     = zefmp               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <zfwmp, U 17 C,O,0> }

ExternalFwdMSPData         LABEL     = zefmd               T=special_case
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <4apdu, U  3 P,O,0>,
                                         <zfwmd, U  3 P,O,0> }


(*****************************************************************************)
(* Nodes copied from P3.TPL and X400COM.TPL to allow Conversion to encode    *)
(* Delivery Envelope (ie. by ref to RDI.XV2, not RDI.TPL)                    *)
(*****************************************************************************)
OtherMessageDeliveryFields LABEL     = zomdf
                           STRUCTURE = SET
                           CHILDREN  = { <Mdcnt, U  0 P,M,0> ,
                                         <z3ori, A  0 C,M,0> ,
                                         <Meits, C  1 C,O,0> ,
                                         <Mprio, A  7 P,D,0> ,
                                         <3dflg, C  2 P,O,16>,
                                         <3orcp, C  3 C,O,0> ,
                                         <ztrcp, C  4 C,M,0> ,
                                         <Mircp, C  5 C,O,0> ,
                                         <Mceit, C  6 C,O,0> ,
                                         <3mstm, C  7 P,M,0> ,
                                         <Mcnti, C  8 P,O,16>,
                                         <3dxtf, C  9 C,D,0>  }

OriginatorName             LABEL     = z3ori
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <dsatt, U 16 C,M,0>E,
                                         <dddal, U 16 C,O,0>,
                                         <dxatl, U 17 C,O,0>,}
                                         <5nam3, C  0 C,O,0> }

ThisRecipientName          LABEL     = ztrcp
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <dsatt, U 16 C,M,0>E,
                                         <dddal, U 16 C,O,0>,
                                         <dxatl, U 17 C,O,0>,}
                                         <5nam3, C  0 C,O,0> }
!
