From 5388c5f867d733788f6c0759473ec030a036651b Mon Sep 17 00:00:00 2001 From: MohamedSabthar Date: Fri, 18 Oct 2024 18:08:03 +0530 Subject: [PATCH 1/4] [Automated] Update the native jar versions --- copybook-tool/Ballerina.toml | 2 +- copybook-tool/Dependencies.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/copybook-tool/Ballerina.toml b/copybook-tool/Ballerina.toml index 0f86565..1c9c113 100644 --- a/copybook-tool/Ballerina.toml +++ b/copybook-tool/Ballerina.toml @@ -1,7 +1,7 @@ [package] org = "ballerina" name = "copybook" -version = "0.1.2" +version = "1.0.0" authors = ["Ballerina"] keywords = ["copybook", "copybook tool"] license = ["Apache-2.0"] diff --git a/copybook-tool/Dependencies.toml b/copybook-tool/Dependencies.toml index 2f0ca6b..3c437f7 100644 --- a/copybook-tool/Dependencies.toml +++ b/copybook-tool/Dependencies.toml @@ -10,7 +10,7 @@ distribution-version = "2201.8.0" [[package]] org = "ballerina" name = "copybook" -version = "0.1.0" +version = "1.0.0" modules = [ {org = "ballerina", packageName = "copybook", moduleName = "copybook"} ] From 8719285c2f301869552eb2c7939ef10a0b96ebd3 Mon Sep 17 00:00:00 2001 From: MohamedSabthar Date: Fri, 18 Oct 2024 18:23:51 +0530 Subject: [PATCH 2/4] Add support for implied decimal and copybook parser dependecy version --- .../generator/AnnotationGenerator.java | 13 +- .../generator/ArrayTypeGenerator.java | 22 +-- .../generator/CodeGeneratorUtils.java | 141 +++++++----------- .../generator/CopybookTypeGenerator.java | 13 +- .../generator/GeneratorConstants.java | 10 +- .../copybook/generator/RecordMetadata.java | 57 ------- .../generator/RecordTypeGenerator.java | 25 +--- .../copybook/generator/TypeGenerator.java | 1 - .../ballerina/tools/copybook/utils/Utils.java | 5 +- .../tools/copybook/cmd/CopybookCmdTest.java | 16 ++ .../copybookDefinitions/valid/copybook-1.cpy | 29 ++++ .../resources/expectedGenTypes/copybook-1.bal | 54 +++++++ .../resources/expectedGenTypes/copybook.bal | 8 +- copybook-tool/BalTool.toml | 4 +- gradle.properties | 4 +- 15 files changed, 197 insertions(+), 205 deletions(-) delete mode 100644 copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordMetadata.java create mode 100644 copybook-cli/src/test/resources/copybookDefinitions/valid/copybook-1.cpy create mode 100644 copybook-cli/src/test/resources/expectedGenTypes/copybook-1.bal diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/AnnotationGenerator.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/AnnotationGenerator.java index a232791..6b8fee5 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/AnnotationGenerator.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/AnnotationGenerator.java @@ -34,7 +34,7 @@ import static io.ballerina.compiler.syntax.tree.NodeFactory.createSimpleNameReferenceNode; import static io.ballerina.compiler.syntax.tree.SyntaxKind.AT_TOKEN; import static io.ballerina.compiler.syntax.tree.SyntaxKind.MAPPING_CONSTRUCTOR; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.NEGATIVE_DECIMAL_PIC; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.NEGATIVE_SIGN; public class AnnotationGenerator { @@ -91,11 +91,11 @@ private static List getIntAnnotFields(DataItem node) { private static List getNumberAnnotFields(DataItem node) { List fields = new ArrayList<>(); - int maxIntegerDigits = 1; + int maxIntegerDigits; if (node.isSinged()) { maxIntegerDigits = node.getReadLength() - node.getFloatingPointLength() - 1; - } else if (node.getPicture().startsWith(NEGATIVE_DECIMAL_PIC) || - node.getPicture().startsWith(GeneratorConstants.POSITIVE_DECIMAL_PIC)) { + } else if (node.getPicture().startsWith(NEGATIVE_SIGN) || + node.getPicture().startsWith(GeneratorConstants.POSITIVE_SIGN)) { maxIntegerDigits = node.getReadLength() - node.getFloatingPointLength() - 2; } else { int minValue = 0; @@ -103,6 +103,11 @@ private static List getNumberAnnotFields(DataItem node) { fields.add(fieldRef); maxIntegerDigits = node.getReadLength() - node.getFloatingPointLength() - 1; } + if (CodeGeneratorUtils.hasImpliedDecimal(node)) { + // The implied decimal point doesn't include a decimal separator, + // so add +1 to account for the extra digit removed from the integer part in previous cases. + maxIntegerDigits += 1; + } int maxFractionDigits = node.getFloatingPointLength(); String fieldRef = GeneratorConstants.MAX_INTEGER_DIGITS + GeneratorConstants.COLON + maxIntegerDigits; fields.add(fieldRef); diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/ArrayTypeGenerator.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/ArrayTypeGenerator.java index 8680716..20e6e0f 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/ArrayTypeGenerator.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/ArrayTypeGenerator.java @@ -52,11 +52,8 @@ public ArrayTypeGenerator(CopybookNode groupItemNode) { @Override public TypeDescriptorNode generateTypeDescriptorNode(List typeDefList) { - if (schemaValue instanceof GroupItem) { - return getGroputItemDescriptorNode(typeDefList); - } else { - return getDataItemDescriptorNode(typeDefList); - } + return schemaValue instanceof GroupItem ? getGroputItemDescriptorNode(typeDefList) + : getDataItemDescriptorNode(typeDefList); } private TypeDescriptorNode getGroputItemDescriptorNode(List typeDefList) { @@ -68,8 +65,7 @@ private TypeDescriptorNode getGroputItemDescriptorNode(List createArrayDimensionNode(createToken(SyntaxKind.OPEN_BRACKET_TOKEN), length, createToken(SyntaxKind.CLOSE_BRACKET_TOKEN)); TypeGenerator typeGenerator = new RecordTypeGenerator((GroupItem) schemaValue); - TypeDescriptorNode wrappedType = - typeGenerator.generateTypeDescriptorNode(typeDefList); + TypeDescriptorNode wrappedType = typeGenerator.generateTypeDescriptorNode(typeDefList); return createArrayTypeDescriptorNode(wrappedType, createNodeList(arrayDimension)); } @@ -77,20 +73,14 @@ private TypeDescriptorNode getDataItemDescriptorNode(List ty TypeDefinitionNode fieldType = generateFieldTypeDefNode( (DataItem) schemaValue, getTypeReferenceName(schemaValue, false)); addToFieldTypeDefinitionList(fieldType, typeDefList); - String extractName; - if (schemaValue.getOccurringCount() > 0) { - extractName = getTypeReferenceName(schemaValue, true); - } else { - extractName = getTypeReferenceName(schemaValue, false); - } + String extractName = getTypeReferenceName(schemaValue, schemaValue.getOccurringCount() > 0); String typeName = CodeGeneratorUtils.getValidName(extractName); BasicLiteralNode length = createBasicLiteralNode(SyntaxKind.NUMERIC_LITERAL, createLiteralValueToken(SyntaxKind.DECIMAL_INTEGER_LITERAL_TOKEN, String.valueOf(schemaValue.getOccurringCount()), createEmptyMinutiaeList(), createEmptyMinutiaeList())); - ArrayDimensionNode arrayDimension = - createArrayDimensionNode(createToken(SyntaxKind.OPEN_BRACKET_TOKEN), length, - createToken(SyntaxKind.CLOSE_BRACKET_TOKEN)); + ArrayDimensionNode arrayDimension = createArrayDimensionNode(createToken(SyntaxKind.OPEN_BRACKET_TOKEN), length, + createToken(SyntaxKind.CLOSE_BRACKET_TOKEN)); TypeDescriptorNode wrappedType = createSimpleNameReferenceNode(createIdentifierToken(typeName)); return createArrayTypeDescriptorNode(wrappedType, createNodeList(arrayDimension)); } diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CodeGeneratorUtils.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CodeGeneratorUtils.java index d70a290..11de32d 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CodeGeneratorUtils.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CodeGeneratorUtils.java @@ -34,35 +34,34 @@ import io.ballerina.lib.copybook.commons.schema.GroupItem; import java.io.File; -import java.util.ArrayList; import java.util.List; -import java.util.Optional; import static io.ballerina.tools.copybook.generator.AnnotationGenerator.generateIntConstraint; import static io.ballerina.tools.copybook.generator.AnnotationGenerator.generateNumberConstraint; import static io.ballerina.tools.copybook.generator.AnnotationGenerator.generateStringConstraint; import static io.ballerina.tools.copybook.generator.GeneratorConstants.ALPHA_NUMERIC_TYPE; import static io.ballerina.tools.copybook.generator.GeneratorConstants.ARRAY_TYPE; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.BALLERINA; import static io.ballerina.tools.copybook.generator.GeneratorConstants.BAL_EXTENSION; import static io.ballerina.tools.copybook.generator.GeneratorConstants.BAL_KEYWORDS; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.BYTE_ARRAY; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.COMP_PIC; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.CONSTRAINT; import static io.ballerina.tools.copybook.generator.GeneratorConstants.DECIMAL; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.DECIMAL_TYPE; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.ESCAPE_PATTERN; import static io.ballerina.tools.copybook.generator.GeneratorConstants.DECIMAL_POINT; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.ERROR; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.ESCAPE_PATTERN; import static io.ballerina.tools.copybook.generator.GeneratorConstants.IMPORT; import static io.ballerina.tools.copybook.generator.GeneratorConstants.INT; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.INTEGER_IN_BINARY_TYPE; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.UNSIGNED_INTEGER_TYPE; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.NEGATIVE_DECIMAL_PIC; -import static io.ballerina.tools.copybook.generator.GeneratorConstants.POSITIVE_DECIMAL_PIC; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.NEGATIVE_SIGN; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.POSITIVE_SIGN; import static io.ballerina.tools.copybook.generator.GeneratorConstants.SEMICOLON; import static io.ballerina.tools.copybook.generator.GeneratorConstants.SIGNED_DECIMAL_TYPE; import static io.ballerina.tools.copybook.generator.GeneratorConstants.SIGNED_INTEGER_TYPE; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.SINGLE_QUOTE; import static io.ballerina.tools.copybook.generator.GeneratorConstants.SLASH; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.SPECIAL_CHAR_REGEX; import static io.ballerina.tools.copybook.generator.GeneratorConstants.STRING; import static io.ballerina.tools.copybook.generator.GeneratorConstants.UNSIGNED_DECIMAL_TYPE; +import static io.ballerina.tools.copybook.generator.GeneratorConstants.UNSIGNED_INTEGER_TYPE; public class CodeGeneratorUtils { @@ -74,7 +73,8 @@ private CodeGeneratorUtils() { public static TypeGenerator getTypeGenerator(CopybookNode schemaValue) { if (schemaValue.getOccurringCount() > 0) { return new ArrayTypeGenerator(schemaValue); - } else if (schemaValue instanceof DataItem dataItem) { + } + if (schemaValue instanceof DataItem dataItem) { return new ReferencedTypeGenerator(dataItem); } return new RecordTypeGenerator((GroupItem) schemaValue); @@ -86,12 +86,7 @@ public static String getTypeReferenceName(CopybookNode copybookNode, boolean isR return extractTypeReferenceName(dataItem); } if (dataItem.isNumeric()) { - if (dataItem.getFloatingPointLength() > 0) { - return DECIMAL; - } - return INT; - } else if (dataItem.getPicture().contains(COMP_PIC)) { - return BYTE_ARRAY; + return dataItem.getFloatingPointLength() > 0 ? DECIMAL : INT; } return STRING; } @@ -99,25 +94,19 @@ public static String getTypeReferenceName(CopybookNode copybookNode, boolean isR } public static ImportDeclarationNode getImportDeclarationNode(String orgName, String moduleName) { - Token importKeyword = AbstractNodeFactory.createIdentifierToken(IMPORT, SINGLE_WS_MINUTIAE, - SINGLE_WS_MINUTIAE); + Token importKeyword = AbstractNodeFactory.createIdentifierToken(IMPORT, SINGLE_WS_MINUTIAE, SINGLE_WS_MINUTIAE); Token orgNameToken = AbstractNodeFactory.createIdentifierToken(orgName); Token slashToken = AbstractNodeFactory.createIdentifierToken(SLASH); ImportOrgNameNode importOrgNameNode = NodeFactory.createImportOrgNameNode(orgNameToken, slashToken); Token moduleNameToken = AbstractNodeFactory.createIdentifierToken(moduleName); - SeparatedNodeList moduleNodeList = AbstractNodeFactory.createSeparatedNodeList( - moduleNameToken); + SeparatedNodeList moduleNodes = AbstractNodeFactory.createSeparatedNodeList(moduleNameToken); Token semicolon = AbstractNodeFactory.createIdentifierToken(SEMICOLON); - return NodeFactory.createImportDeclarationNode(importKeyword, importOrgNameNode, - moduleNodeList, null, semicolon); + return NodeFactory.createImportDeclarationNode(importKeyword, importOrgNameNode, moduleNodes, null, semicolon); } public static NodeList createImportDeclarationNodes() { - List imports = new ArrayList<>(); - ImportDeclarationNode importForHttp = CodeGeneratorUtils.getImportDeclarationNode(GeneratorConstants.BALLERINA, - GeneratorConstants.CONSTRAINT); - imports.add(importForHttp); - return AbstractNodeFactory.createNodeList(imports); + ImportDeclarationNode importForHttp = CodeGeneratorUtils.getImportDeclarationNode(BALLERINA, CONSTRAINT); + return AbstractNodeFactory.createNodeList(List.of(importForHttp)); } private static MinutiaeList getSingleWSMinutiae() { @@ -127,62 +116,49 @@ private static MinutiaeList getSingleWSMinutiae() { public static AnnotationNode generateConstraintNode(DataItem dataItem) { String ballerinaType = getConstraintType(dataItem); - if (ballerinaType.equals(DECIMAL)) { - return generateNumberConstraint(dataItem); - } else if (ballerinaType.equals(INT)) { - return generateIntConstraint(dataItem); - } - return generateStringConstraint(dataItem); + return switch (ballerinaType) { + case DECIMAL -> generateNumberConstraint(dataItem); + case INT -> generateIntConstraint(dataItem); + default -> generateStringConstraint(dataItem); + }; } private static String getConstraintType(DataItem dataItem) { if (dataItem.isNumeric() && dataItem.getFloatingPointLength() > 0) { return DECIMAL; - } else if (dataItem.isNumeric()) { - return INT; } - return STRING; + return dataItem.isNumeric() ? INT : STRING; } public static String extractTypeReferenceName(DataItem dataItem) { - String typeName = null; + String typeName; if (dataItem.isNumeric()) { if (dataItem.getFloatingPointLength() > 0) { - if (dataItem.isSinged()) { - typeName = SIGNED_DECIMAL_TYPE + (dataItem.getReadLength() - dataItem.getFloatingPointLength() - 2) - + DECIMAL_POINT + dataItem.getFloatingPointLength(); - } else if (dataItem.getPicture().startsWith(NEGATIVE_DECIMAL_PIC) || - dataItem.getPicture().startsWith(POSITIVE_DECIMAL_PIC)) { - typeName = DECIMAL_TYPE + - (dataItem.getReadLength() - dataItem.getFloatingPointLength() - 2) - + DECIMAL_POINT + dataItem.getFloatingPointLength(); - } else { - typeName = UNSIGNED_DECIMAL_TYPE + - (dataItem.getReadLength() - dataItem.getFloatingPointLength() - 1) + - DECIMAL_POINT + dataItem.getFloatingPointLength(); + int wholeNumberLength = dataItem.getReadLength() - dataItem.getFloatingPointLength(); + if (!hasImpliedDecimal(dataItem)) { + wholeNumberLength -= 1; } - } else { - if (dataItem.isSinged()) { - typeName = SIGNED_INTEGER_TYPE + dataItem.getReadLength(); - } else { - typeName = UNSIGNED_INTEGER_TYPE + dataItem.getReadLength(); + if (dataItem.getPicture().startsWith(NEGATIVE_SIGN) + || dataItem.getPicture().startsWith(POSITIVE_SIGN)) { + wholeNumberLength -= 1; } + boolean isSignedDecimal = dataItem.isSinged() || dataItem.getPicture().startsWith(NEGATIVE_SIGN) || + dataItem.getPicture().startsWith(POSITIVE_SIGN); + typeName = isSignedDecimal ? SIGNED_DECIMAL_TYPE : UNSIGNED_DECIMAL_TYPE; + typeName += wholeNumberLength + DECIMAL_POINT + dataItem.getFloatingPointLength(); + } else { + typeName = dataItem.isSinged() ? SIGNED_INTEGER_TYPE : UNSIGNED_INTEGER_TYPE; + typeName += dataItem.getReadLength(); } - } else if (dataItem.getPicture().contains(COMP_PIC)) { - // TODO: implement the binary values handling part - typeName = INTEGER_IN_BINARY_TYPE; } else { typeName = ALPHA_NUMERIC_TYPE + dataItem.getReadLength(); } - if (dataItem.getOccurringCount() > 0) { - typeName = typeName + ARRAY_TYPE; - } - return typeName; + return dataItem.getOccurringCount() > 0 ? typeName + ARRAY_TYPE : typeName; } public static String getValidName(String identifier) { if (!identifier.matches("\\b[0-9]*\\b")) { - String[] split = identifier.split(GeneratorConstants.SPECIAL_CHAR_REGEX); + String[] split = identifier.split(SPECIAL_CHAR_REGEX); StringBuilder validName = new StringBuilder(); for (String part : split) { if (!part.isBlank()) { @@ -196,28 +172,22 @@ public static String getValidName(String identifier) { public static String escapeIdentifier(String identifier) { if (identifier.matches("\\b[0-9]*\\b")) { - return "'" + identifier; - } else if (!identifier.matches("\\b[_a-zA-Z][_a-zA-Z0-9]*\\b") - || BAL_KEYWORDS.stream().anyMatch(identifier::equals)) { - if (identifier.equals("error")) { - identifier = "_error"; - } else { - identifier = identifier.replaceAll(ESCAPE_PATTERN, "\\\\$1"); - if (identifier.endsWith("?")) { - if (identifier.charAt(identifier.length() - 2) == '\\') { - StringBuilder stringBuilder = new StringBuilder(identifier); - stringBuilder.deleteCharAt(identifier.length() - 2); - identifier = stringBuilder.toString(); - } - if (BAL_KEYWORDS.stream().anyMatch(Optional.ofNullable(identifier) - .filter(sStr -> sStr.length() != 0) - .map(sStr -> sStr.substring(0, sStr.length() - 1)) - .orElse(identifier)::equals)) { - identifier = "'" + identifier; - } else { - return identifier; - } + return SINGLE_QUOTE + identifier; + } + boolean isValidIdentifier = identifier.matches("\\b[_a-zA-Z][_a-zA-Z0-9]*\\b"); + boolean isKeyword = BAL_KEYWORDS.contains(identifier); + if (!isValidIdentifier || isKeyword) { + if (ERROR.equals(identifier)) { + return '_' + ERROR; + } + identifier = identifier.replaceAll(ESCAPE_PATTERN, "\\\\$1"); + if (identifier.endsWith("?")) { + int length = identifier.length(); + if (length > 1 && identifier.charAt(length - 2) == '\\') { + identifier = identifier.substring(0, length - 2) + "?"; } + String strippedIdentifier = identifier.substring(0, length - 1); + return BAL_KEYWORDS.contains(strippedIdentifier) ? SINGLE_QUOTE + identifier : identifier; } } return identifier; @@ -229,4 +199,7 @@ public static String getFileName(String filePath) { return String.join("", fileName, BAL_EXTENSION); } + public static boolean hasImpliedDecimal(DataItem dataItem) { + return dataItem.getPicture().contains(DECIMAL_POINT); + } } diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CopybookTypeGenerator.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CopybookTypeGenerator.java index bdeeccf..b66361f 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CopybookTypeGenerator.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/CopybookTypeGenerator.java @@ -57,17 +57,15 @@ public class CopybookTypeGenerator { private final Schema schema; - private final List fieldTypeDefinitionList; + private final List fieldTypeDefinitionList = new ArrayList<>(); public CopybookTypeGenerator(Schema schema) { this.schema = schema; - this.fieldTypeDefinitionList = new ArrayList<>(); } public String generateSourceCode() throws FormatterException { List typeDefinitions = schema.getTypeDefinitions(); - List typeDefinitionList = new ArrayList<>(); - typeDefinitions.forEach(typeDefinition -> typeDefinitionList.add(generateTypeDefNode(typeDefinition))); + List typeDefinitionList = typeDefinitions.stream().map(this::generateTypeDefNode).toList(); fieldTypeDefinitionList.addAll(typeDefinitionList); String generatedSyntaxTree = Formatter.format(generateSyntaxTree()).toString(); return Formatter.format(generatedSyntaxTree); @@ -84,8 +82,7 @@ public TypeDefinitionNode generateTypeDefNode(CopybookNode node) { public static TypeDefinitionNode generateFieldTypeDefNode(DataItem node, String extractedTypeName) { IdentifierToken typeName = AbstractNodeFactory.createIdentifierToken(CodeGeneratorUtils.getValidName( extractTypeReferenceName(node))); - List typeAnnotations = new ArrayList<>(); - typeAnnotations.add(CodeGeneratorUtils.generateConstraintNode(node)); + List typeAnnotations = List.of(CodeGeneratorUtils.generateConstraintNode(node)); MetadataNode metadataNode = createMetadataNode(null, createNodeList(typeAnnotations)); TypeDescriptorNode typeDescriptorNode = createSimpleNameReferenceNode(createIdentifierToken(extractedTypeName)); return createTypeDefinitionNode(metadataNode, createToken(PUBLIC_KEYWORD), createToken(TYPE_KEYWORD), @@ -97,7 +94,7 @@ private TypeDescriptorNode getTypeDescriptorNode(CopybookNode node) { return typeGenerator.generateTypeDescriptorNode(fieldTypeDefinitionList); } - public SyntaxTree generateSyntaxTree() { + private SyntaxTree generateSyntaxTree() { NodeList imports = createImportDeclarationNodes(); NodeList moduleMembers = AbstractNodeFactory.createNodeList( fieldTypeDefinitionList.toArray(new TypeDefinitionNode[0])); @@ -110,7 +107,7 @@ public SyntaxTree generateSyntaxTree() { public static void addToFieldTypeDefinitionList(TypeDefinitionNode node, List typeDefList) { boolean isExist = typeDefList.stream().anyMatch(typeDefinitionNode -> - typeDefinitionNode.typeName().toString().equals(node.typeName().toString())); + typeDefinitionNode.typeName().text().equals(node.typeName().text())); if (!isExist) { typeDefList.add(node); } diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/GeneratorConstants.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/GeneratorConstants.java index 62e9cd9..e73e3e9 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/GeneratorConstants.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/GeneratorConstants.java @@ -52,26 +52,24 @@ private GeneratorConstants() { public static final String IMPORT = "import"; public static final String SEMICOLON = ";"; public static final String PERIOD = "."; + public static final String SINGLE_QUOTE = "'"; // Copybook types public static final String SIGNED_DECIMAL_TYPE = "SignedDecimal"; public static final String UNSIGNED_DECIMAL_TYPE = "UnsignedDecimal"; - public static final String DECIMAL_TYPE = "Decimal"; public static final String SIGNED_INTEGER_TYPE = "SignedInteger"; public static final String UNSIGNED_INTEGER_TYPE = "UnsignedInteger"; public static final String ALPHA_NUMERIC_TYPE = "AlphaNumeric"; - public static final String INTEGER_IN_BINARY_TYPE = "IntegerInBinary"; public static final String ARRAY_TYPE = "Array"; public static final String DECIMAL_POINT = "V"; - public static final String NEGATIVE_DECIMAL_PIC = "-9"; - public static final String POSITIVE_DECIMAL_PIC = "+9"; - public static final String COMP_PIC = "COMP"; + public static final String NEGATIVE_SIGN = "-"; + public static final String POSITIVE_SIGN = "+"; // Ballerina types public static final String STRING = "string"; public static final String INT = "int"; public static final String DECIMAL = "decimal"; - public static final String BYTE_ARRAY = "byte[]"; + public static final String ERROR = "error"; // File extensions public static final String COPYBOOK_EXTENSION = ".cpy"; diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordMetadata.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordMetadata.java deleted file mode 100644 index ed4ef31..0000000 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordMetadata.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com) All Rights Reserved. - * - * WSO2 LLC. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package io.ballerina.tools.copybook.generator; - -import io.ballerina.compiler.syntax.tree.RecordRestDescriptorNode; - -public class RecordMetadata { - private final boolean isOpenRecord; - private final RecordRestDescriptorNode restDescriptorNode; - - RecordMetadata(Builder builder) { - this.isOpenRecord = builder.isOpenRecord; - this.restDescriptorNode = builder.restDescriptorNode; - } - - public boolean isOpenRecord() { - return isOpenRecord; - } - - public RecordRestDescriptorNode getRestDescriptorNode() { - return restDescriptorNode; - } - - public static class Builder { - private boolean isOpenRecord = false; - private RecordRestDescriptorNode restDescriptorNode = null; - public Builder withIsOpenRecord(boolean isOpenRecord) { - this.isOpenRecord = isOpenRecord; - return this; - } - - public Builder withRestDescriptorNode(RecordRestDescriptorNode restDescriptorNode) { - this.restDescriptorNode = restDescriptorNode; - return this; - } - - public RecordMetadata build() { - return new RecordMetadata(this); - } - } -} diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordTypeGenerator.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordTypeGenerator.java index 856d2ff..5dbe669 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordTypeGenerator.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/RecordTypeGenerator.java @@ -30,7 +30,6 @@ import io.ballerina.lib.copybook.commons.schema.GroupItem; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; import static io.ballerina.compiler.syntax.tree.AbstractNodeFactory.createToken; @@ -50,33 +49,25 @@ public RecordTypeGenerator(GroupItem groupItemNode) { @Override public TypeDescriptorNode generateTypeDescriptorNode(List typeDefList) { - List recordFields = new LinkedList<>(); - RecordMetadata metadataBuilder = getRecordMetadata(); List fields = groupItemNode.getChildren(); - recordFields.addAll(addRecordFields(fields, typeDefList)); - NodeList fieldNodes = - AbstractNodeFactory.createNodeList(recordFields); + List recordFields = getFieldNodes(fields, typeDefList); + NodeList fieldNodes = AbstractNodeFactory.createNodeList(recordFields); return NodeFactory.createRecordTypeDescriptorNode(createToken(RECORD_KEYWORD), - createToken(OPEN_BRACE_TOKEN), fieldNodes, metadataBuilder.getRestDescriptorNode(), - createToken(CLOSE_BRACE_TOKEN)); + createToken(OPEN_BRACE_TOKEN), fieldNodes, null, createToken(CLOSE_BRACE_TOKEN)); } - public List addRecordFields(List fields, List typeDefList) { + private List getFieldNodes(List fields, List typeDefList) { List recordFieldList = new ArrayList<>(); for (CopybookNode field : fields) { - String fieldNameStr = CodeGeneratorUtils.escapeIdentifier(field.getName().trim()); - IdentifierToken fieldName = AbstractNodeFactory.createIdentifierToken(fieldNameStr); + String fieldName = CodeGeneratorUtils.escapeIdentifier(field.getName().trim()); + IdentifierToken fieldNameIdentifier = AbstractNodeFactory.createIdentifierToken(fieldName); TypeGenerator typeGenerator = CodeGeneratorUtils.getTypeGenerator(field); TypeDescriptorNode typeDescriptorNode = typeGenerator.generateTypeDescriptorNode(typeDefList); RecordFieldNode recordFieldNode = NodeFactory.createRecordFieldNode(null, null, - typeDescriptorNode, fieldName, createToken(QUESTION_MARK_TOKEN), createToken(SEMICOLON_TOKEN)); + typeDescriptorNode, fieldNameIdentifier, createToken(QUESTION_MARK_TOKEN), + createToken(SEMICOLON_TOKEN)); recordFieldList.add(recordFieldNode); } return recordFieldList; } - - public RecordMetadata getRecordMetadata() { - boolean isOpenRecord = true; - return new RecordMetadata.Builder().withIsOpenRecord(isOpenRecord).withRestDescriptorNode(null).build(); - } } diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/TypeGenerator.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/TypeGenerator.java index 4c797fa..6153c72 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/TypeGenerator.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/generator/TypeGenerator.java @@ -26,5 +26,4 @@ public abstract class TypeGenerator { public abstract TypeDescriptorNode generateTypeDescriptorNode(List typeDefList); - } diff --git a/copybook-cli/src/main/java/io/ballerina/tools/copybook/utils/Utils.java b/copybook-cli/src/main/java/io/ballerina/tools/copybook/utils/Utils.java index 9f443f0..3f0ed63 100644 --- a/copybook-cli/src/main/java/io/ballerina/tools/copybook/utils/Utils.java +++ b/copybook-cli/src/main/java/io/ballerina/tools/copybook/utils/Utils.java @@ -39,10 +39,7 @@ private Utils() { public static boolean createOutputDirectory(Path outputPath) { File outputDir = new File(outputPath.toString()); - if (!outputDir.exists()) { - return outputDir.mkdirs(); - } - return true; + return outputDir.exists() || outputDir.mkdirs(); } public static void writeFile(Path filePath, String content) throws CopybookTypeGenerationException { diff --git a/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java b/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java index 72e162b..3e5d4c1 100644 --- a/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java +++ b/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java @@ -112,6 +112,22 @@ public void testCopybookTypeGeneration() throws IOException { Assert.assertTrue(output.contains("Ballerina record types are generated successfully and copied to")); } + @Test(description = "Test copybook command with help flag") + public void testCopybookTypeGenerationForImpliedDecimal() throws IOException { + String[] args = {"-i", resourceDir.resolve("copybookDefinitions/valid/copybook-1.cpy").toString(), + "-o", tmpDir.toString()}; + CopybookCmd copybookCmd = new CopybookCmd(printStream, tmpDir, false); + new CommandLine(copybookCmd).parseArgs(args); + copybookCmd.execute(); + Path expectedSchemaFile = resourceDir.resolve(Paths.get("expectedGenTypes", "copybook-1.bal")); + String expectedSchema = readContentWithFormat(expectedSchemaFile); + Assert.assertTrue(Files.exists(this.tmpDir.resolve("copybook-1.bal"))); + String generatedSchema = readContentWithFormat(this.tmpDir.resolve("copybook-1.bal")); + Assert.assertEquals(expectedSchema, generatedSchema); + String output = readOutput(true); + Assert.assertTrue(output.contains("Ballerina record types are generated successfully and copied to")); + } + @Test(description = "Test copybook type generation with multiple root levels") public void testTypeGenerationWithMultipleRootLevels() throws IOException { String[] args = {"-i", resourceDir.resolve("copybookDefinitions/valid/hospital.cpy").toString(), diff --git a/copybook-cli/src/test/resources/copybookDefinitions/valid/copybook-1.cpy b/copybook-cli/src/test/resources/copybookDefinitions/valid/copybook-1.cpy new file mode 100644 index 0000000..44bf640 --- /dev/null +++ b/copybook-cli/src/test/resources/copybookDefinitions/valid/copybook-1.cpy @@ -0,0 +1,29 @@ +01 STJ002-COMMAREA. + 02 STJ002-INPUT. + 04 STJ002-CONTROLS. + 06 STJ002-ST-CTL1 PIC X(02). + 06 STJ002-ST-CTL2 PIC X(03). + 06 STJ002-ST-CTL3 PIC X(03). + 06 STJ002-ST-CTL4 PIC X(03). + 06 STJ002-ST-ACCT PIC X(14). + 04 STJ002-ST-FILLER1 PIC X(30). + 02 STJ002-OUTPUT. + 04 STJ002-CODRET PIC 9(04). + 04 STJ002-MSJRET. + 06 STJ002-MSJRET-1 PIC X(10). + 06 STJ002-MSJRET-2 PIC X(40). + 04 STJ002-SITUAC PIC X(02). + 04 STJ002-CODPRD PIC X(03). + 04 STJ002-NOMPRD PIC X(60). + 04 STJ002-SALDIS PIC 9(13)V99. + 04 STJ002-SALCON PIC S9(13)V99. + 04 STJ002-CODUNI PIC X(12). + 04 STJ002-TIPPER PIC 9(03). + 04 STJ002-DSCPER PIC X(25). + 04 STJ002-FECAPE. + 06 STJ002-SS-APE PIC 9(02). + 06 STJ002-AA-APE PIC 9(02). + 06 STJ002-MM-APE PIC 9(02). + 06 STJ002-DD-APE PIC 9(02). + 04 STJ002-RESTRICC-RETIRO PIC X(01). + 04 STJ002-ST-FILLER2 PIC X(52). diff --git a/copybook-cli/src/test/resources/expectedGenTypes/copybook-1.bal b/copybook-cli/src/test/resources/expectedGenTypes/copybook-1.bal new file mode 100644 index 0000000..10ca8f3 --- /dev/null +++ b/copybook-cli/src/test/resources/expectedGenTypes/copybook-1.bal @@ -0,0 +1,54 @@ +import ballerina/constraint; + +@constraint:String {maxLength: 2} +public type AlphaNumeric2 string; + +@constraint:String {maxLength: 3} +public type AlphaNumeric3 string; + +@constraint:String {maxLength: 14} +public type AlphaNumeric14 string; + +@constraint:String {maxLength: 30} +public type AlphaNumeric30 string; + +@constraint:Int {minValue: 0, maxDigits: 4} +public type UnsignedInteger4 int; + +@constraint:String {maxLength: 10} +public type AlphaNumeric10 string; + +@constraint:String {maxLength: 40} +public type AlphaNumeric40 string; + +@constraint:String {maxLength: 60} +public type AlphaNumeric60 string; + +@constraint:Number {minValue: 0, maxIntegerDigits: 13, maxFractionDigits: 2} +public type UnsignedDecimal13V2 decimal; + +@constraint:Number {maxIntegerDigits: 13, maxFractionDigits: 2} +public type SignedDecimal13V2 decimal; + +@constraint:String {maxLength: 12} +public type AlphaNumeric12 string; + +@constraint:Int {minValue: 0, maxDigits: 3} +public type UnsignedInteger3 int; + +@constraint:String {maxLength: 25} +public type AlphaNumeric25 string; + +@constraint:Int {minValue: 0, maxDigits: 2} +public type UnsignedInteger2 int; + +@constraint:String {maxLength: 1} +public type AlphaNumeric1 string; + +@constraint:String {maxLength: 52} +public type AlphaNumeric52 string; + +public type STJ002\-COMMAREA record { + record {record {AlphaNumeric2 STJ002\-ST\-CTL1?; AlphaNumeric3 STJ002\-ST\-CTL2?; AlphaNumeric3 STJ002\-ST\-CTL3?; AlphaNumeric3 STJ002\-ST\-CTL4?; AlphaNumeric14 STJ002\-ST\-ACCT?;} STJ002\-CONTROLS?; AlphaNumeric30 STJ002\-ST\-FILLER1?;} STJ002\-INPUT?; + record {UnsignedInteger4 STJ002\-CODRET?; record {AlphaNumeric10 STJ002\-MSJRET\-1?; AlphaNumeric40 STJ002\-MSJRET\-2?;} STJ002\-MSJRET?; AlphaNumeric2 STJ002\-SITUAC?; AlphaNumeric3 STJ002\-CODPRD?; AlphaNumeric60 STJ002\-NOMPRD?; UnsignedDecimal13V2 STJ002\-SALDIS?; SignedDecimal13V2 STJ002\-SALCON?; AlphaNumeric12 STJ002\-CODUNI?; UnsignedInteger3 STJ002\-TIPPER?; AlphaNumeric25 STJ002\-DSCPER?; record {UnsignedInteger2 STJ002\-SS\-APE?; UnsignedInteger2 STJ002\-AA\-APE?; UnsignedInteger2 STJ002\-MM\-APE?; UnsignedInteger2 STJ002\-DD\-APE?;} STJ002\-FECAPE?; AlphaNumeric1 STJ002\-RESTRICC\-RETIRO?; AlphaNumeric52 STJ002\-ST\-FILLER2?;} STJ002\-OUTPUT?; +}; diff --git a/copybook-cli/src/test/resources/expectedGenTypes/copybook.bal b/copybook-cli/src/test/resources/expectedGenTypes/copybook.bal index ae9bd5c..ca7b90b 100644 --- a/copybook-cli/src/test/resources/expectedGenTypes/copybook.bal +++ b/copybook-cli/src/test/resources/expectedGenTypes/copybook.bal @@ -49,7 +49,7 @@ public type AlphaNumeric10 string; public type UnsignedInteger9 int; @constraint:Number {maxIntegerDigits: 9, maxFractionDigits: 2} -public type Decimal9V2 decimal; +public type SignedDecimal9V2 decimal; @constraint:Number {minValue: 0, maxIntegerDigits: 5, maxFractionDigits: 3} public type UnsignedDecimal5V3 decimal; @@ -88,7 +88,7 @@ public type UnsignedInteger2 int; public type AlphaNumeric100 string; @constraint:Number {maxIntegerDigits: 8, maxFractionDigits: 3} -public type Decimal8V3 decimal; +public type SignedDecimal8V3 decimal; @constraint:String {maxLength: 50} public type AlphaNumeric50 string; @@ -100,7 +100,7 @@ public type AlphaNumeric12 string; public type AlphaNumeric25 string; @constraint:Number {maxIntegerDigits: 3, maxFractionDigits: 2} -public type Decimal3V2 decimal; +public type SignedDecimal3V2 decimal; @constraint:Number {minValue: 0, maxIntegerDigits: 10, maxFractionDigits: 2} public type UnsignedDecimal10V2 decimal; @@ -147,5 +147,5 @@ public type AlphaNumeric7722 string; public type DEHEPMMEQQEE record { record {AlphaNumeric3 MF\-HDQQ\-VVEQQIFPM?; AlphaNumeric35 MF\-HDQQ\-MIEFD?; AlphaNumeric35 MF\-HDQQ\-MPEEFMEFD?; AlphaNumeric8 MF\-HDQQ\-IDQQ\-EPPM?; AlphaNumeric8 MF\-HDQQ\-IDQQ\-IIEQQFD?; AlphaNumeric8 MF\-HDQQ\-IDQQ\-QQEEFPM?; AlphaNumeric11 MF\-HDQQ\-IDQQ\-PQQPEEII?; AlphaNumeric11 MF\-HDQQ\-IDQQ\-IVVQQMEME?; AlphaNumeric23 MF\-HDQQ\-PQQE\-QQEEEFVVED?; AlphaNumeric23 MF\-HDQQ\-PQQE\-IEMI?; AlphaNumeric48 MF\-HDQQ\-EPQQQQEMFD?; AlphaNumeric14 MF\-HDQQ\-PPEQQEIFPM?; AlphaNumeric1 MF\-HDQQ\-QQEPMZ?; record {AlphaNumeric48 MF\-HDQQ\-QQEPMZQQMEQQ?; AlphaNumeric48 MF\-HDQQ\-QQEPMZQQIEIE?;}[2] MF\-HDQQ\-QQEPMZIIEEK?; AlphaNumeric92 EFMMEQQ?;} EQQPKEQQ\-MEIIEEE\-EQQEE?; record {AlphaNumeric8 PQQPEEII\-QQEQQIEII\-DEIE?; AlphaNumeric6 PQQPEEII\-QQEQQIEII\-IFME?; AlphaNumeric8 IIEQQ\-FDEMIFEZ?; SignedInteger9 EFEI\-IEIK\-MIMEEQQ?; SignedInteger4 PQQPEEII\-QQEQQIEII\-IEQQIEMEE\-MIME?; SignedInteger4 PQQPEEII\-QQEQQIEII\-MIE\-IQQME\-MIME?; UnsignedInteger4 PQQPEEII\-QQEQQIEII\-QQEIIQQM\-EPDE?; record {UnsignedInteger4 EQQQQPQQ\-EPDE?; AlphaNumeric20Array[4] EQQQQPQQ\-EPMIELI\-IELI?;}[8] EQQQQPQQ\-DEIEFMI?;} PQQPEEII\-QQEQQIEII\-EPMIQQPM\-EQQEE?; - record {record {AlphaNumeric10 IQQVV\-QQEQQ\-IZP?; AlphaNumeric10 PPM\-MP?; AlphaNumeric3 IZI\-ED?; AlphaNumeric8 EEE\-DI?; record {UnsignedInteger9 MFEE\-FMIIQQED\-EF\-FD?;}[5] MFEE\-FMIIQQED\-FDI?; Decimal9V2 EQQPII\-IIQQ\-VVEM?; Decimal9V2 IPIEM\-EPMII?; UnsignedDecimal5V3 EPMII\-EEEIPQQ?;} FMPII\-HDQQ\-DEIE?; record {record {AlphaNumeric10 MEP\-MEME?; AlphaNumeric1 MPQQ\-DEIE\-EVVMEM\-FMD?; UnsignedInteger3 IQQEMI\-IEQQ\-MIM?; AlphaNumeric3 EIIPE\-PPM\-FM\-IZI?; AlphaNumeric20 EIIPE\-PPM\-MP?;} PIIPII\-HDQQ\-DEIE?; record {record {AlphaNumeric4 IQQIII\-EIMD\-ED?; AlphaNumeric1 EPE?; AlphaNumeric10 EPE\-DEIE?; AlphaNumeric1 EEH\-ED?; AlphaNumeric1 QQEE\-ED?; AlphaNumeric2 PPM\-IIEI\-ED?; AlphaNumeric2 PPM\-IIEI\-EMQQ\-ED?; AlphaNumeric30 PPM\-IIEI\-DEIE?; AlphaNumeric30 PPM\-IIEI\-EMQQ\-DEIE?; AlphaNumeric10 IEEME\-MEME?; AlphaNumeric3 IEEME\-EPDE?; AlphaNumeric8 PMEMMEQQ\-MIM?; AlphaNumeric8 PQQFEFMEIFME\-PMEMMEQQ\-MIM?; AlphaNumeric40 PQQPDIEI\-MEME?; Decimal9V2 EQQPII\-IIQQQQ\-EMI?; record {AlphaNumeric13 EQQPII\-IIQQQQ\-EMI\-ILI?;} EQQPII\-IIQQQQ\-EMI\-QQED?; Decimal9V2 MEI\-IIQQQQ\-EMI?; record {AlphaNumeric13 MEI\-IIQQQQ\-EMI\-ILI?;} MEI\-IIQQQQ\-EMI\-QQED?; AlphaNumeric2 MPVVEMEMI\-EEIIE\-IZPE?; AlphaNumeric8 MPVVEMEMI\-DI?; AlphaNumeric8 MELI\-PQQEM\-EFMM\-DI?; AlphaNumeric8 PQQEM\-QQEMEWED\-IP\-DI?; AlphaNumeric8 PMEM\-EPMMEMEED\-DI?; AlphaNumeric8 PMEM\-ELPFQQZ\-DI?; UnsignedInteger3 PQQEMFIM\-QQEIFME\-EEE?; Decimal9V2 PMEM\-EEE\-EMI?; AlphaNumeric1 IID\-EEE\-FMD?; AlphaNumeric8 PMEM\-VVEM\-EEE\-EI\-DI?; AlphaNumeric8 PMEM\-VVEM\-QQIM\-EEE\-DI?; AlphaNumeric1 PQQEM\-FMDELED\-FMD?; Decimal9V2 PQQEM\-PEFD\-IP\-DI\-EMI?; AlphaNumeric1 PEZMEMI\-MEIHPD?; AlphaNumeric15 PEZMEMI\-MEIHPD\-DEIE?; AlphaNumeric2 PEZMEMI\-EQQEQQ?; AlphaNumeric1 IPEEFEM\-IQQEEIMEMI\-IZPE?; AlphaNumeric1 IEE\-FMD?; Decimal9V2 PMEM\-FMIIEMMEMI\-PQQEM\-EMI?; Decimal9V2 PMEM\-EMMIEMFIED\-PQQEM\-EMI?; Decimal9V2 PQQEM\-DIE\-IP\-DI\-EMI?; AlphaNumeric1 PIQQEHEIED\-WFIH\-IE\-FMD?; AlphaNumeric5 EL\-IPIQQEE\-EPDE?; Decimal9V2 WFIHDQQEWEM\-EEE?; UnsignedInteger2 EEVVEEI\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric8 EEVVEEI\-DI?; AlphaNumeric100 EEVVEEI\-MEIIEEE\-IELI?;}[5] EEVVEEI\-DEIEFMI?; AlphaNumeric8 EFQQII\-PPMFEZ\-PWMEQQ\-IFIME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-IIQQMEME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-EFQQII\-MEME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-IEEPMD\-MEME?; AlphaNumeric8 EFQQII\-PPMFEZ\-PWMEQQ\-DPE?; AlphaNumeric1 EFQQII\-PPMFEZ\-PWMEQQ\-IEL?; AlphaNumeric8 EFQQII\-MFEE\-FMIIQQED\-IFIME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-IIQQMEME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-EFQQII\-MEME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-IEEPMD\-MEME?; AlphaNumeric8 EFQQII\-MFEE\-FMIIQQED\-DPE?; AlphaNumeric1 EFQQII\-MFEE\-FMIIQQED\-IEL?; AlphaNumeric1 EPMIQQFEIIFPMI\-EPPMZ\-FMD?; AlphaNumeric1 IMEPPMFED\-EEIH\-ELFIII\-FMD?; AlphaNumeric1 DEEIH\-EMEFM\-FMD?; AlphaNumeric1 IEM\-HEMD\-FMD?; AlphaNumeric1 DFIEEMEMEMI\-EMEFM\-FMD?; AlphaNumeric6 PQQPDIEI\-EQQPIP?; AlphaNumeric1 QQEKEEIED\-MPVVI\-ELFIII\-FMD?; AlphaNumeric2 EPIMIQQZ\-EPDE?; Decimal9V2 IPI\-EEIH\-EEP\-EPMP\-EMI?; Decimal9V2 IPIEM\-FMIIQQED\-DEEIH\-EMI?; Decimal9V2 IPIEM\-FMIIQQED\-IPD\-EMI?; Decimal9V2 IPIEM\-FMIIQQED\-FP\-EMI?;} EPMMPM\-DEIE\-EMQQVV?; record {AlphaNumeric1 MEIIQQFIZ\-VALUE\-EEMEIMEIED\-FMD?; Decimal9V2 MEIIQQFIZ\-MEI\-PMEM\-VALUE\-EMI?; Decimal9V2 MEIIQQFIZ\-EQQPII\-PMEM\-VALUE\-EMI?; AlphaNumeric1 MEIIQQFIZ\-VVEM\-EEIIEM\-PQQ\-EII\-FMD?; AlphaNumeric8 MEIIQQFIZ\-VVEM\-EEE\-EI\-DEIE?; Decimal8V3 MEIIQQFIZ\-EEIH\-VALUE\-EEEIPQQ?; AlphaNumeric1 MEIIQQFIZ\-ELIEMD\-EVVEFMEEME\-FMD?; UnsignedInteger3 MEIIQQFIZ\-EEMEIMEIED\-EEE?;} EPMMPM\-DEIE\-MEIIQQFIZ?; record {AlphaNumeric1 MIMIF\-MFEE\-FMI\-FMD?; Decimal9V2 DEEIH\-EMIF\-DEIQQFMEMI\-EMI?; Decimal9V2 IPI\-EQQPII\-DIH\-EMM\-PEZI\-EMI?; Decimal9V2 IPI\-MEI\-DIH\-EMM\-PEZI\-EMI?; AlphaNumeric1 IPI\-DIH\-PEZEEME\-EEME\-ED?; record {Decimal9V2 IPI\-DIH\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 IPI\-DIH\-EEMEEFII\-IIM\-EEME\-ED?; Decimal9V2 PQQI\-EDD\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 PQQI\-EDD\-EEMEEFII\-IIM\-EEME\-ED?; Decimal9V2 IPI\-IFE\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 IPI\-IFE\-EEMEEFII\-EEME\-ED?;} IIM\-FMIIQQED\-EFEMDI\-EI\-EEE\-DI?;} EPMMPM\-DEIE\-DII\-EMEFMI?; record {UnsignedInteger2 EMFEMI\-DEIEFM\-EPIMIEQQ?; record {UnsignedInteger9 EITIMESI\-FDEMIFIZ\-FDEMIFEZ?; AlphaNumeric1 EITIMESI\-FDEMIFIZ\-IZPE?; UnsignedInteger4 EMFEMI\-QQPME\-EMEIIFEEEIFPM?; AlphaNumeric5 EMFEMI\-QQPME\-IZPE?; AlphaNumeric8 PPMFEZ\-PWMEQQ\-IFIME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-IIQQMEME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-EFQQII\-MEME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-IEEPMD\-MEME?; AlphaNumeric8 PPMFEZ\-PWMEQQ\-DPE?; AlphaNumeric1 PPMFEZ\-PWMEQQ\-IEL?; AlphaNumeric8 MFEE\-FMIIQQED\-IFIME?; AlphaNumeric40 MFEE\-FMIIQQED\-IIQQMEME?; AlphaNumeric40 MFEE\-FMIIQQED\-EFQQII\-MEME?; AlphaNumeric40 MFEE\-FMIIQQED\-IEEPMD\-MEME?; AlphaNumeric8 MFEE\-FMIIQQED\-DPE?; AlphaNumeric1 MFEE\-FMIIQQED\-IEL?; AlphaNumeric30 PEQQIPM\-IIQQMEME\-FMFIFEMI?; AlphaNumeric50 PQQEEMFIEIFPM\-MEME?; AlphaNumeric50 EMEFM\-EDDQQEII?; AlphaNumeric20 EPMIEEI\-IEMEPHPME\-MIM?; AlphaNumeric20 HPME\-IEMEPHPME\-MIM?; AlphaNumeric12 MPEFME\-MIM?; AlphaNumeric20 WPQQK\-IEMEPHPME\-MIM?; AlphaNumeric20 EEL\-IEMEPHPME\-MIM?;}[10] PMEM\-EMFEMI\-DEIEFM1?; UnsignedInteger2 EMFEMI\-EEMEEFI\-EPIMIEQQ?; record {AlphaNumeric5 EEMEEFI\-MEME?; UnsignedInteger2 EEMEEFI\-MIM?; UnsignedInteger9 EF\-FD?; AlphaNumeric1 EITIMESI\-FDEMIFIZ\-IZPE?; AlphaNumeric2 EMFEMI\-QQPME\-EMEII?; AlphaNumeric5 EMFEMI\-QQPME\-IZPE?; AlphaNumeric50 PQQEEMFIEIFPM\-MEME?; AlphaNumeric50 PEQQIPM\-EFVVEM\-MEME\-IIQQMEME?; AlphaNumeric30 PEQQIPM\-IIQQMEME\-FMFIFEMI?;}[20] PMEM\-EMFEMI\-DEIEFM2?; AlphaNumeric1 EMEZ\-EFMDFME\-FMD?; AlphaNumeric8 EMEZ\-EFMDFME\-ELPFQQZ\-DI?; AlphaNumeric1 EMEZ\-EEVVEEII\-MPQQE\-FMD?; AlphaNumeric1 EMEZ\-MPQQE\-IHEM\-10\-FMD?; UnsignedInteger2 EMEZ\-EPIMIEQQ?; record {AlphaNumeric25 EMEZ\-EFVVEM\-MEMEI?; AlphaNumeric25 EMEZ\-IIQQMEME?; AlphaNumeric3 EMEZ\-QQEMEIFPMIHFP\-ED?; AlphaNumeric25 EMEZ\-QQEMEIFPMIHFP?; Decimal3V2 EMEZ\-PEQQEEMI\-EMMPEEIFPM?; AlphaNumeric8 EMEZ\-DPE?; AlphaNumeric1 EMEZ\-EEMDEQQ?;}[10] EMEZ\-DEIEFMI?;} EPMMPM\-DEIE\-EMFEMI?; record {AlphaNumeric1 IE\-PQQEIEMI\-FMD?; record {AlphaNumeric8 EMEEMIZ\-IIEQQI\-DI?; AlphaNumeric8 IE\-EEE\-DI?; AlphaNumeric8 IE\-EIMD\-EPMMEMEED\-DI?; AlphaNumeric1 IE\-PPQQIFPM\-IZPE\-ED?; Decimal9V2 PMEM\-IPIEM\-IE\-EMI?; record {AlphaNumeric13 PMEM\-IPIEM\-IE\-EMI\-ILI?;} PMEM\-IPIEM\-IE\-EMI\-QQED?; UnsignedDecimal10V2 PQQEIEQQVVE\-EMI?; record {AlphaNumeric13 PQQEIEQQVVE\-EMI\-ILI?;} PQQEIEQQVVE\-EMI\-QQED?; UnsignedDecimal1V2 QQEEEIE\-PQQPPPQQIFPM\-EMI?; Decimal9V2 QQEIIQQFEI\-MPM\-PQQIQQVV\-EMEI\-EMI?; Decimal9V2 IMQQEIIQQI\-MPM\-PQQIQQVV\-EMEI\-EMI?; AlphaNumeric8 EI\-07\-EMEEMIZ\-IIEQQI\-DI?; Decimal9V2 EI\-07\-PMEM\-VVEM\-EMI?; Decimal9V2 IEL\-EQQEE\-EPMPPMI\-EMI?; record {AlphaNumeric13 IEL\-EQQEE\-EPMPPMI\-EMI\-ILI?;} IEL\-EQQEE\-EPMPPMI\-EMI\-QQED?; Decimal9V2 IEL\-EQQEE\-FM\-PII\-EPMPPMI\-EMI?; Decimal9V2 IEL\-EPMPPMI\-EMI?; record {AlphaNumeric13 IEL\-EPMPPMI\-EMI\-ILI?;} IEL\-EPMPPMI\-EMI\-QQED?; Decimal9V2 IEL\-FM\-PII\-EPMPPMI\-EMI?; AlphaNumeric3 EPMDFIFPM\-PE\-QQEMEEIE?; AlphaNumeric40 EPMDFIFPM\-PE\-QQEMEEIE\-DEIE?;} IIPEQQEMM\-EEMEEFI\-DEIE?;} EPMMPM\-DEIE\-EMQQM?; record {UnsignedInteger3 PMEM\-WEQQMFME\-EPIMIEQQ?; record {AlphaNumeric79 PMEM\-WEQQMFME\-IELI?; AlphaNumeric3 PMEM\-WEQQMFME\-IZPE?; AlphaNumeric4 PMEM\-EQQQQPQQ\-EPDE?;}[50] PMEM\-WEQQMFME\-MIEI?;} EPMMPM\-DEIE\-WEQQMFME?;} EPMMPM\-DEIE?; AlphaNumeric11304 PMEM\-PIIPII\-DEIE?; record {record {Decimal9V2 EEIE\-EQQPII\-IIQQQQ\-EMI?; record {AlphaNumeric13 EEIE\-EQQPII\-IIQQQQ\-EMI\-ILI?;} EEIE\-EQQPII\-IIQQQQ\-EMI\-QQED?; Decimal9V2 EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI?; record {AlphaNumeric13 EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI\-ILI?;} EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI\-QQED?; Decimal9V2 EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI?; record {AlphaNumeric13 EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI\-ILI?;} EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI\-QQED?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric50 PMEM\-EPMMEMI\-IELI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; AlphaNumeric8 EIIEII\-ELPFQQZ\-DI?; Decimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric2 EIIEII\-FMPEFQQMEMI\-IZPE?; Decimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; AlphaNumeric1 EEMK\-PQQDEQQ\-ED?; AlphaNumeric1 EQQPKEM\-IEQQM\-FMD?; AlphaNumeric1 EITIMESI\-IZPE\-ED?; Decimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; Decimal9V2 EPE\-EEMEMEE\-EMI?; AlphaNumeric2 EPE\-EEMEMEE\-EEIIE\-ED?; AlphaNumeric8 EPE\-EEMEMEE\-EEIIE\-DI?; AlphaNumeric2 EPE\-EEMEMEE\-IFEM\-ED?; Decimal9V2 EPE\-EEMEMEE\-IPIEM\-EMI?; AlphaNumeric2 EPE\-EEMEMEE\-IPI\-EMI\-IEM\-ED?; Decimal9V2 EPE\-FMIEQQEII\-EFMM\-EMI?; Decimal9V2 EPE\-PQQFMEFPME\-EMI?; Decimal9V2 EIQQQQEMI\-EPE\-EEMEMEE?; Decimal9V2 EIQQQQEMI\-PQQEM\-FMIEQQEII\-EMI?; AlphaNumeric1 EEMEME\-QQEIE\-FMD?; Decimal9V2 EQQPII\-EEIH\-VVEM\-EPMII\-EMI?; AlphaNumeric7 EQQPIP\-MIM?; AlphaNumeric1 FMEQQEEIE\-FMD?; AlphaNumeric8 FMIEQQEII\-EEPFIEMFIEIFPM\-DI?; AlphaNumeric1 MFEE\-FMIIQQE\-MEQQQQFED\-EEMEME\-FMD?; Decimal9V2 MPEM\-VALUE\-EMI?; Decimal9V2 MPEM\-EVVEFMEEME\-EMI?; Decimal9V2 MPEM\-DEEI\-EMI?; Decimal9V2 MPEM\-FMIEQQEII\-EFMM\-EMI?; Decimal9V2 MPEM\-PQQFMEFPME\-EMI?; AlphaNumeric3 MPEEMFIZ\-ED?; Decimal9V2 MPP\-EEEPIMI\-EEMEMEE\-EMI?; AlphaNumeric2 MPP\-EEEPIMI\-EEMEMEE\-IFEM\-ED?; AlphaNumeric2 MPP\-EEEPIMI\-EEIIE\-ED?; AlphaNumeric8 MPP\-EEEPIMI\-EEIIE\-DI?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; Decimal9V2 MEW\-EPMII\-EMI?; AlphaNumeric1 PEQQEMI\-DEED\-FMD?; AlphaNumeric1 PEQQI\-PEFDIP\-FMD?; AlphaNumeric8 PMEM\-EEEPIMI\-EEMEMEE\-EI\-DI?; AlphaNumeric4 PMEM\-EMEII?; Decimal9V2 PMEM\-DEEI\-EMI?; Decimal9V2 PMEM\-PEFDIP\-IIM\-FMIIQQED\-EMI?; Decimal9V2 PQQEM\-DIE\-IP\-DI\-EMI?; AlphaNumeric8 PQQEM\-EMEQQEE\-DI?; AlphaNumeric1 PQQEM\-FME\-EMI\-EMI\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-QQEEPMMEMEE\-DI?; AlphaNumeric2 PQQEM\-QQEMEWEM\-DEZ?; AlphaNumeric2 PQQEM\-QQEMEWEM\-MPMIH?; AlphaNumeric8 PQQEM\-QQEMEW\-IP\-DI?; AlphaNumeric8 QQEFMIIEIEMEMI\-IP\-DI?; Decimal9V2 QQEFMIIEIEMEMI\-EQQQQEEQQI\-EMI?; AlphaNumeric1 QQEFMIIQQED\-FMD?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; Decimal9V2 IFMEME\-PQQEM\-EMI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; Decimal9V2 IIM\-FMIIQQED\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IIQQQQ\-VVEM\-FMIIEE\-DI?; AlphaNumeric4 IIQQQQ\-VVEM\-FMIIEE\-ED?; Decimal9V2 IIQQQQ\-VVEM\-MPMIHMZ\-EHME\-EMI?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric2 IEMP\-EIIEII\-FMPEFQQMEMI\-IZPE?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; Decimal9V2 IEMP\-EPMMIIE\-EEIH\-EMI?; AlphaNumeric8 WEFVVEQQ\-PE\-PQQEM\-EMEFM\-DI?; AlphaNumeric1 WEFVVEQQ\-PE\-PQQEM\-EMEFM\-FMD?; Decimal9V2 EIQQQQ\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 EIQQQQ\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 EIQQQQ\-EMMFVV\-DI?; UnsignedDecimal5V3 EIQQQQ\-EPMII\-EEEIPQQ\-QQEIE?; Decimal9V2 EIQQQQ\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 EIQQQQ\-PEQQIFEFPEIFME\-IZPE?; Decimal9V2 EIQQQQ\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 EIQQQQ\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; Decimal9V2 EIQQQQ\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 EIQQQQ\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; Decimal9V2 EIQQQQ\-MEII\-PQQEM\-1\-EMI?; Decimal9V2 EIQQQQ\-MEII\-PQQEM\-2\-EMI?; Decimal9V2 EIQQQQ\-MEII\-PQQEM\-3\-EMI?; Decimal9V2 EIQQQQ\-EMMIEM\-EMI?; Decimal9V2 EIQQQQ\-IPIEM\-EPMII\-EMI?; Decimal9V2 EIQQQQ\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; Decimal9V2 EIQQQQ\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; AlphaNumeric1 EPE\-EEMEMEE\-ELFIII\-FMD?; AlphaNumeric8 MEII\-PQQEMFIM\-PEFD\-DEIE?; AlphaNumeric1 ELIEQQMEM\-IQQIIIEE\-FMD?;} PMEM\-DEIEFMI\-EPMVVEMIFPMEM?; record {Decimal9V2 PMD\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 PMD\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 PMD\-EMMFVV\-DI?; UnsignedDecimal5V3 PMD\-EPMII\-EEEIPQQ\-QQEIE?; Decimal9V2 PMD\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 PMD\-PEQQIFEFPEIFME\-IZPE?; Decimal9V2 PMD\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 PMD\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; Decimal9V2 PMD\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 PMD\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; Decimal9V2 PMD\-MEII\-PQQEM\-1\-EMI?; Decimal9V2 PMD\-MEII\-PQQEM\-2\-EMI?; Decimal9V2 PMD\-MEII\-PQQEM\-3\-EMI?; Decimal9V2 PMD\-EMMIEM\-EMI?; Decimal9V2 PMD\-IPIEM\-EPMII\-EMI?; Decimal9V2 PMD\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; Decimal9V2 PMD\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; Decimal9V2 MEW\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 MEW\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 MEW\-EMMFVV\-DI?; UnsignedDecimal5V3 MEW\-EPMII\-EEEIPQQ\-QQEIE?; Decimal9V2 MEW\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 MEW\-PEQQIFEFPEIFME\-IZPE?; Decimal9V2 MEW\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 MEW\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; Decimal9V2 MEW\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; Decimal9V2 MEW\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; Decimal9V2 MEW\-MEII\-PQQEM\-1\-EMI?; Decimal9V2 MEW\-MEII\-PQQEM\-2\-EMI?; Decimal9V2 MEW\-MEII\-PQQEM\-3\-EMI?; Decimal9V2 MEW\-EMMIEM\-EMI?; Decimal9V2 MEW\-IPIEM\-EPMII\-EMI?; Decimal9V2 MEW\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; Decimal9V2 MEW\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; Decimal9V2 EEIFE\-PQQEM?; Decimal9V2 IPIEM\-PMD\-EEIFE\-PQQEM?; AlphaNumeric8 MEII\-EHE\-IEM\-EEE\-DI?; AlphaNumeric1 MEII\-IEEME\-EHEMEE\-FMD?;} EEIIQQFEM\-DEIEFMI\-EPMVVEMIFPMEM?; record {UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?;} EMFEMI\-PMEM\-EIIFEM?; record {AlphaNumeric8 PQQPPPMEMI\-DPE?; UnsignedInteger3 EEE\-EI\-MEIIQQFIZ?; AlphaNumeric8 FMIII\-IEEME\-MEME\-EPDE?; AlphaNumeric8 IQQIE\-IEEME\-MEME?; AlphaNumeric1 MEPIED\-FMD?; AlphaNumeric1 PEFD\-IP\-FMD?; AlphaNumeric8 PEFD\-IP\-DEIE?; AlphaNumeric2 IPEEFEM\-EPDE\-1\-IP\-2?; AlphaNumeric4 IPEEFEM\-EPDE\-3\-IP\-6?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric8 MPEM\-QQEIE\-DI?; Decimal9V2 EPE\-FMIEQQEII\-QQEIE?; Decimal9V2 MPEM\-FMIEQQEII\-QQEIE?; UnsignedDecimal3V2 MPEM\-PEQQEEMI?; Decimal9V2 EPMMEQQEFEM\-FMIEQQEII\-QQEIE?; Decimal9V2 EEIH\-VVEM\-EPMII\-EMEEQQ\-DEEI\-EMI?;} QQEMEFMFME\-PMEM\-EFEMDI?; record {UnsignedInteger3 EPMVVEMIM\-PMEM\-FMEQQ\-EPIMIEQQ?; record {Decimal9V2 EMMIEM\-PQQEM\-FMEQQ\-EMI?; AlphaNumeric2 EIIEII\-ED?; Decimal9V2 EIIEII\-ELIQQ\-FMII\-PQQEM\-FMEQQ\-EMI?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; Decimal9V2 EPMII\-FMEQQ\-EMI?; AlphaNumeric1 EPMII\-FMEQQ\-QQEEEQQ\-FMD?; AlphaNumeric3 EPMVVEMIM\-PMEM\-FMEQQ\-MP?; AlphaNumeric1 EPF\-FMEQQ\-FMD?; Decimal9V2 FMIIEM\-PQQEM\-FMEQQ\-EMI?; Decimal9V2 MEII\-PQQEM\-3\-FMEQQ\-EMI?; AlphaNumeric1 MEII\-PQQEM\-3\-FMEQQ\-QQEEEQQ\-FMD?; Decimal9V2 MEW\-EPMII\-FMEQQ\-EMI?; AlphaNumeric1 MEW\-EPMII\-FMEQQ\-QQEEEQQ\-FMD?; Decimal9V2 IIM\-FMIIQQED\-FMEQQ\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMEQQ\-QQEEEQQ\-FMD?;}[35] EPMVVEMIM\-PMEM\-FMEQQ?;} FMEQQEEIE\-DEIE\-EPMVVEMIFPMEM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; Decimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; Decimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIED\-FMD?; Decimal9V2 MIM\-PE\-IMFII?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; Decimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; Decimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; Decimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; Decimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; Decimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 IQQ\-EEMEEFI\-IEQQM?; UnsignedInteger2 EPMVV\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 EPMVV\-ELEM\-PEFD\-FMD?; AlphaNumeric3 EPMVV\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 EPMVV\-ELEM\-EMEIIE\-MEME?; Decimal9V2 EPMVV\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 EPMVV\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 EPMVV\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] EPMVV\-ELEMIIFPMI?;}[5] EEMEEFI\-EEIFE\-DEIEFMI?;} EEMEEFI\-DEIE\-EPMVVEMIFPMEM?; record {Decimal9V2 MEIIQQFIZ\-IIM\-FMIIQQED\-EMI?; Decimal9V2 MEIIQQFIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; Decimal9V2 MEIIQQFIZ\-IEQQMFMEM\-EPMII\-EMI?; Decimal9V2 MEIIQQFIZ\-IELEQQ\-EMI?; Decimal9V2 MEIIQQFIZ\-IIQQEHEQQEE\-EMI?; Decimal9V2 MEIIQQFIZ\-IPIEM\-EPE\-EMI?; Decimal9V2 MEIIQQFIZ\-IPIEM\-MPEM\-EMI?;} MEIIQQFIZ\-VALUEI\-EPMVV?; record {Decimal9V2 DEEIH\-MF\-EEM\-MIMP\-IIM\-EMI?; AlphaNumeric1 DEEIH\-MF\-EEM\-MIMP\-IIM\-EEME\-ED?; Decimal9V2 DEEIH\-QQIM\-PQQEM\-FMI\-EMI?; AlphaNumeric1 DIH\-QQIM\-PQQM\-FMI\-EMI\-EEME\-ED?; Decimal9V2 DEEIH\-QQEVVEQQIFPM\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-QQEVVEQQIFPM\-EPMII\-EEME\-ED?; Decimal9V2 DEEIH\-PQQPIPEEIVV\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-PQQPIPEEIVV\-EPMII\-EEME\-ED?; Decimal9V2 DEEIH\-IEQQMFMEM\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-IEQQMFMEM\-EPMII\-EEME\-ED?; Decimal9V2 DEEIH\-IELEQQ\-EMI?; AlphaNumeric1 DEEIH\-IELEQQ\-EEME\-ED?; Decimal9V2 DEEIH\-IIQQEHEQQEE\-EMI?; AlphaNumeric1 DEEIH\-IIQQEHEQQEE\-EEME\-ED?; Decimal9V2 DEEIH\-IPIEM\-EPE\-EMI?; AlphaNumeric1 DEEIH\-IPIEM\-EPE\-EEME\-ED?; Decimal9V2 DEEIH\-IPIEM\-MPEM\-EMI?; AlphaNumeric1 DEEIH\-IPIEM\-MPEM\-EEME\-ED?;} EMEFM\-VALUEI\-EPMVV?; AlphaNumeric2605 EFMMEQQ?;} PIIPII\-DEIE\-EPMVVEMIFPMEM?; record {record {AlphaNumeric8 PMEM\-EMEII?; Decimal9V2 IPIEM\-EEIH\-EEPFIEM\-EMI?; AlphaNumeric1 EIMM\-VVPMIMIQQZ\-PQQIQQVV\-PMEM\-FMD?; AlphaNumeric1 QQEDEMPIM\-PEQQFPD\-EPPMZ\-FMD?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric8 PMEM\-DEIEFMI\-EI\-DI?; AlphaNumeric8 EMMFVV\-DI?; Decimal9V2 EMMIEM\-FMIIEMMI\-EMI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; Decimal9V2 EFMM\-EMI?; AlphaNumeric1 FMFIFEM\-IMFI\-PQQEIEMI\-FMD?; Decimal9V2 FMFIFEM\-IMFI\-VVEM\-EMI?; Decimal8V3 FMFIFEM\-EEIH\-EEEIPQQ?; Decimal9V2 EIMM\-VVEM\-PE\-FMFIFEM\-IMFII?; Decimal9V2 EIMM\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; Decimal9V2 EEIH\-VVEM\-PE\-FMFIFEM\-IMFII?; Decimal9V2 EEIH\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; AlphaNumeric8 MEII\-MPVVEMEMI\-EEE\-DI?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; Decimal9V2 MFMFMIM\-DEEIH\-EEMEEFI\-EMI?; Decimal9V2 PIIIIMD\-EEE\-EMI?; AlphaNumeric1 PIIIIMD\-EEE\-PQQEIEMI\-FMD?; Decimal9V2 PIIIIMD\-PEMFEEIM\-EMI?; AlphaNumeric18 PMEM\-ELIEMD\-MEME?; AlphaNumeric4 PMEM\-IEQQM?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; Decimal9V2 IIM\-FMIIQQED\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IIQQQQ\-VVEM\-FMIIEE\-DI?; AlphaNumeric13 IIQQQQ\-VVEM\-FMIIEE\-MIE?; Decimal9V2 IPIEM\-PMEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric8 MEII\-PQQEMFIM\-PEFD\-DEIE?; AlphaNumeric1 ELIEQQMEM\-IQQIIIEE\-FMD?; UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?;} PMEM\-DEIEFMI\-FM?; record {UnsignedInteger2 PMEM\-IMFI\-EEEPIMI\-EPIMIEQQ?; record {Decimal9V2 IMFI\-IPIEM\-VVEM\-EMI?; Decimal9V2 FMVVEIIMI\-IMFI\-VVEM\-EMI?; AlphaNumeric2 IMFI\-EMEII\-FDEMIFEZ?; Decimal9V2 FMVVEIIMI\-PPIFPM\-PEQQEEMI?; Decimal9V2 FMFIFEM\-IMFI\-QQIEMIFIZ?; Decimal9V2 FMFIFEM\-IMFI\-QQIZ\-MEII\-WDM\-EEE?; Decimal9V2 FMFIFEM\-IMFI\-QQIZ\-WDM\-EEE?; Decimal9V2 FMVVEIIMI\-IMFI\-QQIEMIFIZ?; Decimal9V2 FMVVEIIMI\-IMFI\-QQIZ\-MEII\-WDM\-EEE?; Decimal9V2 FMVVEIIMI\-IMFI\-QQIZ\-WDM\-EEE?; AlphaNumeric40 FMVVEIIMI\-PPIFPM\-DEIE?; Decimal9V2 MP\-PE\-IMFI\-QQIEMIFIZ?;}[10] PMEM\-IMFI\-EEE\-DEIE?;} EEIH\-VALUE\-DEIE\-FM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; Decimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; Decimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIED\-FMD?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; Decimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; Decimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; Decimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; Decimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; Decimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 FM\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 FM\-ELEM\-PEFD\-FMD?; AlphaNumeric3 FM\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 FM\-ELEM\-EMEIIE\-MEME?; Decimal9V2 FM\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 FM\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 FM\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] FM\-ELEMIIFPMI?;}[5] EEMEEFI\-EEIFE\-DEIEFMI?;} EEMEEFI\-DEIE\-FM?; AlphaNumeric6070 EFMMEQQ?;} PIIPII\-DEIE\-FM?; record {record {Decimal9V2 ELIQQE\-EMMIEM\-PQQEM\-EMI?; Decimal9V2 IM\-EMM\-FMVV\-PQQEM?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric8 PEZMEMI\-DEIE?; AlphaNumeric50 PMEM\-EPMMEMI\-IELI?; AlphaNumeric8 PMEM\-DEIEFMI\-EI\-DI?; AlphaNumeric9 PMEM\-MEME?; AlphaNumeric21 PMEM\-MIM?; AlphaNumeric8 EMMFVV\-DI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; AlphaNumeric1 EEMK\-PQQDEQQ\-ED?; Decimal9V2 EFMM\-EMI?; AlphaNumeric1 EITIMESI\-IZPE\-ED?; AlphaNumeric7 EQQPIP\-MIM?; AlphaNumeric8 MEII\-MPVVEMEMI\-EEE\-DI?; AlphaNumeric3 MPEEMFIZ\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; AlphaNumeric18 PMEM\-ELIEMD\-MEME?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric2 PQQEM\-QQEMEWEM\-DEZ?; AlphaNumeric2 PQQEM\-QQEMEWEM\-MPMIH?; Decimal9V2 IFMEME\-PQQEM\-PEFD\-IP\-DI\-EMI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?; Decimal9V2 EIMM\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; Decimal9V2 EEIH\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; AlphaNumeric7 MEII\-FMVVEIIMEMI\-WEEK?;} PMEM\-DEIEFMI\-IM?; record {Decimal9V2 IMFI\-IPIEM\-VVEM\-EMI?; Decimal9V2 FMVVEIIMI\-IMFI\-VVEM\-EMI?; AlphaNumeric2 IMFI\-EMEII\-FDEMIFEZ?; UnsignedDecimal5V2 FMVVEIIMI\-PPIFPM\-PEQQEEMI?; Decimal9V2 FMFIFEM\-IMFI\-QQIEMIFIZ?; Decimal9V2 FMVVEIIMI\-IMFI\-QQIEMIFIZ?; AlphaNumeric40 FMVVEIIMI\-PPIFPM\-DEIE?; Decimal9V2 MP\-PE\-IMFI\-QQIEMIFIZ?;} EEIH\-VALUE\-DEIE\-IM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; Decimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; Decimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; Decimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; Decimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; Decimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; Decimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; Decimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; Decimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; Decimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; UnsignedDecimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 IM\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 IM\-ELEM\-PEFD\-FMD?; AlphaNumeric3 IM\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 IM\-ELEM\-EMEIIE\-MEME?; Decimal9V2 IM\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 IM\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 IM\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] IM\-ELEMIIFPMI?;}[5] EEM\-DEIE\-IM?;} EEMEEFI\-DEIE\-IM?; AlphaNumeric7722 EFMMEQQ?;} PIIPII\-DEIE\-IM?;} PIIPII\-DEIE?;} MQQ\-DEIE?; + record {record {AlphaNumeric10 IQQVV\-QQEQQ\-IZP?; AlphaNumeric10 PPM\-MP?; AlphaNumeric3 IZI\-ED?; AlphaNumeric8 EEE\-DI?; record {UnsignedInteger9 MFEE\-FMIIQQED\-EF\-FD?;}[5] MFEE\-FMIIQQED\-FDI?; SignedDecimal9V2 EQQPII\-IIQQ\-VVEM?; SignedDecimal9V2 IPIEM\-EPMII?; UnsignedDecimal5V3 EPMII\-EEEIPQQ?;} FMPII\-HDQQ\-DEIE?; record {record {AlphaNumeric10 MEP\-MEME?; AlphaNumeric1 MPQQ\-DEIE\-EVVMEM\-FMD?; UnsignedInteger3 IQQEMI\-IEQQ\-MIM?; AlphaNumeric3 EIIPE\-PPM\-FM\-IZI?; AlphaNumeric20 EIIPE\-PPM\-MP?;} PIIPII\-HDQQ\-DEIE?; record {record {AlphaNumeric4 IQQIII\-EIMD\-ED?; AlphaNumeric1 EPE?; AlphaNumeric10 EPE\-DEIE?; AlphaNumeric1 EEH\-ED?; AlphaNumeric1 QQEE\-ED?; AlphaNumeric2 PPM\-IIEI\-ED?; AlphaNumeric2 PPM\-IIEI\-EMQQ\-ED?; AlphaNumeric30 PPM\-IIEI\-DEIE?; AlphaNumeric30 PPM\-IIEI\-EMQQ\-DEIE?; AlphaNumeric10 IEEME\-MEME?; AlphaNumeric3 IEEME\-EPDE?; AlphaNumeric8 PMEMMEQQ\-MIM?; AlphaNumeric8 PQQFEFMEIFME\-PMEMMEQQ\-MIM?; AlphaNumeric40 PQQPDIEI\-MEME?; SignedDecimal9V2 EQQPII\-IIQQQQ\-EMI?; record {AlphaNumeric13 EQQPII\-IIQQQQ\-EMI\-ILI?;} EQQPII\-IIQQQQ\-EMI\-QQED?; SignedDecimal9V2 MEI\-IIQQQQ\-EMI?; record {AlphaNumeric13 MEI\-IIQQQQ\-EMI\-ILI?;} MEI\-IIQQQQ\-EMI\-QQED?; AlphaNumeric2 MPVVEMEMI\-EEIIE\-IZPE?; AlphaNumeric8 MPVVEMEMI\-DI?; AlphaNumeric8 MELI\-PQQEM\-EFMM\-DI?; AlphaNumeric8 PQQEM\-QQEMEWED\-IP\-DI?; AlphaNumeric8 PMEM\-EPMMEMEED\-DI?; AlphaNumeric8 PMEM\-ELPFQQZ\-DI?; UnsignedInteger3 PQQEMFIM\-QQEIFME\-EEE?; SignedDecimal9V2 PMEM\-EEE\-EMI?; AlphaNumeric1 IID\-EEE\-FMD?; AlphaNumeric8 PMEM\-VVEM\-EEE\-EI\-DI?; AlphaNumeric8 PMEM\-VVEM\-QQIM\-EEE\-DI?; AlphaNumeric1 PQQEM\-FMDELED\-FMD?; SignedDecimal9V2 PQQEM\-PEFD\-IP\-DI\-EMI?; AlphaNumeric1 PEZMEMI\-MEIHPD?; AlphaNumeric15 PEZMEMI\-MEIHPD\-DEIE?; AlphaNumeric2 PEZMEMI\-EQQEQQ?; AlphaNumeric1 IPEEFEM\-IQQEEIMEMI\-IZPE?; AlphaNumeric1 IEE\-FMD?; SignedDecimal9V2 PMEM\-FMIIEMMEMI\-PQQEM\-EMI?; SignedDecimal9V2 PMEM\-EMMIEMFIED\-PQQEM\-EMI?; SignedDecimal9V2 PQQEM\-DIE\-IP\-DI\-EMI?; AlphaNumeric1 PIQQEHEIED\-WFIH\-IE\-FMD?; AlphaNumeric5 EL\-IPIQQEE\-EPDE?; SignedDecimal9V2 WFIHDQQEWEM\-EEE?; UnsignedInteger2 EEVVEEI\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric8 EEVVEEI\-DI?; AlphaNumeric100 EEVVEEI\-MEIIEEE\-IELI?;}[5] EEVVEEI\-DEIEFMI?; AlphaNumeric8 EFQQII\-PPMFEZ\-PWMEQQ\-IFIME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-IIQQMEME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-EFQQII\-MEME?; AlphaNumeric40 EFQQII\-PPMFEZ\-PWMEQQ\-IEEPMD\-MEME?; AlphaNumeric8 EFQQII\-PPMFEZ\-PWMEQQ\-DPE?; AlphaNumeric1 EFQQII\-PPMFEZ\-PWMEQQ\-IEL?; AlphaNumeric8 EFQQII\-MFEE\-FMIIQQED\-IFIME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-IIQQMEME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-EFQQII\-MEME?; AlphaNumeric40 EFQQII\-MFEE\-FMIIQQED\-IEEPMD\-MEME?; AlphaNumeric8 EFQQII\-MFEE\-FMIIQQED\-DPE?; AlphaNumeric1 EFQQII\-MFEE\-FMIIQQED\-IEL?; AlphaNumeric1 EPMIQQFEIIFPMI\-EPPMZ\-FMD?; AlphaNumeric1 IMEPPMFED\-EEIH\-ELFIII\-FMD?; AlphaNumeric1 DEEIH\-EMEFM\-FMD?; AlphaNumeric1 IEM\-HEMD\-FMD?; AlphaNumeric1 DFIEEMEMEMI\-EMEFM\-FMD?; AlphaNumeric6 PQQPDIEI\-EQQPIP?; AlphaNumeric1 QQEKEEIED\-MPVVI\-ELFIII\-FMD?; AlphaNumeric2 EPIMIQQZ\-EPDE?; SignedDecimal9V2 IPI\-EEIH\-EEP\-EPMP\-EMI?; SignedDecimal9V2 IPIEM\-FMIIQQED\-DEEIH\-EMI?; SignedDecimal9V2 IPIEM\-FMIIQQED\-IPD\-EMI?; SignedDecimal9V2 IPIEM\-FMIIQQED\-FP\-EMI?;} EPMMPM\-DEIE\-EMQQVV?; record {AlphaNumeric1 MEIIQQFIZ\-VALUE\-EEMEIMEIED\-FMD?; SignedDecimal9V2 MEIIQQFIZ\-MEI\-PMEM\-VALUE\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-EQQPII\-PMEM\-VALUE\-EMI?; AlphaNumeric1 MEIIQQFIZ\-VVEM\-EEIIEM\-PQQ\-EII\-FMD?; AlphaNumeric8 MEIIQQFIZ\-VVEM\-EEE\-EI\-DEIE?; SignedDecimal8V3 MEIIQQFIZ\-EEIH\-VALUE\-EEEIPQQ?; AlphaNumeric1 MEIIQQFIZ\-ELIEMD\-EVVEFMEEME\-FMD?; UnsignedInteger3 MEIIQQFIZ\-EEMEIMEIED\-EEE?;} EPMMPM\-DEIE\-MEIIQQFIZ?; record {AlphaNumeric1 MIMIF\-MFEE\-FMI\-FMD?; SignedDecimal9V2 DEEIH\-EMIF\-DEIQQFMEMI\-EMI?; SignedDecimal9V2 IPI\-EQQPII\-DIH\-EMM\-PEZI\-EMI?; SignedDecimal9V2 IPI\-MEI\-DIH\-EMM\-PEZI\-EMI?; AlphaNumeric1 IPI\-DIH\-PEZEEME\-EEME\-ED?; record {SignedDecimal9V2 IPI\-DIH\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 IPI\-DIH\-EEMEEFII\-IIM\-EEME\-ED?; SignedDecimal9V2 PQQI\-EDD\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 PQQI\-EDD\-EEMEEFII\-IIM\-EEME\-ED?; SignedDecimal9V2 IPI\-IFE\-EEMEEFII\-IIM\-FMI\-EMI?; AlphaNumeric1 IPI\-IFE\-EEMEEFII\-EEME\-ED?;} IIM\-FMIIQQED\-EFEMDI\-EI\-EEE\-DI?;} EPMMPM\-DEIE\-DII\-EMEFMI?; record {UnsignedInteger2 EMFEMI\-DEIEFM\-EPIMIEQQ?; record {UnsignedInteger9 EITIMESI\-FDEMIFIZ\-FDEMIFEZ?; AlphaNumeric1 EITIMESI\-FDEMIFIZ\-IZPE?; UnsignedInteger4 EMFEMI\-QQPME\-EMEIIFEEEIFPM?; AlphaNumeric5 EMFEMI\-QQPME\-IZPE?; AlphaNumeric8 PPMFEZ\-PWMEQQ\-IFIME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-IIQQMEME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-EFQQII\-MEME?; AlphaNumeric40 PPMFEZ\-PWMEQQ\-IEEPMD\-MEME?; AlphaNumeric8 PPMFEZ\-PWMEQQ\-DPE?; AlphaNumeric1 PPMFEZ\-PWMEQQ\-IEL?; AlphaNumeric8 MFEE\-FMIIQQED\-IFIME?; AlphaNumeric40 MFEE\-FMIIQQED\-IIQQMEME?; AlphaNumeric40 MFEE\-FMIIQQED\-EFQQII\-MEME?; AlphaNumeric40 MFEE\-FMIIQQED\-IEEPMD\-MEME?; AlphaNumeric8 MFEE\-FMIIQQED\-DPE?; AlphaNumeric1 MFEE\-FMIIQQED\-IEL?; AlphaNumeric30 PEQQIPM\-IIQQMEME\-FMFIFEMI?; AlphaNumeric50 PQQEEMFIEIFPM\-MEME?; AlphaNumeric50 EMEFM\-EDDQQEII?; AlphaNumeric20 EPMIEEI\-IEMEPHPME\-MIM?; AlphaNumeric20 HPME\-IEMEPHPME\-MIM?; AlphaNumeric12 MPEFME\-MIM?; AlphaNumeric20 WPQQK\-IEMEPHPME\-MIM?; AlphaNumeric20 EEL\-IEMEPHPME\-MIM?;}[10] PMEM\-EMFEMI\-DEIEFM1?; UnsignedInteger2 EMFEMI\-EEMEEFI\-EPIMIEQQ?; record {AlphaNumeric5 EEMEEFI\-MEME?; UnsignedInteger2 EEMEEFI\-MIM?; UnsignedInteger9 EF\-FD?; AlphaNumeric1 EITIMESI\-FDEMIFIZ\-IZPE?; AlphaNumeric2 EMFEMI\-QQPME\-EMEII?; AlphaNumeric5 EMFEMI\-QQPME\-IZPE?; AlphaNumeric50 PQQEEMFIEIFPM\-MEME?; AlphaNumeric50 PEQQIPM\-EFVVEM\-MEME\-IIQQMEME?; AlphaNumeric30 PEQQIPM\-IIQQMEME\-FMFIFEMI?;}[20] PMEM\-EMFEMI\-DEIEFM2?; AlphaNumeric1 EMEZ\-EFMDFME\-FMD?; AlphaNumeric8 EMEZ\-EFMDFME\-ELPFQQZ\-DI?; AlphaNumeric1 EMEZ\-EEVVEEII\-MPQQE\-FMD?; AlphaNumeric1 EMEZ\-MPQQE\-IHEM\-10\-FMD?; UnsignedInteger2 EMEZ\-EPIMIEQQ?; record {AlphaNumeric25 EMEZ\-EFVVEM\-MEMEI?; AlphaNumeric25 EMEZ\-IIQQMEME?; AlphaNumeric3 EMEZ\-QQEMEIFPMIHFP\-ED?; AlphaNumeric25 EMEZ\-QQEMEIFPMIHFP?; SignedDecimal3V2 EMEZ\-PEQQEEMI\-EMMPEEIFPM?; AlphaNumeric8 EMEZ\-DPE?; AlphaNumeric1 EMEZ\-EEMDEQQ?;}[10] EMEZ\-DEIEFMI?;} EPMMPM\-DEIE\-EMFEMI?; record {AlphaNumeric1 IE\-PQQEIEMI\-FMD?; record {AlphaNumeric8 EMEEMIZ\-IIEQQI\-DI?; AlphaNumeric8 IE\-EEE\-DI?; AlphaNumeric8 IE\-EIMD\-EPMMEMEED\-DI?; AlphaNumeric1 IE\-PPQQIFPM\-IZPE\-ED?; SignedDecimal9V2 PMEM\-IPIEM\-IE\-EMI?; record {AlphaNumeric13 PMEM\-IPIEM\-IE\-EMI\-ILI?;} PMEM\-IPIEM\-IE\-EMI\-QQED?; UnsignedDecimal10V2 PQQEIEQQVVE\-EMI?; record {AlphaNumeric13 PQQEIEQQVVE\-EMI\-ILI?;} PQQEIEQQVVE\-EMI\-QQED?; UnsignedDecimal1V2 QQEEEIE\-PQQPPPQQIFPM\-EMI?; SignedDecimal9V2 QQEIIQQFEI\-MPM\-PQQIQQVV\-EMEI\-EMI?; SignedDecimal9V2 IMQQEIIQQI\-MPM\-PQQIQQVV\-EMEI\-EMI?; AlphaNumeric8 EI\-07\-EMEEMIZ\-IIEQQI\-DI?; SignedDecimal9V2 EI\-07\-PMEM\-VVEM\-EMI?; SignedDecimal9V2 IEL\-EQQEE\-EPMPPMI\-EMI?; record {AlphaNumeric13 IEL\-EQQEE\-EPMPPMI\-EMI\-ILI?;} IEL\-EQQEE\-EPMPPMI\-EMI\-QQED?; SignedDecimal9V2 IEL\-EQQEE\-FM\-PII\-EPMPPMI\-EMI?; SignedDecimal9V2 IEL\-EPMPPMI\-EMI?; record {AlphaNumeric13 IEL\-EPMPPMI\-EMI\-ILI?;} IEL\-EPMPPMI\-EMI\-QQED?; SignedDecimal9V2 IEL\-FM\-PII\-EPMPPMI\-EMI?; AlphaNumeric3 EPMDFIFPM\-PE\-QQEMEEIE?; AlphaNumeric40 EPMDFIFPM\-PE\-QQEMEEIE\-DEIE?;} IIPEQQEMM\-EEMEEFI\-DEIE?;} EPMMPM\-DEIE\-EMQQM?; record {UnsignedInteger3 PMEM\-WEQQMFME\-EPIMIEQQ?; record {AlphaNumeric79 PMEM\-WEQQMFME\-IELI?; AlphaNumeric3 PMEM\-WEQQMFME\-IZPE?; AlphaNumeric4 PMEM\-EQQQQPQQ\-EPDE?;}[50] PMEM\-WEQQMFME\-MIEI?;} EPMMPM\-DEIE\-WEQQMFME?;} EPMMPM\-DEIE?; AlphaNumeric11304 PMEM\-PIIPII\-DEIE?; record {record {SignedDecimal9V2 EEIE\-EQQPII\-IIQQQQ\-EMI?; record {AlphaNumeric13 EEIE\-EQQPII\-IIQQQQ\-EMI\-ILI?;} EEIE\-EQQPII\-IIQQQQ\-EMI\-QQED?; SignedDecimal9V2 EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI?; record {AlphaNumeric13 EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI\-ILI?;} EQQPII\-EIQQQQ\-EMMFVV\-VALUE\-EMI\-QQED?; SignedDecimal9V2 EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI?; record {AlphaNumeric13 EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI\-ILI?;} EQQPII\-EIQQQQ\-MPMIH\-EHE\-EMI\-QQED?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric50 PMEM\-EPMMEMI\-IELI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; AlphaNumeric8 EIIEII\-ELPFQQZ\-DI?; SignedDecimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric2 EIIEII\-FMPEFQQMEMI\-IZPE?; SignedDecimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; AlphaNumeric1 EEMK\-PQQDEQQ\-ED?; AlphaNumeric1 EQQPKEM\-IEQQM\-FMD?; AlphaNumeric1 EITIMESI\-IZPE\-ED?; SignedDecimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; SignedDecimal9V2 EPE\-EEMEMEE\-EMI?; AlphaNumeric2 EPE\-EEMEMEE\-EEIIE\-ED?; AlphaNumeric8 EPE\-EEMEMEE\-EEIIE\-DI?; AlphaNumeric2 EPE\-EEMEMEE\-IFEM\-ED?; SignedDecimal9V2 EPE\-EEMEMEE\-IPIEM\-EMI?; AlphaNumeric2 EPE\-EEMEMEE\-IPI\-EMI\-IEM\-ED?; SignedDecimal9V2 EPE\-FMIEQQEII\-EFMM\-EMI?; SignedDecimal9V2 EPE\-PQQFMEFPME\-EMI?; SignedDecimal9V2 EIQQQQEMI\-EPE\-EEMEMEE?; SignedDecimal9V2 EIQQQQEMI\-PQQEM\-FMIEQQEII\-EMI?; AlphaNumeric1 EEMEME\-QQEIE\-FMD?; SignedDecimal9V2 EQQPII\-EEIH\-VVEM\-EPMII\-EMI?; AlphaNumeric7 EQQPIP\-MIM?; AlphaNumeric1 FMEQQEEIE\-FMD?; AlphaNumeric8 FMIEQQEII\-EEPFIEMFIEIFPM\-DI?; AlphaNumeric1 MFEE\-FMIIQQE\-MEQQQQFED\-EEMEME\-FMD?; SignedDecimal9V2 MPEM\-VALUE\-EMI?; SignedDecimal9V2 MPEM\-EVVEFMEEME\-EMI?; SignedDecimal9V2 MPEM\-DEEI\-EMI?; SignedDecimal9V2 MPEM\-FMIEQQEII\-EFMM\-EMI?; SignedDecimal9V2 MPEM\-PQQFMEFPME\-EMI?; AlphaNumeric3 MPEEMFIZ\-ED?; SignedDecimal9V2 MPP\-EEEPIMI\-EEMEMEE\-EMI?; AlphaNumeric2 MPP\-EEEPIMI\-EEMEMEE\-IFEM\-ED?; AlphaNumeric2 MPP\-EEEPIMI\-EEIIE\-ED?; AlphaNumeric8 MPP\-EEEPIMI\-EEIIE\-DI?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; SignedDecimal9V2 MEW\-EPMII\-EMI?; AlphaNumeric1 PEQQEMI\-DEED\-FMD?; AlphaNumeric1 PEQQI\-PEFDIP\-FMD?; AlphaNumeric8 PMEM\-EEEPIMI\-EEMEMEE\-EI\-DI?; AlphaNumeric4 PMEM\-EMEII?; SignedDecimal9V2 PMEM\-DEEI\-EMI?; SignedDecimal9V2 PMEM\-PEFDIP\-IIM\-FMIIQQED\-EMI?; SignedDecimal9V2 PQQEM\-DIE\-IP\-DI\-EMI?; AlphaNumeric8 PQQEM\-EMEQQEE\-DI?; AlphaNumeric1 PQQEM\-FME\-EMI\-EMI\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-QQEEPMMEMEE\-DI?; AlphaNumeric2 PQQEM\-QQEMEWEM\-DEZ?; AlphaNumeric2 PQQEM\-QQEMEWEM\-MPMIH?; AlphaNumeric8 PQQEM\-QQEMEW\-IP\-DI?; AlphaNumeric8 QQEFMIIEIEMEMI\-IP\-DI?; SignedDecimal9V2 QQEFMIIEIEMEMI\-EQQQQEEQQI\-EMI?; AlphaNumeric1 QQEFMIIQQED\-FMD?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; SignedDecimal9V2 IFMEME\-PQQEM\-EMI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; SignedDecimal9V2 IIM\-FMIIQQED\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IIQQQQ\-VVEM\-FMIIEE\-DI?; AlphaNumeric4 IIQQQQ\-VVEM\-FMIIEE\-ED?; SignedDecimal9V2 IIQQQQ\-VVEM\-MPMIHMZ\-EHME\-EMI?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric2 IEMP\-EIIEII\-FMPEFQQMEMI\-IZPE?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; SignedDecimal9V2 IEMP\-EPMMIIE\-EEIH\-EMI?; AlphaNumeric8 WEFVVEQQ\-PE\-PQQEM\-EMEFM\-DI?; AlphaNumeric1 WEFVVEQQ\-PE\-PQQEM\-EMEFM\-FMD?; SignedDecimal9V2 EIQQQQ\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 EIQQQQ\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 EIQQQQ\-EMMFVV\-DI?; UnsignedDecimal5V3 EIQQQQ\-EPMII\-EEEIPQQ\-QQEIE?; SignedDecimal9V2 EIQQQQ\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 EIQQQQ\-PEQQIFEFPEIFME\-IZPE?; SignedDecimal9V2 EIQQQQ\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 EIQQQQ\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; SignedDecimal9V2 EIQQQQ\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 EIQQQQ\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; SignedDecimal9V2 EIQQQQ\-MEII\-PQQEM\-1\-EMI?; SignedDecimal9V2 EIQQQQ\-MEII\-PQQEM\-2\-EMI?; SignedDecimal9V2 EIQQQQ\-MEII\-PQQEM\-3\-EMI?; SignedDecimal9V2 EIQQQQ\-EMMIEM\-EMI?; SignedDecimal9V2 EIQQQQ\-IPIEM\-EPMII\-EMI?; SignedDecimal9V2 EIQQQQ\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; SignedDecimal9V2 EIQQQQ\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; AlphaNumeric1 EPE\-EEMEMEE\-ELFIII\-FMD?; AlphaNumeric8 MEII\-PQQEMFIM\-PEFD\-DEIE?; AlphaNumeric1 ELIEQQMEM\-IQQIIIEE\-FMD?;} PMEM\-DEIEFMI\-EPMVVEMIFPMEM?; record {SignedDecimal9V2 PMD\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 PMD\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 PMD\-EMMFVV\-DI?; UnsignedDecimal5V3 PMD\-EPMII\-EEEIPQQ\-QQEIE?; SignedDecimal9V2 PMD\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 PMD\-PEQQIFEFPEIFME\-IZPE?; SignedDecimal9V2 PMD\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 PMD\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; SignedDecimal9V2 PMD\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 PMD\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; SignedDecimal9V2 PMD\-MEII\-PQQEM\-1\-EMI?; SignedDecimal9V2 PMD\-MEII\-PQQEM\-2\-EMI?; SignedDecimal9V2 PMD\-MEII\-PQQEM\-3\-EMI?; SignedDecimal9V2 PMD\-EMMIEM\-EMI?; SignedDecimal9V2 PMD\-IPIEM\-EPMII\-EMI?; SignedDecimal9V2 PMD\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; SignedDecimal9V2 PMD\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; SignedDecimal9V2 MEW\-EMP\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 MEW\-EMP\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; AlphaNumeric8 MEW\-EMMFVV\-DI?; UnsignedDecimal5V3 MEW\-EPMII\-EEEIPQQ\-QQEIE?; SignedDecimal9V2 MEW\-EFQQII\-IHQQEE\-ZQQ\-QQEVV\-EPMII?; AlphaNumeric2 MEW\-PEQQIFEFPEIFME\-IZPE?; SignedDecimal9V2 MEW\-EPMIQQ\-IEL\-EQQEDFI\-EMI?; AlphaNumeric3 MEW\-EPMVVEMIM\-PMEM\-QQEEPQQD\-IZPE?; SignedDecimal9V2 MEW\-EEI\-EQQPII\-IIQQQQ\-VVEM\-EMI?; SignedDecimal9V2 MEW\-EEI\-IIQQQQ\-VVEM\-MPMIHMZ\-EHME?; SignedDecimal9V2 MEW\-MEII\-PQQEM\-1\-EMI?; SignedDecimal9V2 MEW\-MEII\-PQQEM\-2\-EMI?; SignedDecimal9V2 MEW\-MEII\-PQQEM\-3\-EMI?; SignedDecimal9V2 MEW\-EMMIEM\-EMI?; SignedDecimal9V2 MEW\-IPIEM\-EPMII\-EMI?; SignedDecimal9V2 MEW\-PQQEM\-EEEQQFME\-IIM\-FMID\-EMI?; SignedDecimal9V2 MEW\-IIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; SignedDecimal9V2 EEIFE\-PQQEM?; SignedDecimal9V2 IPIEM\-PMD\-EEIFE\-PQQEM?; AlphaNumeric8 MEII\-EHE\-IEM\-EEE\-DI?; AlphaNumeric1 MEII\-IEEME\-EHEMEE\-FMD?;} EEIIQQFEM\-DEIEFMI\-EPMVVEMIFPMEM?; record {UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?;} EMFEMI\-PMEM\-EIIFEM?; record {AlphaNumeric8 PQQPPPMEMI\-DPE?; UnsignedInteger3 EEE\-EI\-MEIIQQFIZ?; AlphaNumeric8 FMIII\-IEEME\-MEME\-EPDE?; AlphaNumeric8 IQQIE\-IEEME\-MEME?; AlphaNumeric1 MEPIED\-FMD?; AlphaNumeric1 PEFD\-IP\-FMD?; AlphaNumeric8 PEFD\-IP\-DEIE?; AlphaNumeric2 IPEEFEM\-EPDE\-1\-IP\-2?; AlphaNumeric4 IPEEFEM\-EPDE\-3\-IP\-6?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric8 MPEM\-QQEIE\-DI?; SignedDecimal9V2 EPE\-FMIEQQEII\-QQEIE?; SignedDecimal9V2 MPEM\-FMIEQQEII\-QQEIE?; UnsignedDecimal3V2 MPEM\-PEQQEEMI?; SignedDecimal9V2 EPMMEQQEFEM\-FMIEQQEII\-QQEIE?; SignedDecimal9V2 EEIH\-VVEM\-EPMII\-EMEEQQ\-DEEI\-EMI?;} QQEMEFMFME\-PMEM\-EFEMDI?; record {UnsignedInteger3 EPMVVEMIM\-PMEM\-FMEQQ\-EPIMIEQQ?; record {SignedDecimal9V2 EMMIEM\-PQQEM\-FMEQQ\-EMI?; AlphaNumeric2 EIIEII\-ED?; SignedDecimal9V2 EIIEII\-ELIQQ\-FMII\-PQQEM\-FMEQQ\-EMI?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; SignedDecimal9V2 EPMII\-FMEQQ\-EMI?; AlphaNumeric1 EPMII\-FMEQQ\-QQEEEQQ\-FMD?; AlphaNumeric3 EPMVVEMIM\-PMEM\-FMEQQ\-MP?; AlphaNumeric1 EPF\-FMEQQ\-FMD?; SignedDecimal9V2 FMIIEM\-PQQEM\-FMEQQ\-EMI?; SignedDecimal9V2 MEII\-PQQEM\-3\-FMEQQ\-EMI?; AlphaNumeric1 MEII\-PQQEM\-3\-FMEQQ\-QQEEEQQ\-FMD?; SignedDecimal9V2 MEW\-EPMII\-FMEQQ\-EMI?; AlphaNumeric1 MEW\-EPMII\-FMEQQ\-QQEEEQQ\-FMD?; SignedDecimal9V2 IIM\-FMIIQQED\-FMEQQ\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMEQQ\-QQEEEQQ\-FMD?;}[35] EPMVVEMIM\-PMEM\-FMEQQ?;} FMEQQEEIE\-DEIE\-EPMVVEMIFPMEM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; SignedDecimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; SignedDecimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIED\-FMD?; SignedDecimal9V2 MIM\-PE\-IMFII?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; SignedDecimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; SignedDecimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; SignedDecimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; SignedDecimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; SignedDecimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 IQQ\-EEMEEFI\-IEQQM?; UnsignedInteger2 EPMVV\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 EPMVV\-ELEM\-PEFD\-FMD?; AlphaNumeric3 EPMVV\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 EPMVV\-ELEM\-EMEIIE\-MEME?; SignedDecimal9V2 EPMVV\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 EPMVV\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 EPMVV\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] EPMVV\-ELEMIIFPMI?;}[5] EEMEEFI\-EEIFE\-DEIEFMI?;} EEMEEFI\-DEIE\-EPMVVEMIFPMEM?; record {SignedDecimal9V2 MEIIQQFIZ\-IIM\-FMIIQQED\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-QQEVVEQQIFPM\-EPMII\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-IEQQMFMEM\-EPMII\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-IELEQQ\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-IIQQEHEQQEE\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-IPIEM\-EPE\-EMI?; SignedDecimal9V2 MEIIQQFIZ\-IPIEM\-MPEM\-EMI?;} MEIIQQFIZ\-VALUEI\-EPMVV?; record {SignedDecimal9V2 DEEIH\-MF\-EEM\-MIMP\-IIM\-EMI?; AlphaNumeric1 DEEIH\-MF\-EEM\-MIMP\-IIM\-EEME\-ED?; SignedDecimal9V2 DEEIH\-QQIM\-PQQEM\-FMI\-EMI?; AlphaNumeric1 DIH\-QQIM\-PQQM\-FMI\-EMI\-EEME\-ED?; SignedDecimal9V2 DEEIH\-QQEVVEQQIFPM\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-QQEVVEQQIFPM\-EPMII\-EEME\-ED?; SignedDecimal9V2 DEEIH\-PQQPIPEEIVV\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-PQQPIPEEIVV\-EPMII\-EEME\-ED?; SignedDecimal9V2 DEEIH\-IEQQMFMEM\-EPMII\-EMI?; AlphaNumeric1 DEEIH\-IEQQMFMEM\-EPMII\-EEME\-ED?; SignedDecimal9V2 DEEIH\-IELEQQ\-EMI?; AlphaNumeric1 DEEIH\-IELEQQ\-EEME\-ED?; SignedDecimal9V2 DEEIH\-IIQQEHEQQEE\-EMI?; AlphaNumeric1 DEEIH\-IIQQEHEQQEE\-EEME\-ED?; SignedDecimal9V2 DEEIH\-IPIEM\-EPE\-EMI?; AlphaNumeric1 DEEIH\-IPIEM\-EPE\-EEME\-ED?; SignedDecimal9V2 DEEIH\-IPIEM\-MPEM\-EMI?; AlphaNumeric1 DEEIH\-IPIEM\-MPEM\-EEME\-ED?;} EMEFM\-VALUEI\-EPMVV?; AlphaNumeric2605 EFMMEQQ?;} PIIPII\-DEIE\-EPMVVEMIFPMEM?; record {record {AlphaNumeric8 PMEM\-EMEII?; SignedDecimal9V2 IPIEM\-EEIH\-EEPFIEM\-EMI?; AlphaNumeric1 EIMM\-VVPMIMIQQZ\-PQQIQQVV\-PMEM\-FMD?; AlphaNumeric1 QQEDEMPIM\-PEQQFPD\-EPPMZ\-FMD?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric8 PMEM\-DEIEFMI\-EI\-DI?; AlphaNumeric8 EMMFVV\-DI?; SignedDecimal9V2 EMMIEM\-FMIIEMMI\-EMI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; SignedDecimal9V2 EFMM\-EMI?; AlphaNumeric1 FMFIFEM\-IMFI\-PQQEIEMI\-FMD?; SignedDecimal9V2 FMFIFEM\-IMFI\-VVEM\-EMI?; SignedDecimal8V3 FMFIFEM\-EEIH\-EEEIPQQ?; SignedDecimal9V2 EIMM\-VVEM\-PE\-FMFIFEM\-IMFII?; SignedDecimal9V2 EIMM\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; SignedDecimal9V2 EEIH\-VVEM\-PE\-FMFIFEM\-IMFII?; SignedDecimal9V2 EEIH\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; AlphaNumeric8 MEII\-MPVVEMEMI\-EEE\-DI?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; SignedDecimal9V2 MFMFMIM\-DEEIH\-EEMEEFI\-EMI?; SignedDecimal9V2 PIIIIMD\-EEE\-EMI?; AlphaNumeric1 PIIIIMD\-EEE\-PQQEIEMI\-FMD?; SignedDecimal9V2 PIIIIMD\-PEMFEEIM\-EMI?; AlphaNumeric18 PMEM\-ELIEMD\-MEME?; AlphaNumeric4 PMEM\-IEQQM?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; SignedDecimal9V2 IIM\-FMIIQQED\-EMI?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IIQQQQ\-VVEM\-FMIIEE\-DI?; AlphaNumeric13 IIQQQQ\-VVEM\-FMIIEE\-MIE?; SignedDecimal9V2 IPIEM\-PMEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric8 MEII\-PQQEMFIM\-PEFD\-DEIE?; AlphaNumeric1 ELIEQQMEM\-IQQIIIEE\-FMD?; UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?;} PMEM\-DEIEFMI\-FM?; record {UnsignedInteger2 PMEM\-IMFI\-EEEPIMI\-EPIMIEQQ?; record {SignedDecimal9V2 IMFI\-IPIEM\-VVEM\-EMI?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-VVEM\-EMI?; AlphaNumeric2 IMFI\-EMEII\-FDEMIFEZ?; SignedDecimal9V2 FMVVEIIMI\-PPIFPM\-PEQQEEMI?; SignedDecimal9V2 FMFIFEM\-IMFI\-QQIEMIFIZ?; SignedDecimal9V2 FMFIFEM\-IMFI\-QQIZ\-MEII\-WDM\-EEE?; SignedDecimal9V2 FMFIFEM\-IMFI\-QQIZ\-WDM\-EEE?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-QQIEMIFIZ?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-QQIZ\-MEII\-WDM\-EEE?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-QQIZ\-WDM\-EEE?; AlphaNumeric40 FMVVEIIMI\-PPIFPM\-DEIE?; SignedDecimal9V2 MP\-PE\-IMFI\-QQIEMIFIZ?;}[10] PMEM\-IMFI\-EEE\-DEIE?;} EEIH\-VALUE\-DEIE\-FM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; SignedDecimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; SignedDecimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIED\-FMD?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; SignedDecimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; SignedDecimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; SignedDecimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; SignedDecimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; SignedDecimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 FM\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 FM\-ELEM\-PEFD\-FMD?; AlphaNumeric3 FM\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 FM\-ELEM\-EMEIIE\-MEME?; SignedDecimal9V2 FM\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 FM\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 FM\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] FM\-ELEMIIFPMI?;}[5] EEMEEFI\-EEIFE\-DEIEFMI?;} EEMEEFI\-DEIE\-FM?; AlphaNumeric6070 EFMMEQQ?;} PIIPII\-DEIE\-FM?; record {record {SignedDecimal9V2 ELIQQE\-EMMIEM\-PQQEM\-EMI?; SignedDecimal9V2 IM\-EMM\-FMVV\-PQQEM?; AlphaNumeric2 PEZMEMI\-EEIIE\-IZPE?; AlphaNumeric8 PEZMEMI\-DEIE?; AlphaNumeric50 PMEM\-EPMMEMI\-IELI?; AlphaNumeric8 PMEM\-DEIEFMI\-EI\-DI?; AlphaNumeric9 PMEM\-MEME?; AlphaNumeric21 PMEM\-MIM?; AlphaNumeric8 EMMFVV\-DI?; AlphaNumeric2 EIIEII\-ED?; AlphaNumeric20 EIIEII\-ED\-DEIE?; AlphaNumeric1 EEMK\-PQQDEQQ\-ED?; SignedDecimal9V2 EFMM\-EMI?; AlphaNumeric1 EITIMESI\-IZPE\-ED?; AlphaNumeric7 EQQPIP\-MIM?; AlphaNumeric8 MEII\-MPVVEMEMI\-EEE\-DI?; AlphaNumeric3 MPEEMFIZ\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; AlphaNumeric18 PMEM\-ELIEMD\-MEME?; AlphaNumeric1 PQQEM\-FMDEL\-FME\-DEEMFMED\-FMD?; AlphaNumeric8 PQQEM\-FMDEL\-FME\-DEEMFMED\-DI?; AlphaNumeric2 PQQEM\-QQEMEWEM\-DEZ?; AlphaNumeric2 PQQEM\-QQEMEWEM\-MPMIH?; SignedDecimal9V2 IFMEME\-PQQEM\-PEFD\-IP\-DI\-EMI?; AlphaNumeric1 IFMEME\-PQQEM\-FMD?; AlphaNumeric1 IPEEFEM\-QQFIK\-FMD?; AlphaNumeric8 IEQQM\-FMMMEII\-EEMEEFI\-ELPFQQZ\-DI?; UnsignedInteger2 PMEM\-EIIFEM\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric50 EMFEMI\-MEME?; AlphaNumeric8 EIIFEM\-QQEEFIIEQQ\-DI?; AlphaNumeric8 EIIFEM\-IQQEMIEEQQ\-DI?;}[8] PMEM\-EIIFEM\-DEIEFMI?; SignedDecimal9V2 EIMM\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; SignedDecimal9V2 EEIH\-VVEM\-PE\-FMVVEIIMEMI\-IMFII?; AlphaNumeric7 MEII\-FMVVEIIMEMI\-WEEK?;} PMEM\-DEIEFMI\-IM?; record {SignedDecimal9V2 IMFI\-IPIEM\-VVEM\-EMI?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-VVEM\-EMI?; AlphaNumeric2 IMFI\-EMEII\-FDEMIFEZ?; UnsignedDecimal5V2 FMVVEIIMI\-PPIFPM\-PEQQEEMI?; SignedDecimal9V2 FMFIFEM\-IMFI\-QQIEMIFIZ?; SignedDecimal9V2 FMVVEIIMI\-IMFI\-QQIEMIFIZ?; AlphaNumeric40 FMVVEIIMI\-PPIFPM\-DEIE?; SignedDecimal9V2 MP\-PE\-IMFI\-QQIEMIFIZ?;} EEIH\-VALUE\-DEIE\-IM?; record {UnsignedInteger2 EEMEEFI\-EEIFE\-DEIEFMI\-EPIMIEQQ?; record {AlphaNumeric2 EIIEII\-ED?; AlphaNumeric8 EEMEEFI\-EPMMEMEED\-DI?; AlphaNumeric8 EEMEEFI\-ELPFQQZ\-DI?; AlphaNumeric5 EEMEEFI\-MEME?; AlphaNumeric20 EEMEEFI\-MEME\-DEIE?; UnsignedInteger2 EEMEEFI\-MIM?; AlphaNumeric10 EEMEEFI\-IIEIII\-DEIE?; SignedDecimal9V2 EEMEEFI\-IIM\-FMIIQQED\-EMI?; SignedDecimal9V2 EEMEEFI\-IIM\-FMI\-EI\-EEE\-DI\-EMI?; AlphaNumeric1 EEMEEFI\-IIM\-FMI\-EI\-EE\-EEME\-ED?; AlphaNumeric1 MEDFEEM\-EPMPMEIE\-FMD?; AlphaNumeric2 PEEIPEIFPM\-EMEIIFEFEEIFPM?; SignedDecimal9V2 EIIEII\-ELIQQE\-EMMIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EIIEII\-ELIQQE\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-EMMIEM\-EMMIFIZ\-EMI?; SignedDecimal9V2 EEMEEFI\-FMIIEM\-PQQEM\-EMI?; SignedDecimal9V2 EEMEEFI\-IFMEME\-PQQEM\-EMI?; SignedDecimal9V2 EPII\-PE\-FMIIQQEMEE\-EMI?; SignedDecimal9V2 QQEFMIIQQED\-IIM\-FMIIQQED\-EMI?; SignedDecimal3V2 QQEFMIIQQEMEE\-PPI\-PEEMI?; AlphaNumeric2 QQEFMIIQQEMEE\-EPMPEMZ\-ED?; AlphaNumeric1 QQEFMIIQQEMEE\-IZPE\-ED?; AlphaNumeric8 IF\-FMDEL\-FMEQQ\-DEEMFMED\-DI?; AlphaNumeric1 IF\-FMDEL\-FMEQQ\-DEEMFMED\-FMD?; AlphaNumeric1 IMPKEQQ\-EIIEII\-ED?; AlphaNumeric1 IIM\-FMIIQQED\-FMDELED\-FMD?; AlphaNumeric8 IEMP\-EIIEII\-ELPFQQZ\-DI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-EP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-FP\-EMI?; SignedDecimal9V2 IEMP\-EIIEII\-ELIQQE\-IEM\-PQQEM\-EMI?; AlphaNumeric1 IEMP\-EIIEII\-FMD?; UnsignedDecimal9V2 IEMP\-PQQPIEEIFPM\-IMFI\-QQIEMIFIZ?; UnsignedInteger3 EQQFIFI\-EEMEEFI\-PEQQEEMI?; AlphaNumeric2 EQQFIFI\-EEMEEFI\-EIZEK\-EIIEII\-ED?; UnsignedInteger2 IM\-ELEMIIFPMI\-EPIMIEQQ?; record {AlphaNumeric1 IM\-ELEM\-PEFD\-FMD?; AlphaNumeric3 IM\-ELEM\-EMEIIE\-ED?; AlphaNumeric25 IM\-ELEM\-EMEIIE\-MEME?; SignedDecimal9V2 IM\-ELEM\-EMMIEM\-PQQEM\-EMI?; AlphaNumeric8 IM\-ELEM\-ELPFQQZ\-DI?; AlphaNumeric1 IM\-ELEM\-EEIFVVE\-IIEIII\-FMD?;}[5] IM\-ELEMIIFPMI?;}[5] EEM\-DEIE\-IM?;} EEMEEFI\-DEIE\-IM?; AlphaNumeric7722 EFMMEQQ?;} PIIPII\-DEIE\-IM?;} PIIPII\-DEIE?;} MQQ\-DEIE?; }; diff --git a/copybook-tool/BalTool.toml b/copybook-tool/BalTool.toml index 463d0c6..903276a 100644 --- a/copybook-tool/BalTool.toml +++ b/copybook-tool/BalTool.toml @@ -2,10 +2,10 @@ id = "copybook" [[dependency]] -path = "build/libs/copybook-cli-0.1.2-SNAPSHOT.jar" +path = "build/libs/copybook-cli-1.0.0-SNAPSHOT.jar" [[dependency]] path = "build/libs/antlr4-runtime-4.13.1.jar" [[dependency]] -path = "build/libs/copybook-commons-0.2.0.jar" +path = "build/libs/copybook-commons-1.0.2.jar" diff --git a/gradle.properties b/gradle.properties index 6d524c3..dafed60 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.parallel=true org.gradle.caching=true group=io.ballerina -version=0.1.2-SNAPSHOT +version=1.0.0-SNAPSHOT spotbugsPluginVersion=5.0.14 releasePluginVersion=2.8.0 @@ -16,4 +16,4 @@ antlrVersion=4.13.1 jacocoVersion=0.8.10 # Ballerinax -copybookParserVersion=0.2.0 +copybookParserVersion=1.0.2 From 7ec42154bda9ee438c78a2e7a6a30869a5db2a99 Mon Sep 17 00:00:00 2001 From: MohamedSabthar Date: Fri, 18 Oct 2024 18:31:13 +0530 Subject: [PATCH 3/4] Add changelog --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 changelog.md diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..835bf79 --- /dev/null +++ b/changelog.md @@ -0,0 +1,10 @@ +# Change Log + +This file contains all the notable changes done to the Ballerina Copybook tool through the releases. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added +- [[#7271] Add Support for Implied Decimal](https://github.com/ballerina-platform/ballerina-library/issues/7271) From 97811f10378d8991a0e31ed30f29993ba078a467 Mon Sep 17 00:00:00 2001 From: MohamedSabthar Date: Fri, 18 Oct 2024 18:39:51 +0530 Subject: [PATCH 4/4] Update test description --- .../java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java b/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java index 3e5d4c1..f540409 100644 --- a/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java +++ b/copybook-cli/src/test/java/io/ballerina/tools/copybook/cmd/CopybookCmdTest.java @@ -96,7 +96,7 @@ public void testCopybookWithoutArguments() throws IOException { assertStringsWithoutWhiteSpace(output, message); } - @Test(description = "Test copybook command with help flag") + @Test(description = "Test copybook tool type generation") public void testCopybookTypeGeneration() throws IOException { String[] args = {"-i", resourceDir.resolve("copybookDefinitions/valid/copybook.cob").toString(), "-o", tmpDir.toString()}; @@ -112,7 +112,7 @@ public void testCopybookTypeGeneration() throws IOException { Assert.assertTrue(output.contains("Ballerina record types are generated successfully and copied to")); } - @Test(description = "Test copybook command with help flag") + @Test(description = "Test copybook tool type generation for implied decimal picture clause") public void testCopybookTypeGenerationForImpliedDecimal() throws IOException { String[] args = {"-i", resourceDir.resolve("copybookDefinitions/valid/copybook-1.cpy").toString(), "-o", tmpDir.toString()};