ModuleTestClassSimple { iso org(3) dod(6) internet(1) private(4) enterprise(1)
	spelio(9363) software(1) asn1c(5) test(1) 34 }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN

EXTENSION ::= CLASS {
    &id	 [PRIVATE 0] OBJECT IDENTIFIER UNIQUE,
    &ExtnType	
} WITH SYNTAX {
		SYNTAX		&ExtnType
		IDENTIFIED BY	&id
	}


Ext1 ::= SEQUENCE {
    extnId	 EXTENSION.&id
}

EXTENSION-ATTRIBUTE ::= CLASS {
    &id	 INTEGER (0..256) UNIQUE,
    &Type	
} WITH SYNTAX {&Type IDENTIFIED BY &id}


terminal-type EXTENSION-ATTRIBUTE ::= { TerminalType IDENTIFIED BY 23}

ExtensionAttribute ::= SEQUENCE {
    extension-attribute-type	 [0] IMPLICIT EXTENSION-ATTRIBUTE.&id ({ExtensionAttributeTable}),
    extension-attribute-value	 [1] IMPLICIT EXTENSION-ATTRIBUTE.&Type ({ExtensionAttributeTable}{@extension-attribute-type})
}

ub-extension-attributes INTEGER ::= 256

END
